머신러닝 중 지도학습 기법의 대표적인 예로 분류 (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)
'인공지능 > 데이터 분석' 카테고리의 다른 글
[사이킷런] GridSearchCV : 교차 검증 + 하이퍼 파라미터 튜닝 (0) | 2021.08.16 |
---|---|
[사이킷런] 과적합의 문제와 교차 검증 모델(KFold, StratifiedKFold, cross_val_score) (0) | 2021.08.16 |
[numpy] transpose, linalg.inv, dot (0) | 2020.10.04 |
[numpy] array, reshape concatenate, split (0) | 2020.10.04 |
[pandas] 데이터를 같은 값끼리 묶고 column 별로 다른 함수 실행하기 (0) | 2020.10.03 |