티스토리 뷰
[Kaggle] Titanic: Machine Learning from Disaster - (1) ML System
Arc Lab. 2017. 10. 25. 11:01[업데이트 2017.10.25 11:47]
Kaggle에 있는 Machine Learning 기본 문제로 Titanic호에 승선한 사람들의 데이터가 주어지고, 생존 여부를 예측하는 문제입니다. Binary classification을 사용하여 해결하면 되는 문제입니다. (정답 Label이 0, 1 생존 여부로 주어짐)
자세한 내용은 아래의 링크를 참고 하시기 바랍니다.
https://www.kaggle.com/c/titanic
먼저 ML(이하 Machine Learning) 문제를 풀기 위해서는 ML System의 Process에 대해 살펴보아야 합니다.
실제 환경에서는 세부적으로 구체화 시키면 Training Data Sensing부터 Post-Processiong 등 여러 단계가 있겠지만, 해당 문제를 풀기 위한 과정에 한정하여 각 단계를 정리해보았습니다.
1) Training Data
2) Pre-Processing
3) Feature Selection/Extraction
4) Learning/Estimation
5) Model
6) Test Data
7) Prediction
8) Classification
1) Training Data
먼저 Training Data를 가지고 ML Model(Hypothesis 함수)을 세우고 Training을 진행해야 하는데, 해당 Kaggle 문제에서는 csv파일로 Training Data가 주어집니다.
2) Pre-Processing
그러나 csv 파일을 열어보면 아시겠지만, 일부 Feature는 String 형태로 되어 있기도 하고, 바로 Training Data로 사용을 할 수 없는 상태입니다. 따라서 Pre-processing을 통해 String 데이터를 숫자 데이터로 변환하는 등의 Pre-Processing을 진행합니다.
3) Feature Selection/Extraction
Pre-Processing후 실제로 Training 할 Feature를 선택/추출하는 과정을 거쳐야 합니다. 전체 Feature에서 subset으로 Feature를 취하는 것을 Feature Selection이라 부르고, 어떤 Feature들을 조합하여 새로운 Feature를 만드는 것을 Feature Extraction이라고 부릅니다. Feature Selection을 통해 먼저 문제를 풀어볼 예정입니다.
4) Learning/Estimation
이제 Training Data를 가지고 ML Model을 훈련하고, 평가하는 단계를 진행합니다. 해당 문제의 경우 Binary classification 문제로 Logistic regression을 사용하기 위한 Hypothesis 함수를 설정하고 훈련 및 평가를 반복합니다.
5) Model
Learning/Estimation 과정을 통해 Hypothesis 함수의 weight 및 bias를 찾는 것이 목표이고, 최종 ML Model을 얻게 됩니다.
6) Test Data
Test Data도 csv파일로 주어지며, Trainig Data처럼 동일하게 Pre-Processing을 진행합니다.
7) Prediction
이제 ML Model에 Test Data를 입력하여 예측을 진행합니다.
8) Classification
예측을 통해 Test Data에 대한 생존 여부에 대해 분류하게 됩니다.
다음과 같은 단계를 거쳐 Kaggle 제출용 csv파일을 만들고, 제출하면 Test Data에 대한 Accuracy를 Kaggle Leaderboard에서 확인 할 수 있습니다.
다음 포스팅에서는 Training Data에 대한 Pre-Processing, Feature Selection/Extraction에 대해 어떻게 하는 것이 최종 성능(Accuracy)을 올릴 수 있는지 고민한 내용을 올리도록 하겠습니다.
* 참고 : https://www.kaggle.com/c/titanic
* 참고 : http://terryum.io/korean/2016/05/05/FeatureSelection_KOR
* 참고 : http://featureselection.asu.edu/tutorial.php
- Total
- Today
- Yesterday
- #REST API
- 2D Game
- belief
- #ELK Stack
- Ragdoll
- ate
- Badge
- Physical Simulation
- Library
- project
- Jekyll and Hyde
- #ApacheSpark
- #TensorFlow
- Meow
- Memorize
- OST
- SSM
- GOD
- #ApacheZeppelin
- aws #cloudfront
- some time ago
- sentence test
- 도커
- Mask R-CNN
- ILoop Engine
- Worry
- Game Engine
- docker
- English
- Sea Bottom
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |