K折交叉验证等方法是否等同于不需要测试集?
0
刚入门机器学习的小白,在看交叉验证这块有一点疑问。
比如说,我现在有一个数据集有1W个样本,打算使用随机森林、SVM和logistics回归三种算法进行分类,以F1作为最优指标。以下哪种做法是正确的呢?
做法一:
直接对这1W个样本进行10-Fold cross validation,分别计算三种算法的平均F1,假设跑完之后发现随机森林的F1指标最高,所以最后我选择用随机森林,到这就结束。
做法二:
先分成8k个训练集和2k个测试集,然后对8k个训练集用10-Fold cross validation,一样用三种分类方法,最后选出随机森林F1指标最高,然后再用在测试集看看泛化能力如何,到这结束。
不知道这两种做法哪个是正确的呢?
还有两个关于参数的小问题:
1、我做10-Fold cross validation必然会有10组不同的参数估计结果,是不是在交叉验证后我发现随机森林最好之后,不用10折了,而是把所有的数据全部引入模型做出最后的参数估计呢?
2、这三种模型都涉及不同的参数,在选择所谓的最优模型是不是得同时也对参数做交叉验证?假设每种分类模型可选的参数组合都是10种,那么是不是要做3*10次交叉验证,才选出最好的模型?
还是先分别用三种算法的默认参数选出最优的算法,再对某一种算法选出最优的参数呢?
比如说,我现在有一个数据集有1W个样本,打算使用随机森林、SVM和logistics回归三种算法进行分类,以F1作为最优指标。以下哪种做法是正确的呢?
做法一:
直接对这1W个样本进行10-Fold cross validation,分别计算三种算法的平均F1,假设跑完之后发现随机森林的F1指标最高,所以最后我选择用随机森林,到这就结束。
做法二:
先分成8k个训练集和2k个测试集,然后对8k个训练集用10-Fold cross validation,一样用三种分类方法,最后选出随机森林F1指标最高,然后再用在测试集看看泛化能力如何,到这结束。
不知道这两种做法哪个是正确的呢?
还有两个关于参数的小问题:
1、我做10-Fold cross validation必然会有10组不同的参数估计结果,是不是在交叉验证后我发现随机森林最好之后,不用10折了,而是把所有的数据全部引入模型做出最后的参数估计呢?
2、这三种模型都涉及不同的参数,在选择所谓的最优模型是不是得同时也对参数做交叉验证?假设每种分类模型可选的参数组合都是10种,那么是不是要做3*10次交叉验证,才选出最好的模型?
还是先分别用三种算法的默认参数选出最优的算法,再对某一种算法选出最优的参数呢?
没有找到相关结果
重要提示:提问者不能发表回复,可以通过评论与回答者沟通,沟通后可以通过编辑功能完善问题描述,以便后续其他人能够更容易理解问题.
0 个回复