HeYStRanGeR
article thumbnail

 

(2022.04.02 ~ 04.07)

기계학습 수업 들으면서 정리하기 9탄

Lecture5_ML 내용 정리

 


 

머신러닝은 크게 3가지로 분류할 수 있다.

지도학습, 비지도학습, 강화학습인데

 - 지도학습에는 회귀, 분류가 있고,

 - 비지도학습에는 군집화, 차원 축소, GAN이 있다.

 

 

이번 강의에서는 지도학습의 분류비지도학습의 군집화에 대해서 공부해보았다.

분류와 군집화는 비슷한 집단으로 묶는다는 공통점이 있다. 그러나 차이점은 분명하다.

 - 분류는 소속 집단의 정보를 알고 있는 상태에서 비슷한 집단으로 묶는 것이고,

 - 군집화는 소속 집단의 정보를 모르는 상태에서 비슷한 집단으로 묶는 것이다.

 


 

분류 Classification

 

닥스훈트와 사모예드를 분류한다고 해본다면, feature로는 몸통의 길이와 높이로 둘 수 있다. 

몸통의 길이를 x1, 몸통의 높이를 x2 라고 두고 산점도로 이를 나타내보면 아래와 같다. 

(각 점이 어떤 강아지인지 알고있음)

 

 

k-NN 알고리즘

: k개의 최근접 이웃 (k-Nearest Neighbor)

 

특정 공간에 분포하는 데이터에 대해서 k개의 가장 가까운 이웃을 알아내어 다수결에 따라 데이터의 레이블을 할당하는 방식이다.



 

그런데 k가 짝수이면, 클래스의 개수가 같아져버리는 문제가 발생할 수 있다. 

--> 클래스의 개수가 같을 때 어떻게 분류할지는 프로그래밍하기 나름이다. 

클래스의 거리를 모두 따져가며 더 가까운 클래스로 레이블을 할당할 수도 있고,

가장 가까운 클래스의 레이블로 할당할 수도 있고 등등 여러가지가 있다.

 

 

 

sampling bias 표집 편향

sample data(표본데이터)가 편향된 경우에는 우수한 머신 러닝 알고리즘을 사용한다고 하더라도 학습 성능 개선을 기대하기 힘들다.

 

만약, 총 10000마리의 강아지 중에서 9900마리가 사모예드고, 100마리가 닥스훈트라고 했을때

언제나 사모예드로 리턴해주는 분류기에 데이터를 넣게된다면, 이 분류기의 정확도는 9900/10000 = 0.99 이다.

이럴 경우 정확도는 높지만, 분류기가 실제로 하는 일은 없다. 제대로된 성능평가가 힘들다.

 

그래서 성능을 살펴보기 위한 지표로 정밀도(pre)와 대현율(rec)이 나온 것이다.

 

 

 

정밀도(precision) & 재현율(recall)

 

TN : 예측 결과 음성, 실제 결과 음성 (맞춤)

FN : 예측 결과 음성, 실제 결과 양성 (틀림)

FP : 예측 결과 양성, 실제 결과 음성 (틀림)

TP : 예측 결과 양성, 실제 결과 양성 (맞춤)

 

T->맞춤

F->틀림

N->음성

P->양성

 

정확도(Acc) = (TP+TN) / (FP +FN + TP + TN)

정밀도(pre) = TP / (TP + FP) = 양성환자 제대로 예측 / 양성이라고 예측

재현율(rec) = TP / (FN + TP) = 양성환자 제대로 예측 / 찐 양성환자

 

정밀도는 양성으로 예측한 사람들 중에서 실제 양성일 확률을 말하고,

재현율은 실제 양성인 사람들을 양성으로 분류할 확률을 말한다.

재현율이 낮으면, 놓치는 환자가 많다는 뜻이 된다. 

 

 

 

F1 점수: 정밀도와 재현율의 조화평균 (harmonic mean)

- 재현율과 정밀도는 각각 중점을 두는 척도가 다르기 때문에 하나의 척도만을 보면 왜곡이 발생할 수 있어 이 두개의 지표를 조합한 F1 점수를 사용한다.

- F1 점수는 쇠렌센-다이스 계수 혹은 다이스 유사도 계수 라고도 부른다. (sorensen-dice coefficient  or dice similarity coefficient)

 

 


 

앙상블(Ensemble)

 

어느 정도 수준의 성능이 되면, 분류기를 개선하는 것이 힘들어지고, 모델의 특성에 따라 일정 수준 이상의 성능을 넘어서는 것도 어렵다.

이를 해결하기 위한 것이 바로 앙상블 기법이다.

 

여러 가지 종류의 분류기를 개별적으로 개선하기에 한계가 있을 때 이들의 협력을 이용하는 방법이다.

머신러닝 분야의 집단지성이라고 말할 수 있다.

앙상블은 표본 추출 + 모델링 과정을 여러번 반복해서 진행한다.

 - 회귀에서는 반복 모델링한 여러 결과값을 평균을 통해서 최종 예측값을 결정하고,

 - 분류에서는 반복 모델링한 여러 결과값을 투표를 통한 다수결을 통해서 최종 예측값을 결정한다.

 

 

앙상블 모형의 대표적인 방법론으로는 3가지가 있다.

  • Bagging
  • Boosting
  • Random Forest

배깅 기법은 이미 선택된 데이터가 다시 학습에 사용될 수 있는 기법 --> 그럴 수 없는 기법이 pasting(페이스팅)이다.

배깅 기법에서 개선된 것이 부스팅 기법이다. 부스팅 기법은 이전 모델의 결과를 반영하여, 잘못 예측된 데이터의 비율을 높여서 더 집중적으로 학습하는 방법론이다. (첫번째 모델링 결과를 반영해서 두번째 모델에 반영하고, 두번째 모델링 결과를 반영해서 세번째 모델에 반영하고 ,,,,,, 이런식으로)

 

+ boosting 알고리즘 중 AdaBoost가 가장 일반적이다.

AdaBoost 

- 각 데이터 인스턴스를 동일한 가중치로 초기화한다

- 예측기를 순차적으로 학습시킨다

- 한 예측기는 잘못 예측된 데이터 인스턴스의 가중치를 높인다.

- 다음 예측기는 높은 가중치를 가지는 데이터 인스턴스에 적합하게 학습한다.

 


 

k-NN 실습

 

 

 

닥스훈트와 사모예드 데이터를 입력했고, 분류할 새로운 데이터까지 입력해주었다.

이제 k-NN 분류기를 실행해보도록 한다.

 

 

 

 

k-NN 알고리즘을 적용할 때, k의 값에 따라서 분류값이 달라진다.

아래의 예시가 이를 보여준다.

 

 

 

 

 

 

 

 

728x90
profile

HeYStRanGeR

@HeYStRanGeR

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!