【发布时间】:2014-03-16 17:23:04
【问题描述】:
如果我错了,请纠正我,但一类 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 Shouldn't the model overfit to the data to get the same fraction of outliers in the training dataset, when larger gamma is selected?
【问题讨论】:
标签: matlab machine-learning svm libsvm