我刚开始接触图像分类,目前正在使用SVM(支持向量机)方法,通过multisvm函数对四组图像进行分类。我的算法每次都会随机选择训练和测试数据,结果每次的性能都不一样。有人建议我进行交叉验证,但我并不明白为什么需要交叉验证以及它的主要目的是什么。我的实际数据集包括训练矩阵大小为28×40000
和测试矩阵大小为17×40000
。请问如何对这个数据集进行交叉验证?提前感谢您的帮助。
回答:
交叉验证用于选择模型。样本外错误可以通过验证错误来估计。因此,您希望选择验证错误最小的模型。这里的模型指的是您想要使用的特征,更重要的是SVM中的gamma
和C
参数。经过交叉验证后,您将使用平均验证错误最小的gamma
和C
来训练整个训练数据集。
您可能还需要评估特征和参数的性能,以避免高偏差和高方差。您的模型是否存在欠拟合或过拟合,可以通过样本内错误和验证错误来观察。
理想情况下,通常使用10折交叉验证。