본문 바로가기
IT 자격증/빅데이터분석기사

분류모델링

by _><- 2022. 5. 31.
반응형

# 주요모델

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