오늘은 PCA를 이용해서 128차원의 특성을 10차원으로 축소시켜보도록 하겠습니다. 다른 말로 하자면, 128개 특성을 10개로 줄이겠다는 뜻입니다.
PCA에 대한 이론적 설명은 이전 포스팅을 참고해주시기 바랍니다. 자세하게 설명해놓았습니다.
☞ 고유값 분해와 뗄레야 뗄 수 없는 주성분분석(PCA)
특성의 차원을 축소시키면 일반적으로 정확도는 조금 나빠집니다. 하지만 속도 면에서는 이득이 생깁니다. trade-off죠. 특성이 많을 수록 regressor나 classifier를 훈련시키고 테스트하는데 당연히 좀 더 많은 시간이 필요합니다. 따라서, PCA는 정확도보다는 속도가 중요할 때 사용하는 것이 좋습니다.
훈련셋 특성과 테스트셋 특성을 먼저 표준화해준 다음에, PCA를 적용하는 코드는 다음과 같습니다. 이미 메모리 공간 상에 train_feature 넘파이 행렬과 test_feature 넘파이 행렬이 존재한다고 가정했습니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
scaler.fit(train_feature)
train_feature_scaled = scaler.transform(train_feature)
test_feature_scaled = scaler.transform(test_feature)
from sklearn.decomposition import PCA
pca = PCA(n_components=10)
pca.fit(train_feature_scaled)
train_feature_reduced = pca.transform(train_feature_scaled)
test_feature_reduced = pca.transform(test_feature_scaled)
|
cs |
만약 20개로 축소하고 싶다면, 10번째 행을 pca = PCA(n_components = 20)으로 바꿔주시면 됩니다. 차원 축소가 잘 이뤄졌는지 확인해보도록 하겠습니다.
차원축소가 잘 이뤄졌네요.^^ 128개 였던 훈련 특성과 테스트 특성이 각각 10개로 줄어들었습니다.
b스카이비전의 추천글
☞ 정규화(normalization)와 표준화(standardization), 머신러닝 성능 향상을 위한 필수 단계
'Dev > python' 카테고리의 다른 글
[Anaconda+python] CUDA 10.0에 맞게 pytorch와 torchvision 설치하기 (0) | 2020.08.12 |
---|---|
[python] 현재 PC에 설치되어 있는 CUDA 버전 확인하기 (0) | 2020.08.12 |
[python] DISTS 파이썬 코드 실행하기(IQA_pytorch 패키지) (4) | 2020.08.10 |
[python] SSIM 파이썬 코드 실행하기(IQA_pytorch 패키지) (0) | 2020.08.10 |
[python] 소수점 넷째자리까지만 출력하고 싶다면? (0) | 2020.07.27 |
[python] 미리 훈련된 MobileNet으로 이미지 분류하기 (0) | 2020.07.26 |
[colab+python] 코랩 주석 처리 단축키 (2) | 2020.07.26 |
[colab+python] colab pro 혜택 및 구독 신청 방법 (2) | 2020.07.25 |