본문 바로가기
파이썬 머신러닝 지도학습 - K-Nearest Neigbor(KNN) (분류, 회귀) K-Nearest Neigbor 데이터를 가장 가까운 거리의 k개의 이웃과 비교하여 결정하는 알고리즘으로 k의 값이 커지면 커질수록 전체평균에 가까워진다 거리를 계산 할 때 데이터의 크기를 기준으로 거리를 계산하기 때문에 만약 입력 데이터와 예측 데이터의 크기 범위가 다르다면 서로의 거리 계산이 달라 질 수 있기 때문에 데이터의 정규화가 필요하다 데이터의 정규화 https://bigcat5312.tistory.com/80 파이썬 머신러닝 지도학습 - 데이터 분리 (sklearn - train_test_split import from sklearn.model_selection import train_test_split train_test_split 데이터를 머신러닝에 사용하기 위해서 학습 데이터와 테스트 .. 2023. 9. 16.
파이썬 머신러닝 지도학습 - 데이터 분리 (sklearn - train_test_split import from sklearn.model_selection import train_test_split train_test_split 데이터를 머신러닝에 사용하기 위해서 학습 데이터와 테스트 데이터를 무작위로 분리하는 함수로 train_test_split(x , y, test_size = or train_size =, random_state = , shuffle= , stratify = ) 형태로 사용한다 기본적으로는 (x,y , test_size=)정도만 입력해도 된다 각각의 옵션을 설명하자면 test_size = 전체 데이터에서 테스트로 사용할 데이터의 비율 ex 30% = 0.3 random_state = 데이터 분할에 사용되는 난수 생성의 시드 shuffle = 데이터를 분할하기 전에 섞을지 .. 2023. 9. 16.
머신러닝 지도학습 - 분류모델 성능 평가 데이터의 이해 - sklearn.metrics 평가도구 accuracy_score recall_score precision_score classification_report confusion_matrix confusion matrix(혼동 행렬) 분류모델의 성능 평가에 대해 이해하려면 먼저 confusion matrix 에 대해 이해해야 한다 ex) 다음 그림은 confusion metrix를 나타낸 그림으로 y축은 실제 값, x축은 예측값을 의미한다 각각의 값을 설명하자면 TN(True Negative) = 음성을 음성으로 잘 예측한 것 FN(False Negative) = 음성을 양성으로 잘못 예측한 것 FP(False Positive) = 양성을 음성으로 잘못 예측한 것 TP(True Positive) = 양성을 양성으로 잘 예측한 것이다 co.. 2023. 9. 16.
머신러닝 지도학습 - 회귀모델 성능 평가 데이터의 이해-sklearn.metrics 평가도구 mean_absolute_error mean_absolute_percentage_error mean_squared_error root_mean_squared_error r2_score mean_absolute_error(MAE) 예측값과 실제 값의 차이(오차)의 절대값의 평균 MAE = (1/n) * Σ|yᵢ - ŷᵢ| mean_absolute_percentage_error(MAPE) 실제 값에 대한 예측 오차 절대값의 비율의 평균 MAPE = (100/n) * Σ (|yᵢ - ŷᵢ| / yᵢ) mean_squared_error(MSE) 예측값과 실제값의 차이의 제곱의 평균 MSE = (1/n) * Σ(yᵢ - ŷᵢ)² root_mean_squared_error(RMSE) 예측값과 실제값의 차이.. 2023. 9. 16.
머신러닝 지도학습 - 회귀와 분류, 분석도구 회귀(Regression) 이미 결과값이 있는 데이터를 사용하여 연관성을 찾아 연속적인 숫자를 예측해 내는 것 ex) 집값 분석도구 평가도구 LinearRegression KNeighborsRegressor DecisionTreeRegressor RandomForestRegressor XGBRegressor mean_absolute_error mean_squared_error root mean_squared_error mean_absolute_percentage_error r2_score 분류(Classification) 이미 결과값이 있는 데이터를 사용하여 범주의 값을 예측하는 것 ex)합격, 불합격 분석 도구 분석도구 평가도구 DecisionTreeClassifier KNeighborsClassifi.. 2023. 9. 16.
파이썬 기초 머신러닝 2개의 범주 분류 sklearn- KNeighborsClassifier 0.알고리즘 설명 KNN 알고리즘은 주어진 데이터 포인트의 클래스(레이블)를 예측하기 위해 가장 가까운 'k'개의 이웃 데이터 포인트들을 찾아, 그들의 클래스 중 가장 많은 클래스를 예측값으로 선택하는 방법이다 '가장 가까운' 이라는 것은 일반적으로 유클리디안 거리(Euclidean distance) 또는 다른 유사도 척도를 사용하여 측정이 된다 1. 데이터 분리 머신러닝을 위해서는 기본적으로 타겟 데이터와 변수들을 분리해야한다 x = data.drop(target, axis=1) y = data[target] 코드로 변수 x와 y에 각각 변수 데이터와 타겟 데이터를 넣어주었다 여기서 target은 데이터프레임에서 결과값의 인덱스명이다 다음으로 학습에 사용할 데이터를 분리한다 from sklearn.mo.. 2023. 9. 11.
파이썬 머신러닝 선형회귀 및 평가 sklearn - LinearRegression 1. 데이터 분리 머신러닝을 위해서는 기본적으로 타겟 데이터와 변수들을 분리해야한다 x = data.drop(target, axis=1) y = data[target] 코드로 변수 x와 y에 각각 변수 데이터와 타겟 데이터를 넣어주었다 여기서 target은 데이터프레임에서 결과값의 인덱스명이다 다음으로 학습에 사용할 데이터를 분리한다 from sklearn.model_selection import train_test_split x_train, x_test, y_train, y_test = train_test_split(x,y,test_size=0.3 ,random_state=1 , stratify= ) train_test_split을 임포트하고 x,y 데이터와, 해당 데이터에서 이후 테스트에 사용할 데이.. 2023. 9. 11.
파이썬 기초 pyplot - 수평선, 수직선 그리기 수평선 plt.axhline(y = 값, xmin=최소, xmax=최대 , color= , linestyle = ) plt.hline(y = 값, xmin=최소, xmax=최대 , color= , linestyle = ) 으로 수평선을 그릴 수 있다 수직선 plt.axvline(x = 값, ymin=최소, ymax=최대 , color= , linestyle = ) plt.vline(x = 값, ymin=최소, ymax=최대 , color= , linestyle = ) 으로 수직선을 그릴 수 있다 필수값은 각각 y와 x이며 이외의 값은 필요시 추가하면 된다 2023. 9. 11.
kt 에이블 스쿨 5주차 교육, 2차 미니프로젝트 후기 5주차 교육 5주차에는 이틀간 동적, 비동적 웹사이트를 크롤링 하는 방법에 대해서 배웠다 코딩 교육 이전에 닮은 연예인을 알려주는 웹사이트를 만들면서 ai를 학습시키기 위해 구글 확장 프로그램으로 구글에서 연예인과 관련된 사진을 크롤링 했던 경험이 있었는데 파이썬 코드로 크롤링을 작성하니 뭔가 기분이 새로웠다 이번에는 또 다른 강사님께서 강의를 진행하셨는데 중간중간 실습시간을 너무 적게 주셔서 아쉬웠다 ㅠㅠ 이전 교육까지는 내가 코드를 직접 쳤는데 이번에는 복붙으로 코드를 돌린게 많았다ㅠㅠ 그래도 강의 자체는 재미있었다 2차 미니프로젝트 2차 미니프로젝트는 3일에 걸쳐 진행이 되었다 이번 조는 한 명 빼고 저번 미니프로젝트와는 다른 인원들로 구성되었는데 조 구성원이 다들 착하고 성격이 좋았다 특히 붙임성.. 2023. 9. 9.
프로그래머스 lv1 3진법 뒤집기(75%) 파이썬 풀이 https://school.programmers.co.kr/learn/courses/30/lessons/68935 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr #3진법을 리스트로 만듦, 자릿수를 역으로 10진수로 만들어줌 def solution(n): three = [] answer = 0 while True : #3진법을 리스트로 if n < 3 : three.append(n) break three.append(n%3) n = n//3 three = three[::-1] for i in range(len(three)): #10진수 변환 코드 역으로 쓰.. 2023. 9. 9.