Я пытаюсь oneHotEncode категориальные переменные моего блока данных Pandas, который включает как категориальные, так и продолжающиеся переменные. Я понимаю, что это можно сделать легко с помощью функции pandas .get_dummies(), но мне нужно использовать конвейер, чтобы позже сгенерировать PMML-файл.Как сделать Onehotencoding в Sklearn Pipeline
Это код для создания картографа. Категориальные переменные, которые я хотел бы кодировать, хранятся в списке под названием «манекены».
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())])
Когда я теперь стараюсь соответствовать (с «особенностями» будучи dataframe, и «цели» серии), он дает ошибку "не удалось преобразовать строку плавать.
lm.fit(features, targets)
Любой, кто может мне помочь? Я отчаянно нуждаюсь в рабочих трубопроводах, включая предварительную обработку данных ... Спасибо заранее!
Большое спасибо, лейбл-бинаризатор работает для меня. Я действительно думаю, что теперь я сохраняю только категориальные функции, которые я кодировал одним образом. Есть ли способ включить оригинальные непрерывные функции? –
Да, перечислите их в «DataFrameMapper» с помощью «None» в качестве трансформатора. – dukebody