Gidhub BE Developer

Project [1:2]

2018-02-14
goodGid

머신러닝 - 결정 트리(Decision Tree)를 기반으로 운동 경기 결과 예측하기

  1. 지도 학습이란 ?
  2. 개발 환경 설정 : skikit-learn과 pandas
  3. 분류 문제와 결정 트리
  4. 교차 검증
  5. NBA 경기 데이터 수집 및 전처리

지도 학습이란

머신 러닝은 학습에 쓰이는 데이터의 타입학습 방법에 따라

지도 학습, 비지도 학습, 강화 학습으로 분류한다.

이번 장에서는 지도 학습 중의 하나인 결정 트리를 이용할 예정이다.


지도 학습이란 주어진 학습 데이터에 어떠한 결과가 도출될지

쌍으로 명시된 데이터로 학습하고,

이 데이터를 이용하여 결과를 예측할 수 있는 모델을 만든 다음,

이를 바탕으로 새로운 입력 데이터에 대해서 결과를 예측하는 것을 말한다.


여기서 학습 데이터에 쌍으로 주어진 결과값을 레이블(Lable)이라 하며

다음과 같은 단계를 거친다.

Step 1

학습에 사용할 데이터를 정하고, 이를 수집한다.

지도 학습에서 학습 데이터레이블을 가지고 있어야 하며,

전체 데이터에서 골고루 분포되도록 선별해야 추후 생성된 모델이 학습 데이터에

편향되는 것을 예방할 수 있다.


Step 2

데이터의 어떤 특징(feature)을 어떻게 표현하여 학습시킬지 결정하고,

필요한 경우 데이터를 가공한다.


스팸 메일을 분류하기 위한 메일 데이터의 경우

발신인, 수신인, 제목, 내용을 가지고 있다.

여기서 제목을 지도 학습에 사용할 특징으로 선정했다면 매번 제목의 문자열을 분석하는 대신

제목에 지정한 스팸 키워드가 있는 경우에는 ‘True’로 표기해 두는것이

지도 학습의 알고리즘이 처리하기 좋다.


이러한 과정을 전처리(preprocessing)라 하며, 잡음(Noise)이 있는 데이터를 제거하거나,

일부 누락된 특징의 값을 적절한 예측 과정을 통해 추가하는 등의 작업을 수행한다.


Step 3

지도 학습의 알고리즘을 선택한다.

[은닉 마르코프 모델, 서포트 벡터 머신, 회귀 분석, 신경망, 나이브 베이즈 분류, 결정 트리]등의 다양한 알고리즘이 있고,

각각 특징과 추정 방법도 다양하므로

적용할 분야에 맞는 적절한 선택을 한다.


Step 4

학습 데이터를 이용해 모델을 학습시키고,

생성된 모델을 평가(Validation)한다.

이 때 학습 데이터와 별도로 검증을 위한 데이터가 추가로 필요하며,

평가 방법으로는 정확도(Accuracy), 오차 비율(Error rate), 민감도(Sensitivity)등이 사용된다.


Step 5

평가 결과가 원하는 예측 수준임이 검증됐다면

이제 새로운 데이터로 결과를 예측해본다.

  • 지도 학습은 학습 데이터마다 정답인 레이블을 가지고 있으므로 다른 방식에 비해 정확하다.

  • 원하는 데이터를 생성하고, 수집하는데 상대적으로 큰 비용이 드는 문제가 있다.


개발 환경 설정 : scikit-learn과 pandas


pip install numpy, scipy, scikit-learn pandas

  • 컬럼을 쉼표(,)로 구분한 CSV(Comma-Separated Values)포맷이다.

  • 이 데이터를 손쉽게 처리하기 위하여 pandas(Python Data Analysis) 라이브러리를 이용한다.


Recommend

Index