24小时热门版块排行榜    

查看: 1945  |  回复: 10
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

xmcrobbie

银虫 (小有名气)

[求助] 样本数据归一化的问题求助! 已有5人参与

libsvm自带一个模板里头有个:
a_template_flow_usingSVM_class.m,在进行数据归一化的时候,是调用scaleForSVM(train_data,test_data,0,1);把训练样本和测试样本合在一起进行归一化。最终准确率可以达到98%。这合理吗?我做了测试,如果把训练样本和测试样本分开归一化,准确率会大幅度降低,只有60%多。哪个才是真正的结果呢?
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xmcrobbie

银虫 (小有名气)

引用回帖:
8楼: Originally posted by dden at 2014-01-22 23:00:01
放在一起进行归一化是合理的。。但是测试结果应该采用k折交叉验证的平均结果。

每次k折交叉验证的结果都是不同的,一般要测试几次再求平均值?20次够么?

[ 发自小木虫客户端 ]
9楼2014-01-23 08:38:57
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 11 个回答

yongcailiu

金虫 (小有名气)

【答案】应助回帖

感谢参与,应助指数 +1
以我的了解,两个结果应该都是正确的。原因是,前者中把测试样本进行了训练,所以准确率就高。打个比方,就像我们学习新知识,对于已经学习过的东西,掌握的程度当然好了(98%),而运用已有的知识(只训练训练样本)再来学习新知识,掌握的程度自然会差很多(60%)
2楼2014-01-22 10:32:48
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xmcrobbie

银虫 (小有名气)

引用回帖:
2楼: Originally posted by yongcailiu at 2014-01-22 10:32:48
以我的了解,两个结果应该都是正确的。原因是,前者中把测试样本进行了训练,所以准确率就高。打个比方,就像我们学习新知识,对于已经学习过的东西,掌握的程度当然好了(98%),而运用已有的知识(只训练训练样本 ...

测试样本只是用来归一化,根本没参与训练!

[ 发自小木虫客户端 ]
3楼2014-01-22 12:14:19
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

stxiahu

木虫 (小有名气)

【答案】应助回帖

感谢参与,应助指数 +1
我觉得是训练样本涵盖的区域没有测试样本大,导致学习测试样本的能力下降。如果把训练和测试样本混合,然后10折交叉验证,只用选作训练的那部分样本归一化,我想得到的测试结果应该有高有低,高的应该接近98%吧。。
4楼2014-01-22 13:00:57
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见