Book Title : Hands-On Machine Learning with Scikit-Learn, Keras & TF
지은이 : 오렐리아 제롱
옮긴이 : 박해선 출판사 :
한빛미디어
코드 출처
https://github.com/rickiepark/handson-ml2
8. 차원 축소
- 차원이 높아지면(설명변수가 많아짐) 반응 변수와 관련 있는 신호 변수가 아닌 관련 없는 잡음 변수가 추가될 수 있음
- 많은 특성(높은 차원)은 훈련을 느리게 할뿐만 아니라 좋은 설루션을 찾기 어렵게 하며, 이것을 차원의 저주라고 함
차원을 감소시키는 두 가지 접근법
- 투영
- 매니폴드
투영
- 대부분 실전 문제는 훈련 샘플이 모든 차원에 걸쳐 균일하게 퍼져있지 않고 많은 특성은 거의 변화가 없거나 몇몇 특성은 서로 강하게 연결되어 있음. 즉, 모든 훈련 샘플이 고차원 공간 안의 저 차원 부분 공간에 놓여 있음
- 따라서 투영 방식이란, 고차원 공간에 있는 데이터를 저차원 부분 공간에 수직으로(즉 , 샘플과 가장 가까운 거리)에 투영해서 데이터셋을 얻음.
- (이해가 안되는 경우 그냥 공간에 있는 데이터를 평면에 수직으로 떨궈서 평면 데이터?로 만드는 느낌이라고 생각할 것)
매니폴드 학습
- 매니 폴드 : 고차원 공간에서 휘어지거나 뒤틀린 ND 모양
- 매니 폴드 학습 : 많은 차원 축소 알고리즘이 훈련 샘플이 놓여있는 매니폴드를 모델링 하는 방식
- 매니 폴드 학습은 매니폴드 가정/가설에 근거함
매니 폴드 가정/가설
대부분 실제 고차원 데이터셋이 더 낮은 저차원 매니폴드에 가깝게 놓여있다
PCA
- principal component analysis
- 데이터에 가장 가까운 초평면을 정의하고 이 평면에 투영하는 방식
- pca 방법은 분산이 최대인 축을 찾고 첫 번째 축에 직교하고 남은 분산을 최대한 보존하는 두 번째 축을 찾고.. 4번째 5번째... n 번째 축응ㄹ 찾는다. 이 n번째 축을 주성분이라고 부름
분산이 최대인 축을 왜찾냐?
- 투영했을 때 정보의 손실을 최소화하기 위함
- (분산이 높을수록 축은 넓게 퍼지는데, 이것을 땅으로 비유하면 넓은 땅에(분산이 최대인 축)에 여기저기 퍼져있는 사람들을 투영했을 때 땅이 넓을수록 많은 사람이 들어올 수 있음(가능한 많은 정보를 담을 수 있음)
점진적 PCA(IPCA, Incremental PCA)
- PCA 구현의 문제는 SVD 알고리즘을 실행하기 위해 전체 훈련 세트를 메모리에 올려야 하는 것인데 이를 해결하기 위해 점진적 PCA 알고리즘이 개발됨
- 훈련 세트를 미니 배치로 나눈 뒤 IPCA알고리즘에 한 번에 하나씩 주입
- 훈련 세트가 클 때 유용하고 온라인(즉, 새로운 데이터가 준비되는 대로, 실시간으로) PCA를 적용할 수 있음
LLE(locally linear embedding)
- 지역 선형 임베딩은 강력한 비선형 차원 축소 기술임
- 먼저 각 훈련 샘플이 가장 가까운 이웃에 얼마나 선형적으로 연관되어 있는지 측정하고 그런 다음 국부적인 관계가 가장 잘 보존되는 훈련 세트의 저 차원 표현을 찾음
Random projection
랜덤 한 선형 투영을 사용해 데이터를 저 차원 공간으로 투영함
MDS(Multidimensional scaling)
- 다차원 스케일링
- 샘플 간의 거리를 보존하면서 차원 축소
Isomap
- 각 샘플을 가장 가까운 이웃과 연결하는 식으로 그래프를 만들고, 다음 샘플 간의 지오 데식 거리(geodesic distance)를 유지하면서 차원을 축소
t-SNE(t-distributed stochastic neighbor embedding)
- 비슷한 샘플은 가까이, 비슷하지 않은 샘플은 멀리 떨어지도록 하면서 차원을 축소함
- 주로 시각화에 많이 사용되며 특히 고차원 공간에 있는 샘플을 군집 시각화할 때 사용
Q. 데이터셋 차원을 축소하는 주요 목적이 뭔가? 그에 따른 단점은?
훈련 알고리즘의 속도를 높이고 데이터를 시각화하고 가장 중요한 특성에 대한 통찰을 얻기 위해 사용함.
또 메모리 공간을 절약하기 위함이지만 일부 정보를 잃어버려 훈련 알고리즘의 성능을 감소시키며 계산 비용이 높음. 그리고 변환된 데이터에 대한 이해가 어려우며 머신러닝 파이프라인 복잡도를 증가시킴
'Study > Hands-On Machine Learning' 카테고리의 다른 글
[Book] 10. 인공 신경망 소개(퍼셉트론, 헤비사이드, 헤브 규칙) (0) | 2022.05.07 |
---|---|
[Book] 9. 비지도 학습(군집) (0) | 2022.05.01 |
[Book] 7. 앙상블 학습과 랜덤 포레스트 (0) | 2022.04.24 |
[Book] 6. 결정 트리 (0) | 2022.04.23 |
[Book] 5. 서포트 벡터 머신 (0) | 2022.04.21 |