2017-01-06 4 views
0

私は、50K行と26のフィーチャのデータセットを持っています。私は、sklearnのStandardScaler(各カラムは平均0と標準偏差1)を使用してカラムを正規化し、フィーチャセットを元の分散の~90%に減らすためにPCAを実行します。私はsklearnのKMeansアルゴリズムを実行する前に、行を正規化しています。PCAを実行した後に行単位で正規化することはできますか?

PCAを実行した後に行を正規化してはならない理由はありますか?存在する場合は、PCAが問題を引き起こす前に行を正規化します。これは、列を正規化する前または後に行う必要がありますか?

行を正規化する理由は、各行から '大きさ'または 'スキルレベル'を削除し、代わりにそれぞれのPCA削減機能間の関係を調べることです。

答えて

0

これはデータに大きく依存します。私はこれらの「スキルレベル」の数字がデータの形状にどういう影響を及ぼすのか分からないので、私は直接答えを出すことを躊躇しています。たとえば、[-1、1]の範囲外のいくつかの正規化されたスコアを持つ行を持つことは合理的ですか?これはあなたが対処しようとしている場合のようです。

1-2の範囲(+または - )にいくつかの値を含む行がたくさんあることは心配しますが、残りの項目が0に近い場合はおそらく単一の+1値を持つ行があります。 「ワンホット」の行を正規化すると、その1つの値が10より大きく拡大されます。これを外れ値としてクラスタ化するのか、またはスペースの中央領域に含めたいですか?このデータにはアウトライヤーが1つ以上の特質を持っていますか?

PCAの後に再正規化することは何も問題ありません。しかし、前と後の両方を正規化すると、大部分のデータを保持していて、重複しているように見えるものだけを削除するため、大きな変更はありません。

+0

ご意見ありがとうございます。おそらく、各行の平均を0にして標準偏差で何もしないと、製造外れが少なくなるでしょう。私はいくつかのアプローチを試して、その結果がどのようなものかを見ていきます。問題を考えていただきありがとうございます。 – Chris

+0

助けになるのはうれしいです。私に何が働いているか教えてください。私はこれからも学びたいと思います。 – Prune

+0

私は行(平均= 0、stdev = 1)を正規化しようとしました(平均= 0、stdevは変更なし)、行を正規化しませんでした。行の中心合わせは、最も有意義な結果をもたらしました。私のデータセットには、経験レベルに基づいて11のグループがあり、グループごとに最も近い重心までの距離が関心の指標でした。 WelchのT検定で、各グループ間の最も近い重心までの距離を計算しました。 1つの(ややハッピーな)評価基準は、そのようなTテストの絶対値を合計することでした。中心データtstat絶対値和は〜2,100であり、変化しないデータは〜1400であり、規範データは〜380であった。 – Chris

関連する問題