2016-10-27 17 views
0

私はpca分析(回帰とkmeansクラスタリング)にsklearnを使用したいと思います。私は20kの特徴、2000k行のデータセットを持っています。しかし、データセット内の各行については、フィーチャのサブセット(通常は20kのうちの5またはそれ以上のもの)のみが測定されています。未知の特徴値を持つscikit-learn PCA

sklearnが値が測定されていないインスタンスの機能を使用しないように、私のパンダdataframe/setup sklearnをどのようにパッドする必要がありますか? (たとえば、ヌルのフィーチャ値を0.0に設定すると、結果が歪むでしょうか?)

例:

X = array[:,0:n] 
Y = array[:,n] 
pca = PCA() 
fit = pca.fit(X) 

データセットは、最も特徴値のためのゼロで埋めている場合 - その後、PCAが有効になりますか?私は3つのオプションを参照してください

+1

どのような機能があり、なぜnullになるのですか?それらがテキスト文書からの用語頻度のようなものなら、それらはゼロでなくてはなりません。これはPCAにとってまだ素晴らしいシナリオです。センサーからの連続値であれば、 – maxymoo

+0

のフィーチャは、各分析タイプ(硬度、元素濃度、色など)ごとに1つの浮動小数点値からなる物理的な分析ですが、ほとんどの行ごとに一部のみが測定されます。値は帰属できません。 –

+3

井戸sklearnはnullを含むデータを扱うことができないので、あなたはそれらを使って何かをしなければなりません...あなたがそれらを測定していたらゼロにならなかったら0に設定すれば、そうです間違いなく結果を歪める。多分あなたは決定木を使ってヌル値を代入することができますか? – maxymoo

答えて

1

は、しかし、どれもあなたの問題の解決策ではありません:

1)あなたは0でNULL値を置き換え、それがdefinetlyあなたの結果を悪化させるだろう。

2)未知の値を各フィーチャの平均値または中央値に置き換えてください。このマイグレーションは優れていますが、それでも歪んだPCAが得られます。

3)最後のオプションでは、PCAを使用せず、スパースデータの次元削減テクニックを検索します。

関連する問題