先做什么,交叉验证还是网格搜索?

数据挖掘 支持向量机 交叉验证 表现 混淆矩阵
2021-09-23 11:36:08

当我拥有使用 SVM 训练模型的数据集时,首先执行哪个程序,交叉验证还是网格搜索?我在几本书中读过这个,但我不知道这一切应该按什么顺序完成。如果首先执行交叉验证,如果我没有找到网格搜索提供的最佳值,我应该在那里使用哪些超参数?此外,在整个过程中,应该在哪里计算混淆矩阵?

提前致谢

2个回答

好吧,网格搜索涉及找到最佳超参数。最好根据什么数据集?一个保留的验证集。如果这就是您所说的交叉验证的意思,那么它们必然会同时发生。

在测试超参数之前做一些叫做交叉验证的事情真的没有意义——事实上,你会评估什么?

CV 与 k 折交叉验证一样,也可以在搜索中的每个模型拟合过程中发生,以产生更好的损失估计(及其方差,这在更复杂的调整过程中很有用)。我认为这不太常见但有效。

在超参数搜索后拟合最终模型时可以使用 CV。当您计算其中的许多时,它可能会给您更好地估计损失或混淆矩阵。但是您适合的每个模型都没有使用所有可用数据。我认为从拟合过程中获取最佳模型的参数和损失/混淆矩阵可能更传统,作为泛化的估计,然后在所有数据上重新拟合最终模型。这意味着在那个阶段没有简历。

两者一起完成!

网格搜索是您确定模型超参数的方式,而交叉验证是在与训练数据集分开的数据上运行模型以衡量模型在特定超参数上的性能的过程。

网格搜索允许您拥有一些潜在的超参数,您可以通过在训练数据集上进行训练和在验证数据集上进行评估来比较模型的性能。

您使用的指标取决于最终目标。您可以选择具有最小损失或最大准确度或最大 AUROC 或最大 f1 分数的超参数。

您提到的混淆矩阵可以在训练期间和验证期间计算。它只允许您衡量当前模型的性能。该矩阵将为您提供 4 个数字,这些数字以不同的方式组合以获得不同的指标,例如:accuracy、auroc 和 f1-score。在这些指标中,使用哪一个取决于您要执行的最终任务。