python sklearn one-hot符号化

1050 ワード

  • one-hot符号化の役割
  • one-hot符号化を用いる、離散特徴の取値をヨーロッパ空間に拡張し、離散特徴のある取値はヨーロッパ空間のある点
  • に対応する.
  • 離散特徴をone−hot符号化により欧州空間にマッピングするのは,回帰,分類,クラスタリングなどの機械学習アルゴリズムにおいて,特徴間距離の計算や類似度の計算が非常に重要であるためであり,我々がよく用いる距離や類似度の計算はいずれも欧州空間での類似度計算であり,余弦類似性の計算は,欧州空間に基づいている.

  • sklearnの一例
  • from sklearn import preprocessing
    
    enc = preprocessing.OneHotEncoder()
    
    enc.fit([[0, 0, 3], [1, 1, 0], [0, 2, 1], [1, 0, 2]])
    print(enc.n_values_)//           
    
    print(enc.transform([[0,1,3]]).toarray())
    
    print(enc.transform([[0,1,1]]).toarray())

    上のコードenc.fit()には4行3列のマトリクスがあります
  • 各列は、1つのサンプルの特徴シーケンスに対応する、すなわち、1つのサンプルは、3つの特徴
  • を有する.
  • 4行は、4つのサンプル
  • が入力されたことを示す.
  • 各列の値を観察すると、第1の特徴には2つの値0,1がある.第2の特徴は3つの値0,1,2である.第3の特徴は4つの取値0,1,2,3,
  • である.
    したがって、第1の特徴のone-hot符号化は、2ビットの01列であり、第2の特徴は、3ビットの01列であり、第3の特徴は、4ビットの01列であるである.