繁体   English   中英

Python scikits SVM网格搜索和分类

[英]Python scikits SVM grid search and classification

我是scikits和svm的初学者,我想检查几个问题。 我有700个项目和35个功能部件的样本,并且有3个类。 我有一个带有样本和特征的数组X,这些样本和特征使用“ preprocessing.scale(X)”进行了缩放。 第一步是找到合适的SVM参数,我正在使用带有嵌套交叉验证的网格搜索(请参阅http://scikit-learn.org/stable/auto_examples/grid_search_digits.html# )。 我正在“网格搜索”中使用所有样本(X)。 在网格搜索期间,数据被分为训练和测试(使用StratifiedKFold)。 获得SVM参数后,我将执行分类,将数据分为训练和测试。 在网格分类中使用与真实分类期间将使用的相同数据可以吗?

在网格分类中使用与真实分类期间将使用的相同数据可以吗?

可以使用此数据来训练(拟合)分类器。 交叉验证(由StratifiedKFold完成)旨在用于在优化超参数(算法设置)的同时,您没有足够的数据来支持验证集的情况。 如果您懒得制作验证集拆分器,并且想依靠scikit-learn的内置交叉验证,也可以使用它:)

在使用交叉验证找到最佳设置之后, GridSearchCVrefit选项将在整个训练集上对估计量进行重新训练。

但是, 训练有素的分类器应用于网格搜索或训练的数据是毫无意义的,因为您已经有了标签。 如果要对分类器进行形式化评估,则应从一开始就提供测试集,然后再进行一次网格搜索,验证和拟合,然后再进行测试。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM