学習出典:こちらをクリックして壁紙
テキスト属性データがある場合には、機械学習アルゴリズムは、今回のデジタルテキスト属性に変換する必要があり、ハンドルテキスト属性に容易ではありません。変換、属性間の配列の関係は、例えば:(冷たい、暖かい、熱)をコードする整数に直接使用することができる場合;しかし、属性間のシーケンス関係、例えば:()、赤、緑、青が存在しない場合には、熱のみを使用することができますコーディング。
ホットは、符号化:符号化された属性は、属性の残りの値は、1であり、0
まず、人工的なワンホットエンコーディング
numpyのimprot ARGMAX データ = ' Hello Worldの' アルファベット = ' abcdefghigklmnopqrstuvwxyz ' char_to_int = dictの((C、I)のための I、C で列挙(アルファベット)) int_to_char = dictの((I、C)のための I、C で列挙(アルファベット)) #整数编码 integer_encoded = [char_to_int [CHAR] のためのチャーでデータ】 プリント(integer_encoded) #独热编码 OneHot_Encoder = リスト() のための I にinteger_encoded: レター = [0 ため _ 中範囲(LEN(アルファベット))] レター[I] = 1。 OneHot_Encoder.append(文字) 印刷(OneHot_Encoder) #はホット符号化からデータを回復 倒立= int_to_char [ARGMAX(OneHot_Encoder [0] )] 印刷(反転)
#output:
二、Scikit-学びホットエンコード
numpyのインポートARGMAX から numpyのインポート配列 から sklearn.preprocessing インポートLabelEncoder から sklearn.preprocessing インポートOneHotEncoder #编码整数 データ=配列([ ' 冷たい'、' 冷たい'、' 暖かい'、' 暑い'、' 暖かい'、「コールド「」ホット「」熱いです' ' 暖かい' ' 冷' ]) label_encoder = LabelEncoder() label_encoded = label_encoder.fit_transform(データ) の印刷(label_encoded) #独热编码 onehot_encoder = OneHotEncoder(カテゴリ= ' 自動' ) onehot_encoded = onehot_encoder.fit_transform(label_encoded。変形(-1、1 )) onehot = onehot_encoded.toarray() プリント(onehot) #恢复编码 状態= label_encoder.inverse_transform([ARGMAX(onehot [0:])]) 印刷(状態)
#output: