1
非常に大きな行列にsklearn.decomposition.TruncatedSVDを適用します。行列が特定のサイズ(たとえば350k×25k)を超えると、svd.fit(x)にRAMが不足します。sklearn.decomposition.TruncatedSVDを部分的にマトリックスに適用できますか?
私はsvdを特徴行列に適用します。各行は、単一の画像から抽出された一連の特徴を表します。
メモリの問題を回避するには、svdをマトリックスの一部に適用してから連結しても安全ですか?
結果は同じですか?すなわち:
from sklearn.decomposition import TruncatedSVD
svd = TruncatedSVD(n_components=128)
part_1 = svd.fit_transform(features[0:100000, :])
part_2 = svd.fit_transform(features[100000:, :])
svd_features = np.concatenate((part_1, part_2), axis=0)
...と等価(?):
from sklearn.decomposition import TruncatedSVD
svd = TruncatedSVD(n_components=128)
svd_features = svd.fit_transform(svd_features)
ない場合は、非常に大きな行列の薄暗い削減のための回避策はありますか?結果は同じではないであろう
ありがとうございます。回避策はありますか? –
@ChrisParryここに関連するものがあるかどうか確認することができます:http://stackoverflow.com/questions/20450051/performing-pca-on-a-large-dataset –
ありがとう、私は "arpack" algoを試しています、私は "無作為化"はメモリの制限内で動作するかもしれないと思う。 –