我正在尝试对Pandas数据框中的分类变量进行One-Hot编码。该数据框包括分类和连续变量。我意识到可以使用Pandas的.get_dummies()函数轻松完成此操作,但我需要使用管道以便稍后生成PMML文件。
以下是创建映射器的代码。我想要编码的分类变量存储在名为“dummies”的列表中。
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())])
现在当我尝试拟合(使用“features”作为数据框和“targets”作为序列),它会报错“无法将字符串转换为浮点数”。
lm.fit(features, targets)
DataFrameMapper
中用None
作为转换器将它们列出来。 - dukebody