티스토리 뷰

728x90
반응형

비선형분류모형 중 k-근접 이웃 분류(k-neareast neighbor : k-NN)가 있다. 이 분류기는 어떠한 데이터가 입력되면 입력 변수를 기준으로 주변의 데이터들 간의 거리를 계산하고 가장 가까운” k개의 데이터들이 주로 속한 클래스에 할당시키는 방식으로 분류를 진행한다.


가까움에 대해 여러 가지의 정의가 있을 수 있다.

입력 변수 값이 연속적인 경우, 유클리디안 거리, 마할라노비스 거리, 코사인 유사도, 민코프스키 거리, 맨해튼 거리 등 여러 가지 평가 척도가 존재한다. 일상 생활에서 가장 많이 쓰이는 거리의 개념은 유클리디안 거리에 해당한다. 맨해튼 거리의 경우 위치 간의 수직, 수평 거리의 합을 의미하며, 민코프스키 거리는 유클리디안, 맨해튼 거리 등을 모두 포함할 수 있는 큰 범주의 거리의 개념에 해당한다. 코사인 유사도는 어떠한 기준에 대해 얼마만큼의 각도에 점이 위치해있는지로 거리를 판단하는 척도이다.

입력 변수 값이 이산적인 경우, 해밍 거리를 사용할 수 있다. 해밍 거리는 데이터 간 서로 다른 성분의 개수를 의미한다.

거리를 계산할 때는 주의해야 할 부분이 있다. 특정한 입력 값의 크기가 너무 큰 경우 거리를 계산할 때 그 값에 의한 영향이 지나칠 수 있다. 따라서 크기를 일정한 수준으로 조정을 해주어야 한다. 또한 고차원의 데이터에 대해 유클리디안 거리를 사용하면 차원의 저주에 의해 비직관적인 결과를 얻을 수 있다. , 수치를 비교해보았을 때는 큰 차이가 나 보이는 값들이 유클리디안 거리 상으로는 차이가 거의 없다는 결과를 얻을 수 있는 것이다.


k-NN에서 k값은 hyperparameter로 사용자가 직접 정해야 하는 값이다. 적절한 k값을 얻기 위해 validation data set을 사용하여 오차를 최소화하는 k 값을 얻을 수 있다. k 값이 너무 작으면 과적합이 발생할 수 있고, 너무 크면 과소적합이 발생할 수 있다.

일정한 수의 이웃이 아닌 일정한 거리의 이웃을 이용하여 데이터의 클래스를 결정지을 수도 있다.


k-NN의 방법을 회귀에도 적용하여 사용할 수 있다. 이 경우 근접 데이터의 평균을 예측 값으로 사용하거나 거리에 반비례하는 가중치를 고려하는 평균을 예측 값으로 사용하기도 한다.


k 근접 이웃 방식은 아주 단순하고 직관적인 알고리즘이며 따라서 복잡한 데이터에 대해서도 고장없이 명확하게 작동할 수 있다. 하지만 데이터가 입력되는 시점에 주위의 데이터들을 학습하여 클래스를 결정하므로(lazy learner) 분류 속도가 매우 느리다는 단점을 가지고 있다. 또한 거리나 스케일링, k값 등 사용자가 결정해야 하는 hyperparameter에 따라 성능이 천차만별 달라질 수 있다.


앙상블 학습(Ensemble Learning)여러 가지 분류 모델의 동시에 학습시킨 후 클래스를 분류하는 데 사용하는 것이다. 각 분류기 별로 존재하는 오차들을 서로 상쇄시킬 수 있어 조금 더 안정적으로 클래스를 예측할 수 있을 것이라는 생각에서 시작되었다. 방식은 같은 학습 알고리즘으로 서로 다른 데이터를 학습하는 경우(homogeneous ensemble)서로 다른 학습 알고리즘을 사용하는 경우(heterogeneous ensemble)로 나뉘어진다. 여러 개의 분류기에 의해 예측된 클래스 값들은 majority voting이나 weighted voting을 통해 최종 예측를 산출하게 된다.


동일한 학습 알고리즘을 사용하는 경우 각 모델별로 다른 학습 데이터를 사용할 수 있도록 주어진 데이터 셋을 변형시킨다. bagging 알고리즘각 모델이 bootstrap(데이터 셋에서 복원추출 - sampling)된 데이터들을 학습하는 방식이다. 또 다른 알고리즘인 boosting 알고리즘주어진 데이터 셋에 대해 매 회마다 새로운 모델을 학습시키며 잘못 분류한 데이터에 대해 더 잘 분류할 수 있도록 가중치를 유동적으로 조절하는 알고리즘이다. 그렇게 학습된 모델들은 분류 정확도에 따라 weighted voting되어 성능이 향상된 최종 분류기를 구성하는 데 사용된다.


bagging 알고리즘을 의사 결정 트리를 앙상블시키는 데 사용하여 랜덤 포레스트(Random Forests)를 분류기를 구성할 수 있다. 랜덤 포레스트를 구성하는 의사 결정 트리를 학습시킬 때는 가지치기를 하면 안된다. 과적합이 발생하더라도 앙상블을 통해 제어할 수 있기 때문이다. 랜덤 포레스트는 majority vote를 통해 최종 분류기의 예측 결과를 도출한다. 랜덤 포레스트에서 사용하는 분류 조건이 많아질수록 개별 트리에서의 분류 성능은 좋아지지만 트리 간 연관성이 커져 앙상블의 효과가 감소한다. 따라서 validation data set을 통해 최적의 분류 조건(hyperparameter)의 개수를 찾아 내어야 한다. 랜덤 포레스트는 빠른 속도로 데이터를 분류해낼 수 있고 다양한 분류조건을 도입할 수 있다. 앙상블로 인해 과적합이 방지되는 것도 그 장점 중 하나이다.

 

728x90
반응형

'머신러닝' 카테고리의 다른 글

[머신러닝]군집화  (0) 2021.08.23
[머신러닝]비선형분류모형(하)  (0) 2021.08.23
[머신러닝]비선형분류모형(상)  (0) 2021.08.23
[머신러닝]선형분류모형(하)  (0) 2021.08.22
[머신러닝]선형분류모형(상)  (0) 2021.08.22
반응형
250x250
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
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
글 보관함