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次交叉验证,才选出最好的模型?

还是先分别用三种算法的默认参数选出最优的算法,再对某一种算法选出最优的参数呢?
已邀请:

要回复问题请先登录注册