機器學習_ML_LabelEncoder
說明
官方文件在另篇中我們說明了插補,資料插補完了以後,要面對的第二個問題就是文字特徵,甚至我們的類別都有可能是文字,怎麼辦?
這時候我們要透過編碼轉置,將文字轉成數值,讓我們往下看sklearn怎麼幫我們做到這一點。
IMPORT
from sklearn.preprocessing import LabelEncoder
CLASS
class sklearn.preprocessing.LabelEncoder(array)
方法
fit
擬合transform
轉換fit_transform
擬合+轉換inverse_transform
還原範例
資料集如下:類別 | 身高 | 體重 | 性別 | 年紀 |
---|---|---|---|---|
胖 | 175 | 70 | 男 | 35 |
瘦 | 160 | 50 | 女 | 31 |
瘦 | 175 | 男 | 27 | |
胖 | 180 | 80 | 女 | |
胖 | 180 | 100 | 男 | 18 |
# 載入需求lib
import numpy as np
import pandas as pd
# 標籤轉換套件
from sklearn.preprocessing import LabelEncoder
# 手動寫入資料集,資料假裝透過插補完成了
ds = [
('胖',175,70,'男',35),
('瘦',160,50,'女',31),
('瘦',175,75,'男',27),
('胖',180,80,'女',27.5),
('胖',180,100,'男',18)]
columns = ['label','high','weight','sex','years']
# 假裝一下資料載入pandas,比較有fu
df = pd.DataFrame.from_records(ds,columns=columns)
# 確認資料是否載入pandas
df
# 資料拆分
X = df.iloc[:,1:].values
y = df.iloc[:,0].values
# 確認y的狀態
y
>>>array(['胖', '瘦', '瘦', '胖', '胖'], dtype=object)
# 標籤轉換
labelencoder = LabelEncoder()
y = labelencoder.fit_transform(y)
# 確認目標類別轉換狀況
y
>>>array([1, 0, 0, 1, 1], dtype=int64)
# 嚐試還原
labelencoder.inverse_transform(y)
>>>array(['胖', '瘦', '瘦', '胖', '胖'], dtype=object)
沒有留言:
張貼留言