
MS AI SCHOOL 을 시작한지 두 달째가 되어가고 진짜 너무 너무 어렵다
아마 비전공자도 개발자 가능하다의 비전공자는 공대나 수학통계 친구들 아닐까
하지만 어쩌겠어요. 시작했으니 최선을 다해봐야지.
할 수 있는데까지 열심히 달려보고 안되면 그 때 생각하자.
주성분 분석(Principal Component Analysis, PCA)
고차원의 데이터를 저차원의 데이터로 축소시키는 선형 차원 축소 방법
데이터의 분산을 유지하면서 피쳐의 수를 2개로 줄임
목표 벡터의 정보를 사용하지 않고 특성 행렬만 이용
1. 필요한 라이브러리 불러오기:
sklearn.preprocessing : 데이터 전처리와 관련된 다양한 기능
sklearn.decomposition : 차원 축소와 관련된 다양한 기능
from sklearn.preprocessing import StandardScaler
from sklearn.decomposition import PCA
from sklearn import datasets
2. 데이터 셋 불러오기 + 표준화
- 데이터 셋을 불러와서 평균이 0, 표준편차가 1로 만들어 표준화 합니다.
- 이렇게 해야 PCA 적용 시 각 차원의 스케일이 비슷해지게 됩니다.
(ex. 소득 데이터와 시력 데이터는 스케일이 달라서 표준화 하지 않으면 소득 데이터를 더 중요한 데이터로 인식할 수 있음. 표준화를 통해 스케이리 표준화)
digits = datasets.load_digits()
features = StandardScaler().fit_transform(digits.data)
3. PCA 설정 및 적용
- n_components = 0.99 : 주 성분들이 원본 데이터 분산의 99%를 유지
n_components 값이 작을수록 차원이 더 많이 줄어들며, 값이 크면 더 많은 주성분을 유지
- whiten=True
데이터를 백색화(whitening) - 주성분들 간의 상관 관계를 없애주어 데이터의 특성들을 서로 독립적으로 만듦
입력 데이터의 분포를 평균 0, 분산 1로, 데이터의 특성을 더 균일하게 만들어줌
pca = PCA(n_components=0.99, whiten=True)
feature_pca = pca.fit_transform(features)
4. 출력과 비교
print(f"원본 특성 개수: {features.shape[1]}")
print(f"줄어든 특성 개수: {feature_pca.shape[1]}")
'AI SCHOOL' 카테고리의 다른 글
[YOLO X 공부] 논문 리뷰 (2) (1) | 2023.10.26 |
---|---|
[YOLO X 공부] 논문 리뷰 (1) (1) | 2023.10.26 |
[Python] 문자열 속에서 단어 찾기 (0) | 2023.08.09 |
[Python] 문자열을 거꾸로 출력하기 (0) | 2023.08.08 |
[Python] 자료구조 list 메서드 (0) | 2023.07.06 |