Как сделать Onehotencoding в Sklearn Pipeline

Я пытаюсь oneHotEncode категориальные переменные моего блока данных Pandas, который включает как категориальные, так и продолжающиеся переменные. Я понимаю, что это можно сделать легко с помощью функции pandas .get_dummies (), но мне нужно использовать конвейер, чтобы позже сгенерировать PMML-файл.

Это код для создания картографа. Категориальные переменные, которые я хотел бы кодировать, хранятся в списке под названием «манекены».

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())]) 

Когда я сейчас пытаюсь поместиться (с «функциями», являющимися файловой рамкой, и «целями» серии), она дает ошибку «не может преобразовать строку в float».

 lm.fit(features, targets) 

Кто может мне помочь? Я отчаянно нуждаюсь в рабочих трубопроводах, включая предварительную обработку данных … Спасибо заранее!

One Solution collect form web for “Как сделать Onehotencoding в Sklearn Pipeline”

OneHotEncoder не поддерживает строковые функции, а с [(d, OneHotEncoder()) for d in dummies] вы применяете его ко всем столбцам манекенов. LabelBinarizer этого используйте LabelBinarizer :

 mapper = DataFrameMapper( [(d, LabelBinarizer()) for d in dummies] ) 

Альтернативой может быть использование LabelEncoder со вторым шагом OneHotEncoder .

 mapper = DataFrameMapper( [(d, LabelEncoder()) for d in dummies] ) lm = PMMLPipeline([("mapper", mapper), ("onehot" OnehotEncoder()), ("regressor", LinearRegression())]) 
  • Деревья регрессии или регресстор случайного леса с категориальными входами
  • Как вы инициализируете переменную gensim corpus с помощью csr_matrix?
  • sklearn TimeSeriesSplit cross_val_predict работает только для разделов
  • Как настроить итератор перекрестной проверки подлинности sklearn по индексам?
  • Текст Классификация с множеством выходов
  • Извлечение атрибутов из изображений с помощью Scikit-image
  • Использовать метрику после классификатора в конвейере
  • sklearn "numpy.dtype имеет неправильный размер, попробуйте перекомпилировать" как в pycharm, так и в терминале
  • Выбор функции с помощью scikit-learn
  • Как передать параметр функции Scikit-Learn Keras
  • Трубопровод Scikit-Learn's: решена малая матрица, но требуются плотные данные
  • Python - лучший язык программирования в мире.