matlab中svm建模函数,在MATLAB中实现SVM模型交叉验证的不同方法

关于第一个问题.将“CrossVal”设置为“on”并将训练后的模型提取到crossval()函数都旨在实现同样的目标.你可以使用其中一种,这取决于你.

kFoldLoss()是一个函数本身,不包含在“CrossVal”标志中.它将交叉验证的模型作为输入.无论您是使用fitcsvm()中的“CrossVal”标志还是使用正确的crossval()函数对此模型进行交叉验证.必须使用此功能是否要评估错误率.

关于第二个问题,简短的回答是肯定的.您必须使用fitcsvm()返回的训练有素的支持向量机模型.交叉验证程序旨在验证您的模型,因此您可以了解其性能(并且10倍交叉验证只是众多可用方法中的一种),但它不执行任何预测.为此,您必须使用predict()函数.我估计你有一个训练集和一个测试集(或验证集)及其各自的标签.使用训练集训练SVM模型,而使用验证集执行预测阶段. predict()的主要输出是模型预测的标签向量,您可以将此类预测标签与验证集的真实标签进行匹配,以在验证中收集错误率.

我建议你避免使用“CrossVal”标志,这样你就可以控制情况,因为你有:

>训练有素的模型,输出fitcsvm()>交叉验证的模型,crossval()的输出,你也可以用kFoldLoss()来评估它的性能>预测标签,在步骤#1中使用predict()和训练模型

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值