데이터를 갖고 의사결정 나무 모델에 적용하는 프로세스는 크게 다음과 같다
위 그림에서 보는 것처럼
첫번째, 문제를 정의하고 훈련 데이터를 수집을 한다
두번째, 데이터를 추출을 한다, 여기서 데이터 추출이란, Data의 여러가지 features 중에서 중요한 feature을 뽑아내어
나무의 결정 기준을 설정한다. 이 때, 기준 설정은 가장 많은 데이터를 나가떨어지게(?)하는 feature을 가장 먼저 설정하는 것이 효율적이다. 또한 엔트로피가 낮도록(clean~) 설정을 해야 한다(=정보획득이 높아져아한다!)
#정보획득에 대한 용어는 의사결정나무 이론에 대한 정리글을 참고하자!
세번째, 모델을 실행시킨다.
네번째, test데이터로 모델 성능을 시험해본다.
위는 Decision tree 모델에 input으로 넣기 위해 적절하게 정제한 타이타닉 데이터이다. 기존과 많이 다른 점 중 하나는 Embarked 라는 feature값에 [S , C , Q]라는 값을 one-hot encoding으로 변환한 점이다.
#Kfold=교차검증 : 모든 데이터셋이 최소 한번의 테스트셋으로 사용하면서 검증하는 방법이다!
교차검증을 하는 이유는 총 데이터 셋의 갯수가 적기 때문에 이 적은 데이터셋에서 train/test/validation용 데이터로
나누다 보면 데이터수가 더 적어지기 때문에 underfitting이 발생하게 된다
scoring = 'accuracy' 정확도를 측정하는거라고 생각...
cross_val_score의 인자에서
- clf = 위에서 정의한 의사결정나무 머신러닝 모델 이름
- train_data = 위에서 정의한 우리가 정제한 타이타닉 훈련 데이터(생존여부=Survived를 제외한) 즉, x값
- target = 위에서 정의한 생존여부(우리가 예측하려는 값) 즉, y값
- cv=k_fold : 교차검증
- n_jobs : 계산을 하는 CPU 숫자 . .. CPU가 충분하면 해당 값을 증가시킬수록 속도가 증가한다.
교차검증 score : 79.91
'Archive' 카테고리의 다른 글
[ML] SVM(Support Vector Machine) is apllied to Titanic_Data (0) | 2019.11.25 |
---|---|
Think whether ML/DL is applied to the selected data. (0) | 2019.11.17 |