0
私はsklearnを使ってパイプラインを生成しようとしています。ここで、最小の例である:上記の例でsplit-apply-sklearnパイプラインへの結合
def numFeat(data):
return data[['AGE', 'WASTGIRF']]
def catFeat(data):
return pd.get_dummies(data[['PAI', 'smokenow1']])
features = FeatureUnion([('f1',FunctionTransformer(numFeat)),
('f2',FunctionTransformer(catFeat)) ])
pipeline = Pipeline([('f', features), ('lm',LinearRegression())])
data = pd.DataFrame({'AGE':[1,2,3,4],
'WASTGIRF': [23,5,43,1],
'PAI':['a','b','a','d'],
'smokenow1': ["lots", "some", "none", "some"]})
pipeline.fit(data, y)
print pipeline.transform(data)
、data
は、とりわけ、カラム['AGE', 'WASTGIRF', 'PAI', 'smokenow1']
が含まパンダのデータフレームです。
もちろん、FeatureUnion
の例では、さらに多くの変換操作を提供したいと思いますが、すべてがPandas DataFrameを使用して別のPandas DataFrameを返します。だから、実際には、私が
data --+-->num features-->num transforms--+-->FeatureUnion-->model
| |
+-->cat features-->cat transforms--+
がどのように私はこれをやって行くのです...このような何かをしたいですか?
上記の例では、私が手にエラーがあなたが(IMOこれを変更する必要があります悪いデフォルトです)validate=False
でFunctionTransformer
を初期化する必要があります...
TypeError: float() argument must be a string or a number
はい、これは完璧です!ありがとうございました – ssm