-
Python(파이썬) - 공분산행렬, 고유치 구하기(PCA 모듈 & 선형대수(np.linalg 모듈)), StandardScaler로 정규화하기, np.cumsum프로그래밍 언어/Python 2020. 12. 2. 14:44
# 예시 데이터셋 & Import Module
# 데이터셋 정규화(Normalization)
※ 정규화란?
서로 다른 스케일(크기)를 가진 벡터(attribute, 위의 예시에서는 칼럼)들을
적절히 매만져주어 모든 벡터(feature)들이 같은 스케일선상에서 비교가능하게 만드는 것
※ StandardScaler
서로 다른 스케일(크기)를 가진 벡터(attribute, 위의 예시에서는 칼럼)들을
평균을 0, 분산을 1로 변경하여, 모든 벡터(feature)들이 같은 스케일선상에서 비교가능하게 만드는 것
※ 스케일러의 종류
StandardScaler, RobustScaler, MinMaxScaler, Normalizer
스케일러의 종류에 따라 스케일의 기준이 다르므로 한번 찾아보는 것을 추천
정규화 된 데이터들
# 고유값과 고유벡터 구하기 (with linalg, PCA module)
※ 참고
PCA는 차원축소기법이며, 효과적인 차원축소를 위해
고유치가 작은값을 제거하며 변환행렬을 만든다.
※ 참고
np.cov는 공분산을 구하는 함수이며,
고유치와 고유벡터를 구하기 위해선 공분산행렬(정방행렬)이 필요하다.
※ 참고
출력값을 들여다보면,
각 고유치가 대응되는 고유벡터는 열벡터라는 것을 알 수 있다.
# np.cumsum
※ 참고
PCA모듈의 explained_variance_ratio는
고유치(설명가능한 분산)의 비율을 내림차순으로 정렬한 값을 리턴한다.
728x90'프로그래밍 언어 > Python' 카테고리의 다른 글
Pandas - 조건에 따라 각각 다른 값 넣기, 서로다른 데이터프레임 Key 기준으로 Merge(Join) 하기, 특정 index에 접근하여 값 바꾸기 (0) 2021.01.11 Pandas - 조건에 맞는 컬럼 값 여러개 바꾸기 (4) 2020.12.24 파이썬 - 언더스코어 ( _ ) : Underscore (0) 2020.12.17 Python(파이썬) - 누적합(Cumulative Sum) 구하기, 상삼각행렬, 하삼각행렬 만들기 (0) 2020.12.02 Python - Vectorization of an Image(2D), 이미지 벡터화 하기 (0) 2020.10.16