머신 러닝 실습 - 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
반응형
'인공지능 > 머신러닝 실습(Python)' 카테고리의 다른 글
머신러닝 실습 - 4. 랜덤 포레스트로 붓꽃 데이터 분류 (0) | 2024.01.17 |
---|---|
SVM - 붓꽃 데이터 분류 (0) | 2024.01.15 |
로지스틱 회귀 - 붓꽃 데이터 분류 (0) | 2024.01.12 |