データ洗浄と特徴選択:特徴ドレインとOne Hotコード

1839 ワード

特徴的な収縮Feature Scalling
いくつかのマシン学習アルゴリズムを使用する場合、ランダム勾配降下アルゴリズムにおいて、特徴スケーリングは、アルゴリズムの収束速度を高めることがある.
特徴のズームは何ですか?
特徴スケーリングは、データの特徴を標準化するための範囲です.マシンアルゴリズムはなぜ特徴的なスケーリング特性スケーリングが必要なのか、またマシン学習アルゴリズムをよりよく動作させることができる.例えばK近隣アルゴリズムでは、分類器は主に2点間のユークリッド距離を計算し、他の特徴よりも大きな範囲値がある場合、距離はこの特徴値に支配される.したがって、各特徴は、例えば、取得範囲を0から1の間に処理するように正規化されるべきである.
特徴的なスケーリングのいくつかの方法
  • スケールを調整する方法は、データの特徴を[0,1]または[−1,1]の間にスケーリングすることである.どの範囲にズームするかはデータの性質に依存します.この方法に対する公式は以下の通りである.xは最初の固有値であり、x’はスケーリング後の値である.[][equation 2][equation 2]:http://latex.codecogs.com/svg.latex?x'=\fraac{x-min(x)}{max(x)-min(x)}
  • 標準化された特徴を標準化し、各特徴の値はゼロ平均と単位分散である.この方法は機械学習のアルゴリズムで広く用いられている.例えば、SVM、論理回帰、および神経ネットワーク.この方法の公式は以下の通りです.[][equation 3][equation 3]:http://latex.codecogs.com/svg.latex?x'=\frac{x-\bar{x}{sigma}
  • One-Hot Encoding
    One-Hot符号化は、主にビット状態レジスタを用いて各状態を符号化し、各状態は彼の独立したレジスタビットであり、任意の時には1ビットのみ有効である.実際のマシン学習のアプリケーションでは、特徴は常に連続値ではなく、性別などによっては「male」と「female」に分類される可能性があります.また、いくつかの連続しているように見える特徴は、実際には加法性を有していない.例えばコーヒーを飲む好みのタイプを統計して、「中サイズ、超大カップ」を分けます.これが連続的な特徴だと誤解したら、その特徴の平均は大きいサイズだと誤解して誤認します.
    マシン学習のタスクでは、このような特徴については、一般的に特徴的なデジタル化が必要です.例えば、以下のような3つの特徴的な属性があります.性別:[male]、[female]地域:[Europe]、[US]、[Asia]ブラウザ:[Fireterfox]、[Chrome]、[Safari]、[Internet Explorer]サンプルのようなものです.私たちはこの分類値の特徴をデジタル化し、最も直接的な方法を必要とします.しかし、このような特徴処理は直接機械学習アルゴリズムに入れることはできない.
    One-Hot Encodingの処理方法
    上記の問題に対して、性別の属性は二次元であり、同じように、地域は三次元であり、ブラウザは四次元であり、このように、One-Hotコードを採用して上記のサンプルに対して、「male」、「US」、「Internet Explorer」符号化、「male」は「1,0」、「US」に対応しています.完全な特徴デジタル化の結果は:[1,0,0,1,0,0,0,0,1]である.その結果、データは非常に少なくなります.
    実際のPythonコード
    slearnには既存のOneHot方法がありますので、直接呼び出してもいいです.本来の特徴を逐次的に符号化し、ワンタッチでOneHotを完成する.
    enc = preprocessing.OneHotEncoder()  
    enc.fit([[0,0,3],[1,1,0],[0,2,1],[1,0,2]])  
    array = enc.transform([[0,1,3]]).toarray()  
    print array