gpt4 book ai didi

matlab - LibSVM一类分类nu参数是不是离群值的一小部分?

转载 作者:行者123 更新时间:2023-11-30 09:02:01 27 4
gpt4 key购买 nike

如果我错了,请纠正我,但一类 SVM 理论指出,nu 参数是训练数据集中异常值的上限 (UB) 和 SV 数量的下限 (LB)。假设我使用的是 RBF 高斯核,那么根据 nu 参数的想法,无论我选择什么值的 gamma,模型都应该能够产生结果,使得参数 nu 是训练中异常值的 UB数据集?然而,这并不是我通过在 Matlab 中使用 LibSVM 尝试一些简单示例所观察到的情况:

[heart_scale_label, heart_scale_inst] = libsvmread('../heart_scale');
ind_good = (heart_scale_label==1);
heart_scale_label = heart_scale_label(ind_good);
heart_scale_inst = heart_scale_inst(ind_good);
train_data = heart_scale_inst;
train_label = heart_scale_label;
gamma= 0.01;
nu=0.01;
model = svmtrain(train_label, train_data, ['-s 2 -t 2 -n ' num2str(nu) ' -g ' num2str(gamma) ' -h 0']);
[predict_label_Tr, accuracy_Tr, dec_values_Tr] = svmpredict(train_label, train_data, model);
accuracy_Tr

使用 gamma = 0.01 我得到训练数据的准确度为 97.50使用 gamma = 100 我得到训练数据的准确度为 42.50当选择较大的 Gamma 值时,模型是否应该过度拟合数据以在训练数据集中获得相同比例的异常值?

最佳答案

其实我也发现了同样的问题。 SVM 的性能通常还取决于 γ 和 nu 的相互作用。如果在尝试调整另一个参数的同时固定一个参数,学习曲线甚至看起来并不单调。

我针对训练准确度、测试准确度(heart_scale 数据的 5 倍)及其差异绘制了三幅图像。 γ 的范围从 10^(-4)10^(1),nu 的范围从 10^(-3) >10^(-1):

enter image description here

为了更清楚地观察小参数,我在γ和nu轴上实现了对数,见下图:

enter image description here

基本上,对于给定的 120 个数据,欠拟合比过拟合要明显得多。

编辑

将 epsilon 值调整为 1e-8 以填补上图所示的空白:

enter image description here

完全没有明显的过拟合或欠拟合!似乎有点违反直觉,因为泛化误差对参数的依赖性,可能是由于 libsvm 中使用的优化算法而不是“真正的”解决方案......

关于matlab - LibSVM一类分类nu参数是不是离群值的一小部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21828662/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com