- from sklearn.preprocessing import OneHotEncoder,LabelBinarizer,LabelEncoder
 
 - import pandas as pd
 
 - import numpy as np
 
 - X1=['XL','M','L']
 
 - print(X1.__class__)
 
 - X2=pd.DataFrame(X1)
 
 - print(X2)
 
 - print('OneHotEncoder')
 
 - lb1=OneHotEncoder().fit_transform(X2).toarray()
 
 - print(lb1)
 
 - print('LabelBinarizer1')
 
 - lb2=LabelBinarizer().fit_transform(X1)
 
 - print(lb2)
 
 - print(lb2.__class__)
 
 - print('LabelBinarizer2')
 
 - lb2=LabelBinarizer().fit_transform(X2)
 
 - print(lb2)
 
 - print(lb2.__class__)
 
 - print('LabelEncoder1')
 
 - lb3=LabelEncoder().fit_transform(X1)
 
 - print(lb3)
 
 - print('LabelEncoder2')
 
 - lb3=LabelEncoder().fit_transform(X2)
 
 - print(lb3)
 
 
  複製代碼 X1 = ['XL', 'M', 'L'] 
X2 =  
  0  
0 XL  
1 M  
2 L 
1.必須以column為單位 
2.依據資料不同會產生多個column 
3.每一個內容與原點的距離相同  OneHotEncoder =  
[[0. 0. 1.]  
[0. 1. 0.]  
[1. 0. 0.]] 
XL  M  L 
 
1.可用row或著column為單位 
2.不支援多個column的資料 
3.每一個內容與原點的距離相同  LabelBinarizer1 =  
[[0 0 1]  
[0 1 0]  
[1 0 0]] 
XL M L 
1.可用row或著column為單位 
2.不支援多個column的資料 
3.依據資料編碼進行轉換,不會設定為固定距離  LabelEncoder1= 
 [2 1 0] 
XL M L 
多個column的資料-->只有OneHotEncoder可以做編碼轉換 - from sklearn.preprocessing import OneHotEncoder,LabelBinarizer,LabelEncoder
 
 - X1=[['US','M'],['UK','M'],['FR','F']]
 
 - print(X1)
 
 - lb1=OneHotEncoder().fit_transform(X1).toarray()
 
 - print(lb1)
 
 - #lb2=LabelBinarizer().fit_transform(X1)
 
 - #print(lb2)
 
 - #lb3=LabelEncoder().fit_transform(X1)
 
 - #print(lb3)
 
 
  複製代碼 
字串轉換,OneHotEncoder,LabelBinarizer,LabelEncoder 
 
 
字串轉換,OneHotEncoder,LabelBinarizer,LabelEncoder 
 
 
字串轉換,OneHotEncoder,LabelBinarizer,LabelEncoder 
 
 
 
多種編碼轉換方式的選擇 
• 不會產生新的欄位(數值不會與原點同距離) 
  • LabelEncoder 轉換後的資料不會產生新的欄位,他的數值不會與原點同距離,當資料的項目 >=3,數值資料就會有大小區別可能引導模型進行大小的判斷,不建議使用LabelEncoder。 
• 產生新欄位(數值與原點同距離), 
  • 請留意以row或column方式操作 
    • 如果資料以row方式操作,無法使用OneHotEncoder進行轉換。 
    • 如果資料是多個columns操作,無法使用LabelBinarizer進行轉換。  
OneHotEncoder的參數 
• ( )內可以省略,或著建議加入categories='auto' 
• ( )內也可以指定欄位,建議交由語法自己決定。 
• 編碼執行方式可分為兩種  1.循序漸進的方式  
1.1 先產生OneHot物件  
1.2 物件再執行訓練與轉換特定欄位內容維陣列  
 
 
one1=OneHotEncoder( )  
X2=one1.fit_transform(Sex1).toarray( ) 
 |