오늘은 "차원의 저주(The Curse of Dimensionality)"에 대해 정리해보는 시간을 갖도록 하겠다.
그래서 차원의 저주가 뭔데?!
차원의 저주를 대표할 수 있는 하나의 사자성어가 있는데, 바로 "과유불급"이다. 결론부터 말하면 차원의 저주란 데이터 용량이 커질수록 불필요한 샘플이 많아지는 현상을 뜻한다. (참고로 "차원의 증가 = 변수의 개수 증가"라고 이해를 하면 쉽다)
차원의 저주와 관련하여 구글에 검색해보면 가장 상위에 뜨는 블로그가 하나 있는데, 이 블로그의 관리자 분께서 정말 이해하기 쉽도록 설명을 해두셨다. 그리고 K-NN 방법이 왜 차원의 저주 문제에 치명적인지도 명확하게 설명이 되어 있으니, 아래의 링크를 참고하면 좋을 것 같다.
https://datapedia.tistory.com/15
[빅데이터] 차원의 저주(The curse of dimensionality)
차원의 저주란, *데이터 학습을 위해 차원이 증가하면서 학습데이터 수가 차원의 수보다 적어져 성능이 저하되는 현상. *차원이 증가할 수록 개별 차원 내 학습할 데이터 수가 적어지는(sparse) 현
datapedia.tistory.com
그래도 잘 이해가 가지 않는다면, 1개월 간 강수량을 예측하는 모델을 개발한다고 가정해보자!
이 예측 모델을 만들기 위해 "기온, 습도, 인구, 교통량, 콘서트 개최 횟수, ..." 와 같은 다양한 데이터를 수집할 것이다. 그런데 과연 이렇게 수집한 모든 변수들이 강수량 예측과 관련이 있을까? 당연히 그렇지 않을 것이다. 그럼에도 불구하고 이처럼 많은 변수들을 모두 예측 모델에 넣는다면, 시간도 굉장히 오래 걸릴 뿐더러 모델의 예측 성능 또한 낮아질 것이다.
해결할 방법은 없나?!
당연히 차원의 저주를 해결할 수 있는 방법들이 있다. 가장 대표적인 방법이 바로 "Feature Selection" 과 "Feature Extraction" 이다. 이 두 가지 방법을 간략하게 설명하면 아래와 같다.
우선 "Feature Selection" 은 우리가 예측하고자 하는 타겟(ex. 강수량) 변수와 관련이 높은 변수들을 추려내는 방법이다. 이처럼 불필요한 변수들은 쳐냄으로써 모델의 학습 시간을 줄이고 성능 또한 높일 수 있을 것이다.
반면, "Feature Extraction" 은 데이터의 특성을 가장 잘 표현하는 "주성분"을 추출해 데이터 양을 줄이는 방법이며, 이에 사용하는 대표적인 방법이 바로 "주성분 분석(PCA)" 이다. 말이 조금 어렵지만... 쉽게 말해 차원을 축소시켜 주는 방법이라고 이해하면 되겠다.
여기까지 해서 차원의 저주에 대해 정리해 보았다. 너무 오랜만에 공부한 내용을 정리하다 보니, 내용이 조금 장황한데... 앞으로 포스팅할 내용들은 조금 더 잘 다듬어서 설명해 보도록 하겠다!
'Data Science > Statistics' 카테고리의 다른 글
가능도(Likelihood) (0) | 2022.01.23 |
---|