如何创建应用z分数和交叉验证的scikit学习管道?

时间:2020-05-18 13:32:52

标签: python scikit-learn data-science pipeline cross-validation

我正在尝试在交叉验证的每一步对数据进行规范化处理,并且遇到了question

按照建议,我去了scikit-learn文档并找到了这个例子:

from sklearn.pipeline import make_pipeline
clf = make_pipeline(preprocessing.StandardScaler(), svm.SVC(C=1))
cross_val_score(clf, X, y, cv=cv)

这确实看起来像我想要实现的目标,但是,我的意图是使用z-scorer而不是StandardScaler,因此我尝试了此操作:

clf = make_pipeline(stats.zscore(), DecisionTreeClassifier())

但是我听到这样的错误:

TypeError: zscore() missing 1 required positional argument: 'a'

zscore()的参数应该是什么?

1 个答案:

答案 0 :(得分:0)

欢迎堆栈溢出!在sklearn管道中有多种使用自定义功能的方法-我认为FunctionTransformer可能适合您的情况。

创建一个使用zscore的转换器,然后将该转换器传递到make_pipeline而不是直接调用zscore

我希望这会有所帮助!