목록전체 글 (414)
오답노트

plot_tree Decision Tree를 직접 트리형태로 볼 수 있게 해주는 함수다. import matplotlib.pyplot as plt from sklearn.tree import DecisionTreeClassifier, plot_tree from sklearn.metrics import * m3 = DecisionTreeClassifier(max_depth=5,min_samples_leaf=150) m3.fit(x_train,y_train) pred3 = m3.predict(x_val) print(classification_report(y_val,pred3)) plt.figure(figsize = (30,15)) # 그림 사이즈 조절 plot_tree(m3, feature_names = l..
DecisionTreeClassifier 범주형 데이터를 Decision Tree 알고리즘으로 예측할 때 사용하는 객체이다. 사용법은 지금까지 sklearn 객체들과 같다. Hyper Parameter from sklearn.tree import DecisionTreeClassifier from sklearn.metrics import * m3 = DecisionTreeClassifier(max_depth=5,min_samples_leaf=150) m3.fit(x_train,y_train) pred3 = m3.predict(x_val) print(classification_report(y_val,pred3)) max_depth 트리의 깊이(크기)를 결정하는 옵션이다. min_samples_leaf lea..

Decision Tree 분석과정을 실제로 눈으로 확인 가능한 알고리즘이다. 계산 비용이 낮아 대규모의 데이터도 빠르게 연산 가능한 장점이 있다. 지니 불순도 분류 후 얼마나 분류가 잘 됐는지 평가하는 지표다. 불순도가 낮을 수록 분류가 잘됐다고 판단한다. 어떤 집단에서 A를 가지는 집단과 B를 가지는 집단 둘로 나눴을 때, 각각의 집단에서 또 다시 True, False를 나눌 수 있다. 이 때, 집단 A의 불순도는 1-((A|T)^2 + (A|F)^2) 이고, 집단 B의 불순도는 1-((B|T)^2 + (B|F)^2) 이다. 수식으로 표현하면 아래와 같다. p 는 집단에서 어떤 사건이 일어날 확률이다. 예를 들어 A|T는 A 집단에서 True가 발생할 확률이다. 정보 증가량 지니 불순도는 어떤 집단(부..
KNeighborsClassifier KNeighborsClassifier는 KNN 알고리즘으로 범주형 데이터를 예측할 때 사용한다. KNeighborsRegressor와 사용법은 같다. 다만 성능을 판단할 때 Accuracy, Recall, Precision, f1-score로 판단한다. from sklearn.preprocessing import MinMaxScaler scaler = MinMaxScaler() x_train_s = scaler.fit_transform(x_train) x_val_s = scaler.transform(x_val) model = KNeighborsClassifier() model.fit(x_train_s,y_train) pred = model.predict(x_val_s..
# 라이브러리 호출 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..