4
我在嘗試oneHot對我的Pandas數據框的分類變量進行編碼,其中包括分類變量和連續變量。我意識到這可以通過使用熊貓.get_dummies()函數輕鬆完成,但我需要使用管道,以便稍後可以生成PMML文件。如何在Sklearn管道中執行Onehotencoding
這是創建映射器的代碼。我想編碼的分類變量存儲在名爲「傻瓜」的列表中。
from sklearn_pandas import DataFrameMapper
from sklearn.preprocessing import OneHotEncoder
from sklearn.preprocessing import LabelEncoder
mapper = DataFrameMapper(
[(d, LabelEncoder()) for d in dummies] +
[(d, OneHotEncoder()) for d in dummies]
)
而這是創建一個管道,包括映射器和線性迴歸的代碼。
from sklearn2pmml import PMMLPipeline
from sklearn.linear_model import LinearRegression
lm = PMMLPipeline([("mapper", mapper),
("regressor", LinearRegression())])
當我現在儘量合身(與「功能」是一個數據幀,而「目標」系列),它提供了一個錯誤「無法字符串轉換爲浮動」。
lm.fit(features, targets)
任何人誰可以幫我嗎?我非常渴望工作管道,包括數據的預處理......預先感謝!
非常感謝你,labelbinarizer爲我工作。我確實認爲,我現在只保留我單獨編碼的分類特徵。有沒有辦法包含原始連續功能? –
是的,在'DataFrameMapper'中用'None'作爲變換器列出它們。 – dukebody