본문 바로가기
AI & 머신러닝 coding skill

머신러닝 의사결정 나무(DecisionTree Classifier) - 분류

by 호빵님 2022. 5. 24.
반응형

의사결정 나무(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()

 

 

 

*본 포스팅은 DX기업교육 플랫폼인 Elice academy의 머신러닝 심화 과정에서 실습한 코드를 이용해서 작성되었습니다.

https://elice.io/

 
 
 

올인원 디지털 교육 플랫폼 - 엘리스

우리 모두를 위한 교실, 엘리스와 함께 더 나은 기회를 만들어보세요

elice.io

 

 

반응형