24小时热门版块排行榜    

Znn3bq.jpeg
查看: 3542  |  回复: 3

zgyzhp

新虫 (初入文坛)

[求助] matlab libsvm中svm参数优化时准确率超低,只有7%!求解决办法!!!

求大神救命!!!我快绝望了!我根据网上教程,在svm做参数c,g优化时,准确率超级低,只有7%!这是什么原因,求解答!另外,我不知道数据怎么像heart_scale.m里面有2个数据heart_scale_int和heart_scale_labels,所以我把我的数据保存成2个.m文件,一个是因变量,只有一个因变量(data_labels.m),一个是自变量数据,共9个自变量(data.m)。不知道有没有什么影响。ps,我的数据是用matlab打开excel文件,再将它保存为.m格式,需要将数据变成libsvm格式吗?下面是我的运行程序。
CODE:
load data
>> load data_labels
>> train_data=[data(1:57,:)];
>> train_data_labels=[data_labels(1:57)];
>> test_data=[data(58:71,:)];
>> test_data_labels=[data_labels(58:71)];
>> [train_data,pstrain]=mapminmax(train_data');
>> pstrain.ymin=0;
>> patrain.ymax=1;
>> [train_data,pstrain]=mapminmax(train_data,pstrain);
>> test_data=[data(58:71,:)];
>> [test_data,pstest]=mapminmax(test_data');
>> pstest.ymin=0;
>> pstest.ymax=1;
>> [test_data,pstest]=mapminmax(test_data,pstest);
>> train_data=train_data';
>> test_data=test_data';
>> [bestacc,bestc,bestg] = SVMcgForClass(train_data_labels,train_data,-10,10,-10,10);
部分结果显示为:
optimization finished, #iter = 1
nu = 0.000977obj = -1.000000, rho = 0.000000nSV = 2, nBSV = 0
*optimization finished, #iter = 1
nu = 0.000977obj = -1.000000, rho = 0.000000nSV = 2, nBSV = 0
*optimization finished, #iter = 1
nu = 0.000977obj = -1.000000, rho = 0.000000nSV = 2, nBSV = 0
*optimization finished, #iter = 1
nu = 0.000977obj = -1.000000, rho = 0.000000nSV = 2, nBSV = 0Total nSV = 22
Cross Validation Accuracy = 7.01754%
求大神解答!!!!救命!!!一定要看到我!!!!!
下面是SVMcgForClass程序文件
function [ bestacc,bestc,bestg ] = SVMcgForClass(train_data_labels,train_data,cmin,cmax,gmin,gmax,v,cstep,gstep,accstep)
%UNTITLED3 Summary of this function goes here
%   Detailed explanation goes here
% SVMcgForClass
% 输入:
% train_data_labels:训练集标签.要求与libsvm工具箱中要求一致.
% train:训练集.要求与libsvm工具箱中要求一致.
% cmin:惩罚参数c的变化范围的最小值(取以2为底的对数后),即 c_min = 2^(cmin).默认为 -5
% cmax:惩罚参数c的变化范围的最大值(取以2为底的对数后),即 c_max = 2^(cmax).默认为 5
% gmin:参数g的变化范围的最小值(取以2为底的对数后),即 g_min = 2^(gmin).默认为 -5
% gmax:参数g的变化范围的最小值(取以2为底的对数后),即 g_min = 2^(gmax).默认为 5
% v:cross validation的参数,即给测试集分为几部分进行cross validation.默认为 3
% cstep:参数c步进的大小.默认为 1
% gstep:参数g步进的大小.默认为 1
% accstep:最后显示准确率图时的步进大小.默认为 1.5
% 输出:
% bestacc:Cross Validation 过程中的最高分类准确率
% bestc:最佳的参数c
% bestg:最佳的参数g
% about the parameters of SVMcgForClass
if nargin < 10
    accstep = 1.5;
end
if nargin < 8
    accstep = 1.5;
    cstep = 1;
    gstep = 1;
end
if nargin < 7
    accstep = 1.5;
    v = 3;
    cstep = 1;
    gstep = 1;
end
if nargin < 6
    accstep = 1.5;
    v = 3;
    cstep = 1;
    gstep = 1;
    gmax = 5;
end
if nargin < 5
    accstep = 1.5;
    v = 3;
    cstep = 1;
    gstep = 1;
    gmax = 5;
    gmin = -5;
end
if nargin < 4
    accstep = 1.5;
    v = 3;
    cstep = 1;
    gstep = 1;
    gmax = 5;
    gmin = -5;
    cmax = 5;
end
if nargin < 3
    accstep = 1.5;
    v = 3;
    cstep = 1;
    gstep = 1;
    gmax = 5;
    gmin = -5;
    cmax = 5;
    cmin = -5;
end
% X:c Y:g cg:accuracy
[X,Y] = meshgrid(cmin:cstep:cmax,gmin:gstep:gmax);
[m,n] = size(X);
cg = zeros(m,n);
% record accuracy with different c & g,and find the best accuracy with the smallest c
bestc = 0;
bestg = 0;
bestacc = 0;
basenum = 2;
for i=1:m
    for j = 1:n
        cmd = ['-v ',num2str(v),' -c ',num2str( basenum^X(i,j) ),' -g ',num2str(basenum^Y(i,j) )];
        cg(i,j) = svmtrain(train_data_labels, train_data, cmd);
        if cg(i,j) > bestacc
            bestacc = cg(i,j);
            bestc = basenum^X(i,j);
            bestg = basenum^Y(i,j);
        end
        if ( cg(i,j) == bestacc && bestc > basenum^X(i,j) )
            bestacc = cg(i,j);
            bestc = basenum^X(i,j);
            bestg = basenum^Y(i,j);
        end
    end
end
% draw the accuracy with different c & g
figure;
[C,h] = contour(X,Y,cg,60:accstep:100);
clabel(C,h,'FontSize',20,'Color','r');
xlabel('log2c','FontSize',20);
ylabel('log2g','FontSize',20);
title('参数选择结果图(grid search)','FontSize',10);
grid on;

end

另外,我的参数选择结果图也没有内容,不知道是什么原因?是因为准确率太低吗?下面是我的2个数据,拜托了!!!

[ Last edited by jjdg on 2017-7-8 at 17:25 ]
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zgyzhp

新虫 (初入文坛)

上面的笑脸是:,不知道怎么变成这个了,更正一下,上面3行带笑脸的分别是
train_data=[data(1:57,:];  
test_data=[data(58:71,:];  
test_data=[data(58:71,:];
不要沉
2楼2017-07-07 21:26:34
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zgyzhp

新虫 (初入文坛)

求大神帮忙!!!!!!
3楼2017-07-08 14:00:05
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

somomo91

专家顾问 (职业作家)

引用回帖:
2楼: Originally posted by zgyzhp at 2017-07-07 21:26:34
上面的笑脸是:,不知道怎么变成这个了,更正一下,上面3行带笑脸的分别是
train_data=;  
test_data=;  
test_data=;
不要沉

你把数据编辑掉了,没法下载数据
4楼2017-07-09 20:33:10
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 zgyzhp 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 售SCI一区T0P文章,我:8.O.5.5.1.O.5.4,科目齐全,可+急 +3 a2tycdlnq1 2026-05-23 5/250 2026-05-24 16:21 by hhx1yx9evi
[基金申请] 河北省自然科学基金 +6 Peterchao 2026-05-18 9/450 2026-05-24 16:02 by 130067131
[硕博家园] 售SCI一区T0P文章,我:8.O.5.5.1.O.5.4,科目齐全,可+急 +4 pmo95bazuy 2026-05-23 8/400 2026-05-24 15:56 by 1uy1ht2y9r
[基金申请] 西安交大新媒学院副院长用撤稿论文结题 +3 bjvtcliu 2026-05-24 5/250 2026-05-24 10:16 by kudofaye
[教师之家] 论文撤稿了 +3 bjvtcliu 2026-05-24 5/250 2026-05-24 10:06 by Equinoxhua
[教师之家] 某211大学教师把个人教师官方主页改成:我跑了我跑了我跑了!官宣跑路! +4 zju2000 2026-05-21 5/250 2026-05-24 09:35 by songwz
[硕博家园] 售SCI一区T0P文章,我:8.O.5.5.1.O.5.4,科目齐全,可+急 +3 hvkbtfonbv 2026-05-23 3/150 2026-05-24 08:01 by 9ps9vgkqva
[基金申请] 揭秘青基评审内幕:几个A才能顺利中标 +3 国自然国社科中 2026-05-23 4/200 2026-05-23 15:37 by 2000zf36392
[基金申请] 青B发送上会通知了吗 +5 chemBioBro 2026-05-22 7/350 2026-05-23 12:35 by zhuifengzhy
[考博] 博士申请 +3 焦晓明 2026-05-21 3/150 2026-05-23 11:26 by mlc840311
[论文投稿] 投稿求助,期刊 +4 希冀,有书读 2026-05-20 8/400 2026-05-22 10:16 by 希冀,有书读
[文学芳草园] 献血感触 +7 呀呀好傻 2026-05-19 13/650 2026-05-21 20:15 by 呀呀好傻
[基金申请] 国自然评分 +4 无名者登山 2026-05-20 5/250 2026-05-21 16:35 by swuq
[基金申请] 国自然上会要求 +7 无名者登山 2026-05-18 11/550 2026-05-21 15:50 by draco1987
[基金申请] 提交了我也来说说感想 +9 fummck 2026-05-20 10/500 2026-05-21 14:17 by draco1987
[基金申请] 评审有感 +15 popular289 2026-05-18 26/1300 2026-05-21 10:35 by 西葫芦炒鸡蛋
[有机交流] 反应很差,大量原料没有反应 5+3 Mr.Zot 2026-05-19 8/400 2026-05-20 22:19 by Equinoxhua
[考博] 如果工作了想读博,可以边工作边读全日制嘛? 30+3 铁达火车 2026-05-18 5/250 2026-05-20 09:33 by tfang
[考博] 博士申请 +5 星…… 2026-05-18 6/300 2026-05-18 23:49 by 糊糊涂涂好
[硕博家园] 我在等一个没有答案的答案 +3 Love_MH 2026-05-17 3/150 2026-05-18 02:22 by 竹林孤影
信息提示
请填处理意见