본문 바로가기
인공지능/데이터 분석

[사이킷런] train_test_split, DecisionTreeClassifier 체험

by julysein 2021. 8. 16.
728x90

 

머신러닝 중 지도학습 기법의 대표적인 예로 분류 (classification)이 있다. 지도 학습은 다양한 피처와 레이블에 대한 데이터로 모델을 학습한 뒤, 별도의 테스트 데이터들에 대한 레이블을 예측하는 식으로 이루어진다.

 

사이킷런 패키지

sklearn.datasets : 사이킷런에서 자체적으로 제공하는 데이터 세트

sklearn.tree : 트리 기반 ML 알고리즘을 구현한 클래스

sklearn.model_selection : 학습 데이터와 검증 데이터, 예측 데이터로 데이터를 분리, 최적의 하이퍼 파라미터로 평가하기 위한 다양한 모듈의 모임

* 하이퍼 파라미터 : 직접 입력하는 파라미터

 

학습용 데이터와 테스트용 데이터 분리하기 (train_test_split)

X_train, X_test, Y_train, Y_test = train_test_split(data, label, test_size=0.2, random_state =10

 

train_test_split을 활용하면 데이터셋을 학습용 데이터와 테스트용 데이터로 분리할 수 있다.

X_train : 학습데이터 변수

X_test: 테스트 데이터 변수

Y_train: 학습 데이터 결과값

Y_test: 테스트 데이터 결과값

함수의 파라미터의 의미들을 살펴보자

data : 피처 데이터 세트

label : 레이블 데이터 세트

test_size : 전체 데이터 세트 중 테스트 데이터 세트의 비율

randome_state : 데이터 세트를 생성하기 위해 주어지는 난수 발생 값(미입력 시 랜덤으로 나누기 때문에 다음 학습시에도 같은 데이터 셋을 얻으려면 값을 지정해주어야 함, 숫자는 무엇으로 해도 무관)

 

DecisionTreeClassifier 를 이용한 학습 및 정확도 평가

#DecisionTreeClassifier 객체 생성
df_clf = DecisionTreeClassifier(randome_state=10) 

#학습 수행
df_clf.fit(X_train, Y_train) 

# 학습된 DecisionTreeClassifier로 테스트 데이터를 예측한 후 결과값을 pred에 저장
pred = df_clf.predict(X_test) 

#예측된 데이터와 Y_test 비교
accuracy_score(y_test,pred)

 

 

 

728x90