2017-05-02 16 views
0

私は非常にPCAを初めて使っています。 モデルには11個のX変数があります。これらはXの変数ラベルですPCA説明分散分析

x = ['Day','Month', 'Year', 'Rolling Average','Holiday Effect', 'Day of the Week', 'Week of the Year', 'Weekend Effect', 'Last Day of the Month', "Quarter" ] 

これは説明した分散から生成したグラフです。 x軸が主成分である。 enter image description here

[ 3.47567089e-01 1.72406623e-01 1.68663799e-01 8.86739892e-02 
    4.06427375e-02 2.75054035e-02 2.26578769e-02 5.72892368e-03 
    2.49272688e-03 6.37160140e-05] 

私は機能の良い選択をしているかどうかを知る必要があります。どのような特徴の寄与が最も多いかをどのように知ることができますか?

from sklearn import decomposition 
pca = decomposition.PCA() 
pca.fit(X_norm) 
scores = pca.explained_variance_ 
+0

PCAのポイントは、データの差異を説明するための新しい機能を開発することです。新しく派生したコンポーネントに貢献している機能がどれか分かっていれば、それらの間の相関を計算できます。あなたのチャートを見れば、データのばらつきはほとんどないので、私は主成分8-10を削除します。 – flyingmeatball

+0

PC 8-10を落とすのはどういうものか分かりませんか? –

+0

x軸の最後の3つの値。それらは説明された分散の値が非常に低く、削除することができます。 –

答えて

0

私はデータセットを知らないけど、私はあなたが(分散が軸に沿って最大化されます)PCAを使用する前に、あなたの機能を拡張することをお勧めします。私はX_normがあなたのコードのそれを参照すると思います。

PCAを使用することで、次元を減らすことを目標にしています。これを行うために、あなたのケースのすべてのX変数を含むフィーチャスペースから始め、通常は異なるフィーチャ(サブ)スペースであるそのスペースの投影を終了します。

実際には、フィーチャ間の相関がある場合、PCAを使用して、その相関を小さな次元に投影するのに役立ちます。

私は机の上に点がいっぱいの紙を持っていれば、そのデータセットを表すのに3次元が必要ですか?おそらくそうではありません。すべての点が紙面上にあり、2D空間で表現できるからです。

新しい機能空間から使用する主成分の数を決定しようとする場合、説明された分散を見ることができ、主成分ごとにどのくらいの情報があるかがわかります。

データの主成分を見ると、分散の〜85%が最初の6つの主成分に起因する可能性があります。

n_componentsを設定することもできます。たとえば、n_components = 2を使用すると、変換されたデータセットには2つの機能があります。

関連する問題