-
sklearn-08 classification 3 decision tree머신러닝/sklearn 2023. 5. 10. 18:04
1. decision tree
의사 결정나무라고 불리는 알고리즘은 모양이 나무를 뒤집어 놓은 것 같아서 decision tree라고 부른다.
시작되는 부분이 루트 노드이며 중간에 위치한 노드는 인터널 노드 마지막 노드는 리프노드이다. 수많은 if문으로 이루어져 있으며 분류모델과 회귀모델 둘 다 사용가능하다.
구조가 간단하여 해석이 용이하지만 과대적합의 위험이 높기 때문에 적절한 트리의 깊이와 노드의 개수를 설정해야 한다.
2. python
from sklearn.tree import DecisionTreeClassifier dt = DecisionTreeClassifier(max_depth=3)
모듈을 불러오고 변수를 설정한다. 깊이는 3으로 지정한다.
dt.fit(X_train,y_train) y_pred = dt.predict(X_test) print('tree 회귀 정확도:{:}'.format(accuracy_score(y_test, y_pred) * 100)) tree 회귀 정확도:100.0
데이터를 학습시키고 정확도를 확인한다.
from sklearn.tree import export_graphviz export_graphviz(dt, out_file = 'tree.dot')
다운로드를 위한 모듈을 불러온다. 모델을 넣어주고 tree.dot 이름으로 로컬에 저장한다.
from subprocess import call call(['dot','-Tpng','tree.dot','-o','decision-tree1.png','-Gdpi=600'])
그림을 그려주는 모듈을 불러오고 파일 확장자와 불러올 이름 , 이미지 이름, 해상도를 설정한다.
from IPython.display import Image Image(filename='decision-tree1.png')
38, 39, 43개의 데이터가 여러가지 조건에 의해서 나눠진 것을 확인할 수 있다.
'머신러닝 > sklearn' 카테고리의 다른 글
sklearn-10 regression 1 linear regression (0) 2023.05.10 sklearn-09 classification 4 ramdom forest (0) 2023.05.10 sklearn-07 classification 2 svm (0) 2023.05.10 sklearn-06 classification 1 logistic regression (0) 2023.05.10