[Linear Algebra] (python) Eigenvalue, Eigenvector, PCA
6125 ワード
🧩 High Dimensional Data
📌 Eigenvalue, Eigenvector
EigenvalueとEigenvectorを人に投影して説明します.
Eigenvalueの最大の側を特定して実行します.(データの特性を反映することが望ましい.)
Eigenvectorを軸として回転するグリッドが考えられます.グリッドは私たちの立場では線かもしれないし、面かもしれない.
🏁 マイコード
import numpy as np
v = np.array([[4,2],[2,4]])
value = np.linalg.eigvals(v)
vector = np.linalg.eig(v)
print('eigenvalue=',value)
print('eigenvector=',vector)
✔️np.linalg.eigvals() numpyを利用して特徴値を求める
✔️ np.linalg.eig()
numpyを利用して特徴ベクトルを求める
📌 PCA(Principal Component Analysis)
たとえば、高レベルのデータfeature[a、b、c、d]を処理および比較するとします.
[a,b], [a,c], [a,d], [b,c], [b,d], [c,d] ...
このように,特徴が多ければ多いほど解析が困難になり,オーバーフィットが起こりやすい.
Overfitting:データを解析してパターンを抽出したいだけですが、ノイズも保存しています.
このような現象を避けるために,高次元データを正射し,主成分を縮小する方法がある.
次元を縮小するには、Eigenvalue、Eingvectorが必要です.
🏁 マイコード
import pandas as pd
from sklearn.preprocessing import StandardScaler, Normalizer
from sklearn.decomposition import PCA
print('Data= \n',features)
scaler = StandardScaler() # 다른 데이터들을 비교 가능하게 만들어줌
features = pd.DataFrame(scaler.fit_transform(features),columns=['bill_length_mm','bill_depth_mm','flipper_length_mm','body_mass_g']) # 노말라이즈된 데이터 얻음
print('\n Standardized features=', features)
pca = PCA(n_components=2) # 2차원으로 축소 PCA 실행
pc_df = pd.DataFrame(pca.fit_transform(features), columns=['PC1','PC2']) # PCA 시행하여 변환된 주성분으로 데이터 프레임 생성
ratio = pca.explained_variance_ratio_ # variance ratio
✔️ scaler = StandardScaler()なぜscaleを調整するのですか?
✔️ pca = PCA(n_components=None)
pca:主成分抽出
n components:使用する主成分を決定
Reference
この問題について([Linear Algebra] (python) Eigenvalue, Eigenvector, PCA), 我々は、より多くの情報をここで見つけました https://velog.io/@richeberry/Linear-Algebra-Eigenvalue-Eigenvector-PCAテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol