訓練集產生的onehot編碼特徵如何在測試集、預測集復現

       數據處理中有時要用到onehot編碼,如果使用pandas自帶的get_dummies方法,訓練集產生的onehot編碼特徵會跟測試集、預測集不一樣,正確的方式是使用sklearn自帶的OneHotEncoder。

代碼

import pandas as pd
from sklearn.preprocessing import OneHotEncoder
ohe = OneHotEncoder(handle_unknown='ignore')
data_train=pd.DataFrame({'職業':['數據挖掘工程師','數據庫開發工程師','數據分析師','數據分析師'],
                 '籍貫':['福州','廈門','泉州','龍巖']})
ohe.fit(data_train)#訓練規則
feature_names=ohe.get_feature_names(data_train.columns)#獲取編碼後的特徵名
data_train_onehot=pd.DataFrame(ohe.transform(data_train).toarray(),columns=feature_names)#應用規則在訓練集上

data_new=pd.DataFrame({'職業':['數據挖掘工程師','jave工程師'],
                 '籍貫':['福州','莆田']})
data_new_onehot=pd.DataFrame(ohe.transform(data_new).toarray(),columns=feature_names)#應用規則在預測集上

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章