MachineLearning - Decision Tree 타이타닉 생존자 예측하기 Part3
Part3
목표 : Scikit-learn을 이용해서 Decision Tree쉽게 구현하고 성능 측적 및 Decision Tree 출력해보기
데이터 출처 : www.kaggle.com/c/titanic/data
Titanic: Machine Learning from Disaster
Start here! Predict survival on the Titanic and get familiar with ML basics
www.kaggle.com
ipynb 파일 : github.com/sangHa0411/DataScience/blob/main/Titanic_Prediction_Part2.ipynb
sangHa0411/DataScience
Contribute to sangHa0411/DataScience development by creating an account on GitHub.
github.com
Part2에서는 머신러닝 인 액션 책을 참고해서 Decision Tree의 알고리즘의 원리를 살펴보았습니다. 이러한 Decision Tree은 Scikit-learn에 구현되어 있어서 저희는 매번 해당 알고리즘을 구현할 필요없이 바로바로 쉽게 쓸 수 있습니다.
이번 Part3에서는 이러한 방법 및 과정을 살펴보겠습니다.
Part2에서는 저희는 데이터 전처리를 마쳤고 해당 데이터를 Part3에서 그대로 이용하였습니다.
먼저 데이터를 train data 와 test data로 분할합니다.

Target Data는 앞서 말씀드린 대로 Survived가 되고 나머지는 Training을 위한 데이터가 됩니다.

Part2 에서는 힘들게 구현헀던 DeicisionTree가 scikit learn을 이용해서 단 3줄로 사용이 가능합니다,
제가 DecisionTreeClassifier의 인자로 보낸 max_depth는 Decision Tree의 최대 깊이를 의미합니다. 이를 정하는 이유는 Decision Tree는 과대 적합 = 오버 피팅이 잘 일어나는 기법이기 때문에 사전에 최대 깊이를 정함으로써 오버 피팅을 방지해주기 위해서입니다.

사전에 최대 깊이를 정함으로써 훈련 데이터또한 정확도가 100%가 아닌 80%가 되었지만 테스트 데이터 또한 79%가 된 것을 확인할 수 있습니다.

이를 조금 더 정확하게 파악해보면 아래와 같습니다.

그리고 Scikit learn으로 만든 Decision Trees는 그래프로도 표현할 수가 있습니다.

