0
我想使用sklearn生成一個管道,我不知道如何去做。下面是一個小例子:分割應用程序結合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--+
我該如何去做這件事?
對於上面的例子中,我得到的錯誤是...
TypeError: float() argument must be a string or a number
是的,這是完美的!謝謝 – ssm