728x90
지도 학습 분류 문제
결정나무 분류
- 환경 준비
- 데이터 이해
- 데이터 준비
- 모델링
- 기타
- graphviz
- 변수 중요도
1. 환경준비 |
import numpy as np import pandas as pd import matplotlib.pyplot as plt import seaborn as sns import warnings warnings.filterwarnings(action='ignore') %config InlineBackend.figure_format = 'retina' # 데이터 읽어오기 data = pd.read_csv(path) |
2. 데이터 이해 |
data.head() data.describe() data['컬럼명'].value_counts() data.corr() |
3. 데이터 준비 |
1) x, y 분리 target = '타겟 컬럼' x = data.drop(target, axis = 1) y = data.loc[:, target] 2) 학습용, 평가용 데이터 분리 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) |
4. 모델링 |
# 1단계 from sklearn.tree import DecisionTreeClassifier from sklearn.metrics import confusion_matrix, classification_report # 2단계 선언하기 model = DecisionTreeClassifier(max_depth=5, random_state=1 # 3단계 학습하기 model.fit(x_train, y_train) # 4단계 예측하기 y_pred = model.predict(x_test) # 5단계 평가하기 print( confusion_matrix(y_test, y_pred) ) print( classification_report(y_test, y_pred) ) |
graphviz |
# 시각화 모듈 from sklearn.tree import export_graphviz from IPython.display import Image # 이미지 파일 export_graphviz( model, out_file = 'tree.dot', feature_names = x.columns, class_names = ['No', 'Yes'], rounded = True, precision = 2, filled = True) # 파일 변환 !dot tree.dot -Tpng -otree.png -Gdpi=300 # 이미지 파일 표시 Images(filename = 'tree.png') |
변수 중요도 시각화 |
plt.figure(figsize=(5,5)) plt.barh(list(x), model.feature_importances_ ) plt.show() |
728x90
'데이터 - 머신러닝 지도 학습' 카테고리의 다른 글
지도 학습] 회귀 KNeighborsRegression (0) | 2023.09.23 |
---|---|
지도 학습] 분류 - LogisticRegression (0) | 2023.09.21 |
지도 학습] XGBClassifier (0) | 2023.09.21 |
지도 학습] 모델 저장 (0) | 2023.09.21 |
지도 학습] 분류 - RandomForestClassifier 랜덤 포레스트 (0) | 2023.09.20 |