LibSVM的奇怪行为

时间:2016-07-06 10:48:14

标签: matlab classification libsvm

我经常通过对两个相同的法线进行分类来测试我的分类器(或者更准确地说:从相同的基础分布中抽取两个数据样本)或两个明显可分离的法线。然而,当使用非常简单的LibSVM代码和rbf内核时,即使在尝试对两个几乎相同的法线进行分类时,结果也是非常高的分类准确度:

clear all; close all; clc


gamma = 100;

% dummy data    

a = 15;
b = 50;

x = zeros(200,2);

x(1:100,1) = a.*randn(100,1) + b;
x(101:200,1) = a.*randn(100,1) + b;

% labels    

y(1:100,1) = 1;
y(101:200) = 2;


% Libsvm options
% -s 0 : classification
% -t 2 : RBF kernel
% -g : gamma in the RBF kernel

model = svmtrain(y, x, sprintf('-s 0 -t 2 -g %g', gamma));

% Display training accuracy
[predicted_label, accuracy, decision_values] = svmpredict(y, x, model);

为什么?使用Matlab的svmtrain,无论使用哪种内核,我都能获得机会级别的准确度(大约50%)。此外,LibSVM为我自己的数据集提供了截然不同的结果,即使我随机交换数据集的标签也具有非常高的精度。

由于

0 个答案:

没有答案