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