Notice
Recent Posts
Today
Total
«   2024/07   »
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
관리 메뉴

나름개발블로그

Hands-On ML 8장 본문

A/ML

Hands-On ML 8장

성남개발자 2020. 9. 16. 15:29

차원의 저주

차원 축소를 위한 접근 방법

투영

매니폴드 학습

PCA

주성분 분석 (principal component analysis) 가장 인기 있는 차원 축소 알고리즘

데이터에 가장 가까운 초평면을 정의한 다음 , 데이터를 이 평면에 투영시킴

분산보존

분산이 최대로 보존되는 축으로 투영

주성분

i번째 축을 데이터의 i 번째 주성분이라고 한다.

SVD(특잇값 분해) 라는 표준 행렬 분해 기술이 있어서 찾을 수 있다.

d차원으로 투영하기

Xd-proj=XWdX_\text{d-proj} = XW_d

sklearn 사용하기

from sklearn.decomposition import PCA

pca = PCA(n_components =2)
X2D = pca.fit_transform(X)

PCA 모델은 자동으로 데이터를 중앙에 맞춘다.

PCA 변환기를 데이터세에 학습시키고나면 components_ 속성WdW_d의 전치가 담겨 잇다.

설명된 분산의 비율

explained_variance_ratio_ 변수에 설명된 분산의 비율은 중요한 정보이다.

적절한 차원 수 선택하기

pca = PCA()
pca.fit(X_train)
cusum = np.cumsum(pca.explained_variance_ratio_)
d = np.argmax(cumsum >= 0.95) +1

pca = PCA(n_componets=d)
X_reduced = pca.fit_transform(X_train)

압축을 위한 PCA

pca = PCA(n_components=154)
X_reduced = pca.fit_transform(X_train)
X_recovered = pca.inverse_transform(X_reduced)

랜덤 PCA

svd_solver="randomized" 로 지정하면됨.

기본값은 "auto" 이고 SVD 방식을 강제하려면 "full" 로 지정하면 된다.

d 가 n 보다 많이 작으면 완전 SVD 보다 훨씬 빠르다 .

점진적 PCA

PCA 알고리즘에 문제는 전체 훈련 셋을 메모리에 올려야 한다는 것이였다

훈련세트를 미니배치로 나눈뒤 IPCA(점진적PCA)에 하나씩 주입!

커널 PCA

고차원 특성 공간에서의 선형 결정 경계는 원본 공간ㅇ에서 복잡한 비선형 결정 경계에 해당함.

커널 선택과 하이퍼파라미터 튜닝

kPCA(커널 PCA)는 비지도 학습이기 때문에 좋은 커널과 하이퍼파라미터를 선택하기위한 명확한 성능 측정 기준이없다.

그리드 탐색을 사용하여 성능이 가장좋은 커널과 ,하이퍼파라미터를 선택 할 수도 있다.

LLE

지역 선형 임베딩(locally linear embedding) 은 강력한 비선형 차원축소 기술이다.

투영에 의존하지 않는 매니폴드 학습이다.

 

이번챕터는 잘 안들어온다.

 

'A > ML' 카테고리의 다른 글

Hands-On ML 10장  (0) 2020.09.22
Hands-On ML 9장  (0) 2020.09.21
Hands-On ML 7장  (0) 2020.09.15
Hands-On ML 6장  (0) 2020.09.14
Hands-On ML 5장  (0) 2020.09.13
Comments