Sklearn 是 Python 機器學習 ( Machine Learning ) 或資料分析中一個好用的工具,其中 OneHotEncoder 是可以將特徵扁平化的工具,配合 LabelEncoder 使用效果更好,這邊做一個簡單的用法說明教學
例如有以下資料 :
data = [ ['cat', 1], ['cat', 2], ['dog', 3], ['cat', 2], ['fish', 0] ]
第一步就是先用 LabelEncoder 將 cat,dog,fish 變成 0,1,2 來方便後續資料處理
( 別忘記先轉成 numpy array 比較好處理, ndata = np.array(data) )
# 將 cat, dog, fish 分類, 成 0, 1, 2 ndata[:, 0] = LabelEncoder().fit_transform(ndata[:, 0]) """ type array([['0', '1'], ['0', '2'], ['1', '3'], ['0', '2'], ['2', '3']], dtype='<U4') """
接下來用 enc = OneHotEncoder().fit(ndata) 來取得一個 OneHotEncoder 編碼器 ( enc )