캡쳐 사진 및 글작성에 대한 도움 출저 : 유튜브 - 허민석님


먼저, feature는 2개로 간소화시켜서 설명한다.( 2개일 경우만 시각화가 가능)

label(target)은 0(dead과 1(Survived)가 있다고 가정한다.

이 때 사용할 수 있는 머신러닝Classifier의 종류는 5가지 정도로 요약될 수 있다.

  1. kNN
  2. Decision Tree
  3. Random Forest
  4. Naive Bayes
  5. SVM(Support Vector Machine)


image


kNN( k - Nearest Neighborhood) 분류기

test데이터가 들어갈 때, 가장 가까운 3개의 이웃 중, 많은 label을 택한다.

  1. k=3일 경우,
    2명이 살았고, 1명이 죽었으니까 심슨은 Survive를 label로 예측할 것이다.
    image

  2. k=5일 경우, 심슨은 dead로 예측될 것이다.
    image

보는 것과 같이, k에 따라 예측값도 달라진다. 그러므로 k라는 변수를 변화시키면서, 분류기의 accuracy를 살펴보아야할 것이다.


Decision Tree 분류기

Decision Tree의 경우,
우리가 가지고 있는 feature를 모두 분석해서 tree를 build해준다.
그리고 나서 test데이터만 넣어주면, 알아서 판단해준다.
image


Random Forest

Decision Tree가 여러개 모여서 Forest를 이룬 것이다.
Decision Tree보다는 조금 작은 Tree들이 여러개 들어간다.

만약 feature가 9개인 상황이면, Random Forest에서는 3개의 Tree에다가 각각 3개의 feature를 쪼개어 할당한다.

그리고 나서 3개의 Tree중에, 더많은 Tree의 예측결과를 따른다.
아래그림과 같이 2개의 Tree가 dead라고 예측하였으니, 심슨은 Dead로 예측될 것이다.
image



나이브 베이즈(Naive Bayes)

나이브 베이즈는 확률을 사용한다.
만약, feature에 age와 sex 2개가 존재하는 상황에서, 심슨의 나이, 성별에 따라 Survive할 확률은 얼마인지를 Naive Bayes의 이론에 따라 계산하게 된다. 자세한 것은 이전에 포스팅 한 것을 참고하면 된다.

image


SVM(Support Vector Machine)

서포터 벡터 머신은 기본적으로 Decision Boundary라는 직선이 주어진 상태이다.
이 Decision boundary를 긋는 방법은 binary classification(Logistic regression문제)에서

feature가 2개이므로, z(x) = w1x1 + w2x2 일 때, activation(x) = sigmoid ( z(x))이고,
이 때, a(x) = h(x) 인, 단순 선형회귀일 경우에,
예측값이 0도 아니고 1도 아닌, h(x) = 0.5를 만들게 하는 경우이다.

즉, h(x) = a( z(x)) = sigmoid( z(x) )= 0.5
image

z(x) = 0

w1x1 + w2x2 = 0을 만족시키는 w1와 w2에 의해 결정된다.
x2 = - w1x1 / w2 이므로, 기울기는 -w1/w2일 것이다.


아무튼, 심슨은 Decision Boundary보다 위에 있으므로 죽었다고 예측되고,
심슨부인은 Decision Boundary보다 아래에 있으므로 살았다고 예측된다.

image





모델링과 Classifier가 있는 상태에서,
Testing을 하기전에 반드시 해야할 것이 validation이다.

k-fold Cross validation

현재 가지고 있는 train데이터셋을 가지고 validation해야한다. (test데이터셋은 순서 테스트만 해야한다)

  1. 고전적인 방법으로는 train data에서 일부를 떼서 validation에 쓰는 것이다.
    그 결과, train을 통해 나오는 accuracy는 validation dataset의 accuracy이다.
    여기서 문제점은, train에서 떼어낸 특정 부분만의 accuracy이며,
    다른부분에서 떼어낼 경우 accuracy가 달라지게 된다.
    즉, bias(편견이 있는) validation이다.
    image

  2. k-fold cross validation방법은 고전적인 valdation방법을 보완한다.
    1) 먼저 k=10으로 가정하면, train data를 10등분한다.
    image

    2) 순서대로 돌아가면서 1/10을 validation으로 사용하며, 나머지 9개를 train으로 사용한다.
    image

    3) 10번의 validation결과로 나온 accuracy를 평균낸다.
    전문용어로는 validation accuracy score라고 한다.


이제 머신러닝classifier 5개를 사용해보고
k-fold cross validation을 거쳐
final accuracy가 가장 높은 classifier를 채택하자.

+ Recent posts