首页 文章

Python scikits SVM网格搜索和分类

提问于
浏览
0

我是scikits和svm的初学者,我想查看几个问题 . 我有700个项目和35个功能的样本,我有3个 class . 我有一个数组X,我的样本和功能使用"preprocessing.scale(X)"进行缩放 . 第一步是找到合适的SVM参数,我使用嵌套交叉验证的网格搜索(参见http://scikit-learn.org/stable/auto_examples/grid_search_digits.html#) . 我正在使用"grid search"中的所有样本(X) . 在网格搜索期间,数据被分成训练和测试(使用StratifiedKFold) . 当我获得SVM参数时,我执行分类,将数据划分为训练和测试 . 在实际分类过程中,我将在网格搜索中使用相同的数据吗?

2 回答

  • 0

    在真正的分类过程中,我将在网格搜索中使用相同的数据吗?

    可以使用此数据来训练(拟合)分类器 . 交叉验证,由 StratifiedKFold 完成,适用于您懒得制作验证集拆分器并希望依赖scikit-learn的内置交叉验证的情况:)

    在通过交叉验证找到最佳设置后, GridSearchCVrefit 选项将重新训练完整训练集上的估算器 .

    然而,将训练有素的分类器应用于网格搜索或训练的数据是没有意义的,因为您已经有了标签 . 如果你想对分类器进行正式评估,你应该从一开始就拿出一个测试集,而不是再次触摸它,直到你完成了所有的网格搜索,验证和拟合 .

  • 4

    我不是机器学习专家,但据我所知,交叉验证的优势在于它过度拟合安全 . 因此,使用具有最佳性能的分类器(根据CV结果)进行最终评估应该是完全可以的 .

    但问题是,为什么你需要对已有标签的数据进行“实际分类”?最终目标是什么(SVM绩效评估或分类)?

相关问题