我在理解如何实现交叉验证时遇到了一些麻烦。我试图将其应用于LVQ系统。这是我目前的理解…
LVQ可以调整的参数之一是用于建模每个类别的原型数量。为了找到最佳的原型数量,必须在训练数据上训练模型,然后在未见过的数据上测试模型并计算其性能。然而,根据你用于训练和验证的数据点不同,性能结果会有所变化。因此,可以使用交叉验证来获取性能的平均值。
你可以针对不同的原型数量重复这一过程,看看哪个数量能获得最佳平均值。一旦完成,下一步该怎么做?你是根据获得最佳结果的原型数量,在整个训练集上生成一个新模型,还是使用在交叉验证中获得最高准确率的折叠对应的模型?
回答:
你是根据获得最佳结果的原型数量,在整个训练集上生成一个新模型,还是使用在交叉验证中获得最高准确率的折叠对应的模型?
一旦完成交叉验证,并获得最佳参数(在你的情况下,是模型的数量),你就固定这些参数,并在整个训练数据集上训练一个模型。
其原理如下。假设你的训练数据集是tr,你试图确定它在另一个数据集te上的性能(其中te要么是验证数据集,要么是“现实世界”)。由于你无法在te上测试不同参数的影响(要么是因为会过拟合,要么是因为te是“现实世界”,不可用),你可以通过反复将tr分割成tr_cv和te_cv来模拟它。一旦你获得了最佳参数,就没有理由不使用所有数据来构建模型。