python - 如何创建一个应用 z-score 和交叉验证的 scikit-learn 管道?
问题描述
我试图在交叉验证的每一步标准化我的数据,我遇到了这个问题
按照建议,我去了 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() 的参数应该是什么?
解决方案
欢迎来到堆栈溢出!在管道中有几种使用自定义功能的方法sklearn
——我认为FunctionTransformer可以适合您的情况。
创建一个使用转换器zscore
并将转换器传递给make_pipeline
而不是直接调用的转换器zscore
。
我希望这有帮助!
推荐阅读
- node.js - 打包和解包要修补的 Electron Native 应用程序的 node_modules
- c# - 将路由和正文中的多个参数绑定到 ASP.NET Core 中的模型
- python - 如何在 Ursina Python 游戏引擎中添加延迟
- python - 如何在 Django 中更新 UserChangeForm 中的 ManytoManyField?
- python - QTableWidget setMaximumSectionSize 然后 setWordWrap
- javascript - Cordova html5 音频流在几分钟后停止
- sweave - 如何将 r-exams 问题中的小数点分隔符更改为逗号?
- c# - XML 序列化最佳实践:使模型可序列化?
- docker - 使用 Docker 和 Azure Kubernetes (AKS) 托管的 Angular 应用程序的 SSL 证书配置
- java - 在 IBM 8.0.0.5 中启动 IBM AMQP 服务时出错