반응형
# 주요모델
1. 의사결정나무
2. 랜덤포레스트 분류
3. 로지스틱 회귀
4. 익스트림 그레디언트 부스팅(XGB) 분류
5. 서포트벡터 분류(SVM)
6. 배깅 분류
7. KNN(K-최근접 이웃) 분류
8. 다층 퍼셉트론 분류(MLPClassifier)
# 평가방법
ROC-AUC(roc_auc_score)
정확도(accuracy_score)
정밀도(precision_score)
재현율(recall_score)
1. 의사결정나무 분류
트리를 분할하고 가지치기를 반복하여 모델 생성
- 모델만들기
from sklearn.tree import DecisionTreeClassifier
model = DecisionTreeClassifier()
model.fit(x_train2, y_train2)
y_test2_predicted = model.predict(x_test2)
- 평가하기
from sklearn.metrics import roc_auc_score, accuracy_score, precision_score, recall_score
print(roc_auc_score(y_test2, y_test2_predicted))
print(accuracy_score(y_test2, y_test2_predicted))
print(precision_score(y_test2, y_test2_predicted))
print(recall_score(y_test2, y_test2_predicted))
2. 랜덤포레스트 분류
무작위의 다수 트리를 만들어 투표에 의해서 값을 결정
- 모델만들기
from sklearn.ensemble import RandomForestClassifier
model = RandomForestClassifier()
model.fit(x_train2, y_train2)
y_test2_predicted = model.predict(x_test2)
- 평가하기
from sklearn.metrics import roc_auc_score, accuracy_score, precision_score, recall_score
print(roc_auc_score(y_test2, y_test2_predicted))
print(accuracy_score(y_test2, y_test2_predicted))
print(precision_score(y_test2, y_test2_predicted))
print(recall_score(y_test2, y_test2_predicted))
3. 로지스틱 회귀분석
종속변수가 어떤 범주에 속할지 0과 1 사이의 연속적인 확률로 예측하는 회귀알고리즘, 이진분류모델
- 모델만들기
from sklearn.linear_model import LogisticRegression
model = LogisticRegression()
model.fit(x_train2, y_train2)
y_test2_predicted = model.predict(x_test2)
- 평가하기
from sklearn.metrics import roc_auc_score, accuracy_score, precision_score, recall_score
print(roc_auc_score(y_test2, y_test2_predicted))
print(accuracy_score(y_test2, y_test2_predicted))
print(precision_score(y_test2, y_test2_predicted))
print(recall_score(y_test2, y_test2_predicted))
4. 익스트림 그레디언트 부스팅(XGB) 분류
다수의 약한 분류기를 묶어서 정확도를 향상시키는 기법
- 모델만들기
from xgboost import XGBClassifier
model = XGBClassifier()
model.fit(x_train2, y_train2)
y_test2_predicted = model.predict(x_test2)
- 평가하기
predict_proba()라는 함수로 분류될 확률을 각각 계산하여 최종적으로 높은 확률값으로 0 또는 1 선택
y_test2_proba = model.predict_proba(x_test2)
print(y_test2_proba)
[[0.11126262 0.8887374 ] [0.69936204 0.30063793] [0.09925979 0.9007402 ] [0.67161185 0.32838815] [0.69936204 0.30063793] [0.8027649 0.19723512] [0.09925979 0.9007402 ] [0.03207648 0.9679235 ] [0.03207648 0.9679235 ] [0.09925979 0.9007402 ]]
from sklearn.metrics import roc_auc_score, accuracy_score, precision_score, recall_score
print(roc_auc_score(y_test2, y_test2_predicted))
print(accuracy_score(y_test2, y_test2_predicted))
print(precision_score(y_test2, y_test2_predicted))
print(recall_score(y_test2, y_test2_predicted))
5. 서포트벡터 분류(SVM)
from sklearn.svm import SVC
model = SVC()
model.fit(x_train2, y_train2)
y_test2_predicted = model.predict(x_test2)
from sklearn.metrics import roc_auc_score
print(roc_auc_score(y_test2, y_test2_predicted))
6. 배깅 분류
from sklearn.ensemble import BaggingClassifier
model = BaggingClassifier()
model.fit(x_train2, y_train2)
y_test2_predicted = model.predict(x_test2)
from sklearn.metrics import roc_auc_score
print(roc_auc_score(y_test2, y_test2_predicted))
7. KNN(K-최근접 이웃) 분류
from sklearn.neighbors import KNeighborsClassifier
model = KNeighborsClassifier()
model.fit(x_train2, y_train2)
y_test2_predicted = model.predict(x_test2)
from sklearn.metrics import roc_auc_score
print(roc_auc_score(y_test2, y_test2_predicted))
8. 다층 퍼셉트론 분류(MLPClassifier)
from sklearn.neural_network import MLPClassifier
model = MLPClassifier()
model.fit(x_train2, y_train2)
y_test2_predicted = model.predict(x_test2)
from sklearn.metrics import roc_auc_score
print(roc_auc_score(y_test2, y_test2_predicted))
반응형
'IT 자격증 > 빅데이터분석기사' 카테고리의 다른 글
Top 10 구하기 (0) | 2022.05.31 |
---|---|
분류모델링 (0) | 2022.05.31 |
예측모델링 (0) | 2022.05.21 |
학습데이터와 테스트데이터 분리하기 (0) | 2022.05.20 |
조건문으로 파생변수 만들기 (0) | 2022.05.20 |