как трансформатор.
аюсь однозначно кодировать категориальные переменные моего фрейма данных 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())])
Когда я сейчас пытаюсь соответствовать (с «функциями», являющимися информационным фреймом, и «целевыми» сериями), это выдает ошибку «не удалось преобразовать строку в число с плавающей точкой».
lm.fit(features, targets)
Кто-нибудь, кто может мне помочь? Я отчаянно нуждаюсь в работе конвейеров, включая предварительную обработку данных ... Заранее спасибо!