私はPandasデータフレームのカテゴリ変数にoneHotEncodeを割り当てようとしています。これには、カテゴリ変数と継続変数の両方が含まれます。これはpandas .get_dummies()関数で簡単に行うことができますが、後でPMMLファイルを生成できるようにパイプラインを使用する必要があります。SklearnパイプラインでOnehotencodingを行う方法
これは、マッパーを作成するためのコードです。私がエンコードしたいカテゴリー変数は、「ダミー」というリストに格納されています。
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)
誰かが私を助けることができますか?私はデータの前処理を含むパイプラインの作業には絶望的です...事前に感謝!
大変ありがとうございます。labelbinarizerは私にはうってつけです。私は今、私は単眼でエンコードされたカテゴリー的な特徴だけを保存していると思います。オリジナルの連続機能も含める方法はありますか? –
はい、それらを 'DataFrameMapper'に' None'をトランスフォーマとして列挙してください。 – dukebody