【发布时间】:2017-07-01 10:48:03
【问题描述】:
我正在尝试对我的 Pandas 数据框的分类变量进行 oneHotEncode,其中包括分类变量和连续变量。我意识到这可以通过 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())])
当我现在尝试适应时(“特征”是一个数据框,“目标”是一个系列),它会给出一个错误“无法将字符串转换为浮点数”。
lm.fit(features, targets)
谁能帮帮我?我迫切需要包括数据预处理在内的工作管道......提前致谢!
【问题讨论】:
标签: python scikit-learn pipeline sklearn-pandas