비지도 학습 일반적 동기 : 시각화, 데이터 압축, 지도학습에 사용
pca, nmf, t=SNE
1. PCA
데이터셋을 회전시키는 기술 -> 새로운 특성 중 일부만 선택
simpleimputer 찾아보기
분산이 가장 큰 방향 찾음 즉 특성 들의 상관관계가 가장 큰 방향
pca가 가장 널리 사용되는 분야 : 고차원 데이터셋의 시각화 && 주요 상호작용을 찾아낼수 있음
1. pca 객체생성, 표준값으로 바꾸기
2. fit호출해서 주성분 찾고
3. transform으로 데이터 회전, 차원 축소
특성의 스케일이 서로 다르면 올바른 주성분 방향을 찾을 수 없으니 표준값으로 바꾸기
cancer = load_breast_cancer()
scaler = StandardScaler()
scaler.fit(cancer.data)
X_scaled = scaler.transform(cancer.data)
from sklearn.decomposition import PCA
pca = PCA(n_components=2)
X_pca = pca.fit_transform(X_scaled)
print(X_scaled.shape)
print(X_pca.shape)
pca 단점 : 그래프의 두 축을 해석하기가 어려움
주성분은 여러 특성이 조합된 형태
print(pca.components_.shape)
print()
print(pca.components_)
(2, 30)
[[ 0.21890244 0.10372458 0.22753729 0.22099499 0.14258969 0.23928535
0.25840048 0.26085376 0.13816696 0.06436335 0.20597878 0.01742803
0.21132592 0.20286964 0.01453145 0.17039345 0.15358979 0.1834174
0.04249842 0.10256832 0.22799663 0.10446933 0.23663968 0.22487053
0.12795256 0.21009588 0.22876753 0.25088597 0.12290456 0.13178394]
[-0.23385713 -0.05970609 -0.21518136 -0.23107671 0.18611302 0.15189161
0.06016536 -0.0347675 0.19034877 0.36657547 -0.10555215 0.08997968
-0.08945723 -0.15229263 0.20443045 0.2327159 0.19720728 0.13032156
0.183848 0.28009203 -0.21986638 -0.0454673 -0.19987843 -0.21935186
0.17230435 0.14359317 0.09796411 -0.00825724 0.14188335 0.27533947]]
--- np.where함수는 input차원마다 np.ndarray를 만들어 tuple형태로 return합니다. 따라서 2차원 input을 넣으면 아래와 같은 결과가 나옵니다
PCA의 whiten매개변수 -> 변환한 후에 standard scaler를 적용한 것과 같음
pca = PCA(n_components=100, whiten=True, random_state=0).fit(X_train)
X_train_pca = pca.transform(X_train)
X_test_pca = pca.transform(X_test)
inverse_transform으로 원래 특성 공간으로 되돌림
2. t-SNE 매니폴드 학습
매니폴드 학습 : 목적이 시각화라 3개 이상의 특성을 뽑는 경우가 거의 없음
새로운 데이터에는 적용 못해서 테스트 set에는 적용 불가 -> 지도학습으로는 사용안함
이웃 데이터 포인트에 대한 정보를 보존하려 노력함
t-SNE은 transform 없음
'머신러닝' 카테고리의 다른 글
| 데이터 표현과 feature engineering (0) | 2021.07.31 |
|---|---|
| clustering (0) | 2021.07.25 |
| 비지도 학습(데이터 전처리와 스케일 조정) (0) | 2021.07.22 |
| 지도학습 총정리 (0) | 2021.07.21 |
| 분류 예측의 불확실성 추정 (0) | 2021.07.21 |