cpe*_*che 9 python scikit-learn cross-validation grid-search
我是 scikit 的新手,在结合数据比例和网格搜索方面有两个小问题。
考虑使用 Kfolds 进行交叉验证,我希望每次我们在 K-1 折叠上训练模型时,数据缩放器(例如使用 preprocessing.StandardScaler())仅适用于 K-1 折叠,然后应用于剩下的折叠。
我的印象是以下代码将适合整个数据集上的缩放器,因此我想修改它以使其按照先前描述的方式运行:
classifier = svm.SVC(C=1)
clf = make_pipeline(preprocessing.StandardScaler(), classifier)
tuned_parameters = [{'C': [1, 10, 100, 1000]}]
my_grid_search = GridSearchCV(clf, tuned_parameters, cv=5)
Run Code Online (Sandbox Code Playgroud)
当 refit=True 时,“在”网格搜索之后,在整个数据集上重新拟合模型(使用最佳估计器),我的理解是将再次使用管道,因此缩放器将适合整个数据集。理想情况下,我想重用它来扩展我的“测试”数据集。有没有办法直接从 GridSearchCV 中检索它?
尝试这个:
best_pipeline = my_grid_search.best_estimator_
best_scaler = best_pipeline["standartscaler"]
如果您将变压器/估计器包装到管道中 - 您必须在每个参数的名称中添加前缀,例如:,tuned_parameters = [{'svc__C': [1, 10, 100, 1000]}]请查看这些示例以获取更多详细信息连接多个特征提取方法,管道:链接PCA和逻辑回归
不管怎样,读一下这篇文章,它可能会对你有所帮助
| 归档时间: |
|
| 查看次数: |
3323 次 |
| 最近记录: |