交叉验证的澄清

我在理解如何实现交叉验证时遇到了一些麻烦。我试图将其应用于LVQ系统。这是我目前的理解…

LVQ可以调整的参数之一是用于建模每个类别的原型数量。为了找到最佳的原型数量,必须在训练数据上训练模型,然后在未见过的数据上测试模型并计算其性能。然而,根据你用于训练和验证的数据点不同,性能结果会有所变化。因此,可以使用交叉验证来获取性能的平均值。

你可以针对不同的原型数量重复这一过程,看看哪个数量能获得最佳平均值。一旦完成,下一步该怎么做?你是根据获得最佳结果的原型数量,在整个训练集上生成一个新模型,还是使用在交叉验证中获得最高准确率的折叠对应的模型?


回答:

你是根据获得最佳结果的原型数量,在整个训练集上生成一个新模型,还是使用在交叉验证中获得最高准确率的折叠对应的模型?

一旦完成交叉验证,并获得最佳参数(在你的情况下,是模型的数量),你就固定这些参数,并在整个训练数据集上训练一个模型。

其原理如下。假设你的训练数据集是tr,你试图确定它在另一个数据集te上的性能(其中te要么是验证数据集,要么是“现实世界”)。由于你无法在te上测试不同参数的影响(要么是因为会过拟合,要么是因为te是“现实世界”,不可用),你可以通过反复将tr分割成tr_cvte_cv来模拟它。一旦你获得了最佳参数,就没有理由不使用所有数据来构建模型。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注