PCAを用いて画像データの次元圧縮をしようと試みているのですが、PCAの実装にてエラーが発生してしまいます。有識者の方のお力をお借りしたいです…!
#ライブラリをロード
from sklearn.preprocessing import StandardScaler
from sklearn.decomposition import PCA
#特徴量行列を標準化
features = StandardScaler().fit_transform(image_10.T).T
#features
array([[ 0.46972 , 0.35402542, 0.35402542, 0.35402542, 0.35402542,
0.35402542, 0.35402542, 0.35402542, 0.35402542, 0.35402542,
0.60469702, 0.9132159 , 0.9132159 , 0.9132159 , 0.9132159 ,
0.9132159 , 0.9132159 , 0.9132159 , 0.9132159 , 0.9132159 ,
0.9132159 , 0.9132159 , 0.9132159 , 0.9132159 , 0.9132159 ,
0.9132159 , 0.68182674, -2.03699594, -2.21053781, -2.22982025,
0.9132159 , 0.9132159 , 0.9132159 , 0.9132159 , 0.9132159 ,
0.9132159 , 0.68182674, -1.57421761, -1.57421761, -1.57421761,
0.68182674, 0.68182674, 0.9132159 , 0.9132159 , 0.9132159 ,
0.9132159 , 0.68182674, 0.7203916 , 0.70110917, -1.59350004,
0.66254431, 0.68182674, 0.9132159 , 0.9132159 , 0.9132159 ,
0.9132159 , 0.60469702, 0.60469702, 0.7203916 , -0.20516506,
0.45043757, 0.45043757, 0.10335383, 0.66254431, 0.62397945,
0.52756729, -0.3594245 , 0.56613215, 0.73967403, -2.05627837,
-0.30157721, -1.01502713, -0.34014207, 0.16120112, -0.39798936,
-0.47511908, -1.74775949, -0.30157721, 0.18048355, -2.09484323,
-0.66794339, -1.49708789, -0.3594245 , -1.45852303, -0.64866096,
-0.95717984, -2.48049184, -0.03162319, -1.74775949, -1.18856901,
-1.16928658, -0.14731777, -0.9957447 , -1.15000415, -0.82220283,
-1.2464163 , -0.66794339, -1.16928658, -1.40067574, -1.41995817]])
#分散を99%維持するPCAを作成
pca = PCA(n_components=0.99,whiten=True)
#PCAの実行
features_pca = pca.fit_transform(features)
#結果の表示
print("もとの特徴量数:", features.shape[1])
print("削除後の特徴量数:", features_pca.shape[1])
もとの特徴量数: 100
削除後の特徴量数: 1
#feature_pca
array([[0.]])
#エラー内容(PCA実行時に出てくるエラー文)
RuntimeWarning: invalid value encountered in true_divide
explained_variance_ = (S ** 2) / (n_samples - 1)
回答1件
あなたの回答
tips
プレビュー