머신 러닝 실습 - 3. 결정 트리로 붓꽃 데이터 분류

2024. 1. 16. 20:41인공지능/머신러닝 실습(Python)

728x90
반응형

 이 글에서는 Scikit-learn의 sklearn 라이브러리를 사용하여 결정 트리 모델을 훈련하고, 파라미터들을 조절해가며 성능을 비교한다. 결정 트리에 관한 이론적 내용을 알고 싶다면 이곳으로.


시행 1

1.1. 파라미터

불순도 트리 최대 깊이 랜덤 스테이트 리프 노드 최소 샘플 수
Gini Impurity 5 1 3

 


1.2. 코드 (나머지 시행에서는 올리지 않음)

from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier
from sklearn import tree
import matplotlib.pyplot as plt
from sklearn.metrics import accuracy_score

iris = datasets.load_iris()

X = iris.data[:,[2, 3]]
y = iris.target
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.3, random_state = 1, stratify=y)

tree_model = DecisionTreeClassifier(criterion='gini', max_depth=5, random_state=1, min_samples_leaf=3)
tree_model.fit(X_train, y_train)

predict = tree_model.predict(X_test)
accuracy = accuracy_score(y_test, predict)
print('Accuracy: ', accuracy)

feature_name = ['Sepal length', 'Sepal width',
                'Petal length', 'Petal width']
tree.plot_tree(tree_model, feature_names=feature_name, filled=True)
plt.show()

1.3. 결과

Accuracy:  0.9777777777777777


시행 2

2.1. 파라미터

불순도 트리 최대 깊이 랜덤 스테이트 리프 노드 최소 샘플 수
Entropy 5 1 3

2.2. 결과

Accuracy:  0.9777777777777777


시행 3

3.1. 파라미터

불순도 트리 최대 깊이 랜덤 스테이트 리프 노드 최소 샘플 수
Gini Impurity 3 1 3

3.2. 결과

Accuracy:  0.9777777777777777


시행 4

4.1. 파라미터

불순도 트리 최대 깊이 랜덤 스테이트 리프 노드 최소 샘플 수
Gini Impurity 10 1 1

4.2. 결과

Accuracy:  0.9777777777777777


시행 5

5.1. 파라미터

불순도 트리 최대 깊이 랜덤 스테이트 리프 노드 최소 샘플 수
Gini Impurity 5 1 5

5.2. 결과

Accuracy:  0.9777777777777777

728x90
반응형