태지쌤

로봇 & 코딩교육 No.1 크리에이터

Data Science

[AI와빅데이터경영입문] 트리분석 graphviz

태지쌤 2023. 3. 9. 20:40
반응형
트리분석.ipynb
0.02MB

트리 분석(Tree Analysis) 알고리즘은 데이터를 분류(Classification)하거나 예측(Prediction)하기 위한 방법 중 하나입니다.
트리 분석 알고리즘은 일련의 결정 규칙들로 이루어진 트리(Tree)를 만들어 데이터를 분류하거나 예측합니다. 이 트리는 뿌리(Root)에서 시작하여 분기(Branch)를 반복하며 종단 노드(Leaf node)에 이르는데, 각 분기마다 하나의 변수를 선택하고 그 변수를 기준으로 데이터를 분류합니다.
트리 분석 알고리즘은 다양한 종류가 있습니다. 대표적으로는 의사결정나무(Decision Tree)와 랜덤포레스트(Random Forest)가 있습니다. 의사결정나무는 단일 트리로 구성되어 있으며, 랜덤포레스트는 여러 개의 의사결정나무를 조합하여 구성된 앙상블(Ensemble) 모델입니다.
트리 분석 알고리즘은 해석이 용이하며, 변수의 중요도를 파악할 수 있어서 데이터 분석에서 많이 사용됩니다. 그러나 과적합(Overfitting) 문제가 있을 수 있기 때문에, 모델의 복잡도를 적절하게 조절하거나 앙상블 기법을 적용하여 이를 완화할 수 있습니다.

from sklearn import datasets

irisData = datasets.load_iris()

x_total = irisData.data
y_total = irisData.target

# 데이터 분할

from sklearn.model_selection import train_test_split, cross_val_score
x_train, x_test, y_train, y_test = train_test_split(x_total, y_total,test_size =0.5, random_state=10)

# 모형학습

from sklearn import tree

treeClass = tree.DecisionTreeClassifier()
treeClass.fit(x_train, y_train)

# 학습 결과 및 성능 평가

predictedClass = treeClass.predict(x_test)

print("훈련 집합의 예측 정확도 : ", treeClass.score(x_train, y_train))
print("테스트 집합의 예측 정확도 : ", (predictedClass == y_test).mean())

# 트리 도식화

import graphviz

dot = tree.export_graphviz(treeClass, out_file=None,
                           feature_names = irisData.feature_names,
                           class_names = irisData.target_names,
                           filled = True, rounded = True,
                           special_characters = True)
treeGraph = graphviz.Source(dot)
treeGraph

이 코드는 Iris 데이터를 Decision Tree Classifier를 사용하여 분석하고, 학습 결과 및 성능을 평가한 후 그 결과를 시각화하는 코드입니다.
코드의 구체적인 내용은 다음과 같습니다.

  1. sklearn.datasets 모듈로부터 Iris 데이터를 불러옵니다.
  2. train_test_split() 함수를 사용하여 데이터를 학습용(train)과 테스트용(test)으로 나눕니다.
  3. sklearn.tree 모듈로부터 Decision Tree Classifier를 가져와 fit() 함수로 학습을 수행합니다.
  4. score() 함수로 학습 결과를 평가하고, 테스트용 데이터에 대한 예측을 수행합니다.
  5. graphviz 모듈로부터 Source 클래스를 가져와 export_graphviz() 함수를 사용하여 학습된 Decision Tree Classifier의 시각화 결과를 생성합니다.

따라서 이 코드를 실행하면 Decision Tree Classifier를 사용하여 Iris 데이터를 분석한 결과를 시각화할 수 있습니다. 시각화된 결과를 통해, Decision Tree Classifier가 사용한 분류 규칙들을 쉽게 이해할 수 있습니다.

반응형