반응형
의사결정 나무(DecisionTree Classifier) - 분류
이번 실습에서는 분류 문제 해결을 위해 Iris 데이터를 사용합니다. Iris 데이터는 꽃받침 길이, 꽃받침 넓이, 꽃잎 길이, 꽃잎 넓이 네 가지 변수와 세 종류의 붓꽃 클래스로 구성되어 있습니다.
iris 데이터에 대해 분류 의사결정 나무 모델을 사용하여 예측 문제를 수행해보도록 하겠습니다.
분류를 위한 의사결정 나무 예시 사진
분류 의사결정 나무를 위한 사이킷런 함수/라이브러리
- from sklearn.tree import DecisionTreeClassifier : 사이킷런에 구현되어 있는 분류 의사결정 나무 모델을 불러옵니다.
- DecisionTreeClassifier(): 분류를 위한 의사결정 나무 모델을 정의합니다.
- [Model].fit(X, y): (X, y) 데이터셋에 대해서 모델을 학습시킵니다.
- [Model].predict(X): X 데이터를 바탕으로 예측되는 값을 출력합니다.
from sklearn.datasets import load_iris
from sklearn.tree import DecisionTreeClassifier
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
from elice_utils import EliceUtils
elice_utils = EliceUtils()
"""
1. 데이터를 불러오고,
학습용 데이터와 테스트용 데이터로 분리하여
반환하는 함수를 구현합니다.
Step01. 사이킷런에 저장된 데이터를 불러옵니다.
Step02. 불러온 데이터를
학습용 데이터(80%)와 테스트용 데이터(20%)로
분리합니다.
일관된 결과 확인을 위해 random_state는
100으로 설정합니다.
"""
def load_data():
X, y = load_iris(return_X_y = True)
train_X, test_X, train_y, test_y = train_test_split(X, y, test_size=0.2, random_state = 100)
return train_X, test_X, train_y, test_y
"""
2. 분류 의사결정 나무 모델로
학습, 예측을 수행한 후 예측 결과를 반환하는 함수를 구현합니다.
Step01. 분류를 위한
의사 결정 나무 모델을 정의합니다.
Step02. 의사 결정 나무를
학습용 데이터에 대해 학습시킵니다.
Step03. 테스트 데이터에 대한
분류 결과를 예측합니다.
"""
def DT_Clf(train_X, train_y, test_X):
clf = DecisionTreeClassifier()
clf.fit(train_X, train_y)
pred = clf.predict(test_X)
return pred
def main():
train_X, test_X, train_y, test_y = load_data()
pred = DT_Clf(train_X, train_y, test_X)
print('테스트 데이터에 대한 예측 정확도 : {0:.4f}'.format(accuracy_score(test_y, pred)))
return pred
if __name__ == "__main__":
main()
반응형
'AI & 머신러닝 coding skill' 카테고리의 다른 글
머신러닝 분류 - 나이브 베이즈 분류 (0) | 2022.05.24 |
---|---|
머신러닝 분류 - SVM(Support Vector Machine) (0) | 2022.05.24 |
머신러닝 Decision tree - 앙상블(Ensemble) 기법 - Bagging (0) | 2022.05.24 |
머신러닝 Decision tree - 앙상블(Ensemble) 기법 - Voting (0) | 2022.05.24 |
머신러닝 의사결정 나무(DecisionTree Regressor) - 회귀 (0) | 2022.05.24 |
머신러닝 - 이진트리 분류기 만들기 (0) | 2022.05.24 |
머신러닝 - t-SNE (0) | 2022.05.23 |
머신러닝 - 주성분 분석(PCA) (0) | 2022.05.23 |