반응형
주성분 분석 : PCA (Principal component analysis)
- 고차원의 데이터를 저차원으로 줄이기 위해 사용된다.
- 예를 들어 시각화를 진행하려고 할 때 우리는 13차원의 데이터를 시각화할 수 없다. 따라서 해당 데이터의 차원을 줄여서 확인해야만 한다.
- 필연적으로 데이터 손실이 일어나지만 이를 최소화한다.
- 혹은 고차원에 존재하면서 생긴 노이즈를 없애면서 데이터를 정제하는 일도 가능하다.
정규화와 사이킷런 라이브러리 활용
def normalize(X):
for i in range(X.shape[1]):
X[:, i] = X[:,i] - np.min(X[:,i])
X[:, i] = X[:,i] - np.max(X[:,i])
return X
- 데이터 행렬 X를 받고 그를 정규화하여 리턴하는 함수이다.
- 각 특성치들의 단위가 많이 차이가 나면, 단위가 큰 특성치가 나머지를 가릴 확률이 높다.
- 따라서 '정규화(normalize)'를 진행하여 각 특성치의 단위를 조절하는 작업을 진행한다.
- 특성치별로 각 행의 값을 특성치 최소값으로 빼주고, 특성치 최대값으로 나눠준다.
- 각 값은 최소 0, 최대 1이 된다.
def run_PCA(X, num_components):
pca = sklearn.decomposition.PCA(n_components=num_components)
pca.fit(X)
pca_array = pca.transform(X)
return pca, pca_array
- 정규화된 데이터 행렬 X와 차원 수를 받아 최종적으로 차원 축소된 데이터를 리턴하는 함수이다.
- n_components : 환원 차원 수
- 차원 수를 가진 PCA 모델을 만들고 데이터로 해당 모델을 fitting한 뒤(모델이 현 데이터의 차원 축소에 적절하도록), 해당 모델을 사용해서 transform(실질적 변환)한다.
반응형
'🛠 기타 > Data & AI' 카테고리의 다른 글
TensorFlow 텐서 초기화 (0) | 2020.07.31 |
---|---|
[scikit-learn 라이브러리] KMeans (K-Means) (0) | 2020.07.31 |
단층 퍼셉트론 - 선택 분류 구현 (0) | 2020.07.30 |
단층 퍼셉트론 - 선택 분류 (0) | 2020.07.30 |
순환신경망 - LSTM 기초 (0) | 2020.07.29 |