목록Python/ML (37)
오답노트
# 라이브러리 호출 import numpy as np import pandas as pd import matplotlib.pyplot as plt from sklearn.model_selection import train_test_split from sklearn.linear_model import LogisticRegression from sklearn.metrics import * # 데이터 read path = "Attrition_simple2.CSV" data = pd.read_csv(path) data.head() # 불필요 데이터 삭제 data.drop('EmployeeNumber', axis = 1, inplace = True) # 타겟 선언 및 target, feature 분리 target..
Confusion Matrix Accuracy (정분류율) = (Zero Correct + One Correct) / Total * 100 Recall (재현율) = Zero Correct / (Zero Correct + Zero Incorrect) * 100 Precision (정밀도) = Zero Correct / (Zero Correct + One Incorrect) * 100 Accuracy (정분류율)는 전체의 경우에서 예측을 맞춘 경우의 확률이다. Recall (재현율)은 실제 값 중에서 예측을 맞춘 경우의 확률이다. Precision (정밀도)는 예측한 결과 중 예측이 맞은 경우의 경우의 확률이다. 이 세 확률은 각자 다른 관점을 가지고 바라본 것이다. 따라서 셋중에 하나를 가지고 예측을 잘..
Logistic Regression 시그모이드 함수라고도 불려진다. 회귀는 수치형 데이터를 예측하는 사용하지만, 로지스틱 회귀는 범주형 데이터를 예측하는데 사용된다. 선형회귀는 데이터를 가장 잘 표현하는 직선을 찾는 것이다. 하지만 0,1 과 같은 값만 존재한다면 선형회귀로는 데이터를 예측할 수 없다. 하지만 0 또는 1로 수렴하는 함수를 만들면 이러한 문제를 해결할 수 있다. (출처 : https://odsc.medium.com/logistic-regression-with-python-ede39f8573c7) 승산 (Odds Ratio) 승산은 사건이 일어날 가능성 대 사건이 일아나지 않을 가능성의 비다. 예를 들어 일어날 확률이 80% 라면 승산은 0.8(일어날 확률) / 0.2(일어나지 않을 확률)..
KNeighborsRegressor KNN 회귀 알고리즘이다. 수치데이터를 예측할 수 있다 import numpy as np import pandas as pd import matplotlib.pyplot as plt from sklearn.model_selection import train_test_split from sklearn.neighbors import KNeighborsRegressor from sklearn.metrics import * path = 'boston.csv' data = pd.read_csv(path) data.drop(['black'], axis = 1, inplace = True) target = 'medv' x = data.drop(target,axis=1) y = da..
KNN 예측 데이터의 변수로 부터 실측 데이터의 변수 사이의 거리를 계산하여 그 중 가장 가까운 k개 데이터의 평균으로 타겟 데이터를 예측하는 알고리즘 (출처 : https://pub.towardsai.net/k-nearest-neighbors-knn-algorithm-tutorial-machine-learning-basics-ml-ec6756d3e0ac) 장점으로는 데이터의 분포 형태와 상관이 없다. 설명변수의 개수가 많아도 사용가능하다. 단점으로는 계산시간이 오래걸리고, 훈련 데이터를 모델에 함께 저장하고 있다. 해석이 어렵다. K 값 KNN은 인접한 k 개의 데이터의 평균으로 판단한다. k를 어떻게 설정하느냐에 따라 예측 결과가 달라지게 된다. k 값을 최대 train 데이터의 개수까지 키울 수 있..
선형회귀 (Linear Regression) 데이터를 하나의 직선으로 요약이 가능하다면 선형회귀 알고리즘을 사용할 수 있다. 데이터를 설명 할 때, 여러가지 직선으로 설명할 수 있겠지만 그중에서 가장 잘 설명하는 직선 한 개를 선정하는 방법이다. (출처 : http://primo.ai/index.php?title=Linear_Regression) 단순회귀와 다중회귀로 나눌 수 있다. 단순회귀는 Feature가 1개를 사용하고 다중회귀는 Feature가 두개 이상을 사용하여 모델링하는 것을 말한다. 단순회귀 모델링 코드 import numpy as np import pandas as pd import matplotlib.pyplot as plt from sklearn.model_selection impor..
모델, 모델링 모델은 데이터로 부터 패턴을 찾아 수식으로 정리한 것이다. 모델링은 오차가 적은 모델을 만드는 과정이다. 목적 샘플을 가지고 전체를 추정하기위해 모델링을 한다. 패턴을 찾는 방법 패턴을 찾는 방법은 두 가지가 있다. 지도학습 (Supervised Learning) 비지도학습 (Unsupervised Learning) 지도학습 지도학습은 답을 알려주면서 패턴을 찾게하는 방식이다. 답에는 숫자형(Regression)과 범주형(Classification) 두가지가 있다. 비지도학습 비지도학습은 데이터 안에서 비슷한 데이터끼리 모아 패턴을 찾게하는 방식이다. 오차 오차는 데이터가 벗어난 정도를 나타낸다. 수식으로는 아래와 같이 나타낼 수 있다. 실제 값 = 모델 + 오차 이 오차를 최소화 하는 것..