snoohey 2018. 8. 20. 22:06

1. 데이터를 같은 범위로 rescaling한다.

<사용 라이브러리>

- from sklearn.preprocessing import StandardScaler

  x_std = StandardScaler().fit_transform(X)

  

2 데이터의 상관행렬을 구한다.

<사용 라이브러리>

- import numpy as np

  features = x_std.T 

  covariance_matrix = np.cov(features)


3. 고유벡터와 고유값을 구해서 가장큰 고유값을 가진 고유벡터를 구한다.

<사용 함수>

eig_vals, eig_vecs = np.linalg.eig(covariance_matrix)

(이 고유벡터를 사용했을때의 데이터 유실정도)

eig_vals[0] / sum(eig_vals)


4. 현재 x값을 eig_vecs에 정사영 시킨다.

projected_X = x_std.dot(eig_vecs.T[0])