wisdiom 아니고 wisdom

4. 머신러닝 데이터 분석(2) - 3 본문

👩‍💻/pandas

4. 머신러닝 데이터 분석(2) - 3

글로랴 2021. 2. 15. 22:30

Decision Tree, 의사결정 나무

트리(Tree) 구조를 사용하며, 각 분기점(node)에는 분석대상의 속성(설명변수)들이 위치한다. 각 분기점마다 목표 값을 잘 분류할 수 있는 속성을 찾아서 배치하고, 해당 속성이 갖는 값을 이용하여 새로운 가지(branch)를 만든다. 각 분기점에서의 최적의 속성을 선택할 때는 해당 속성을 기준으로 분류한 값들이 구분되는 정도를 측정한다. Entropy가 낮을수록 분류가 잘 된 것이며, Entropy가 일정 수준 이하로 낮아질 때까지 앞의 과정을 반복한다.

 

*Entropy : 다른 종류의 값들이 섞여 있는 정도를 나타내는 것

 

 

📍 모형 학습 및 검증

# Decision Tree 분류 모형
from sklearn import tree

# 모형 객체 생성
tree_model = tree.DecisionTreeClassifier(criterion='entropy', max_depth=5)

# 모형 학습
tree_model.fit(x_train, y_train)

# 예측
y_hat = tree_model.predict(x_test)

print(y_hat[0:10])          # [4 4 4 4 4 4 2 2 4 4]
print(y_test.values[0:10])  # [4 4 4 4 4 4 2 2 4 4]
# 모형 성능 평가
# Cofusion Matrix 계산
from sklearn import metrics
tree_matrix = metrics.confusion_matrix(y_test, y_hat)
print(tree_matrix)

print('\n')

tree_report = metrics.classification_report(y_test, y_hat)
print(tree_report)

반응형