python中的sklearn_python – 管道中的sklearn函数变换器

编写我的第一个sk-learn管道时,我只是遇到一些问题,只有一部分列被放入管道:

mydf = pd.DataFrame({'classLabel':[0,1,0],'categorical':[7,8,9,5,7,6,4],'numeric1':[7,'numeric2':[7,"N.A"]})

columnsNumber = ['numeric1']

XoneColumn = X[columnsNumber]

我使用functionTransformer,如:

def extractSpecificColumn(X,columns):

return X[columns]

pipeline = Pipeline([

('features',FeatureUnion([

('continuous',Pipeline([

('numeric',FunctionTransformer(columnsNumber)),('scale',StandardScaler())

]))

],n_jobs=1)),('estimator',RandomForestClassifier(n_estimators=50,criterion='entropy',n_jobs=-1))

])

cv.cross_val_score(pipeline,XoneColumn,y,cv=folds,scoring=kappaScore)

这导致:TypeError:启用函数转换器时,’list’对象不可调用.

编辑:

如果我实例化如下所示的ColumnExtractor,则不会返回错误.但是不是函数变换器只是意味着像这样的简单情况,应该只是工作吗?

class ColumnExtractor(TransformerMixin):

def __init__(self,columns):

self.columns = columns

def transform(self,X,*_):

return X[self.columns]

def fit(self,*_):

return self

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值