24小时热门版块排行榜    

查看: 1939  |  回复: 10

xmcrobbie

银虫 (小有名气)

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

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

ilmeiyi

金虫 (正式写手)

【答案】应助回帖

★ ★ ★ ★
感谢参与,应助指数 +1
xmcrobbie: 金币+3 2014-01-24 02:33:41
xmcrobbie: 金币+1 2014-01-24 02:34:25
极端例子
训练 0 100
测试 25 50

那么分开归一,0当0,100当1,25当0,50当1
统一归一,0当0,100当1,25当0.25,50当0.5

对吗?
5楼2014-01-22 13:01:34
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通回帖

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的回帖

xmcrobbie

银虫 (小有名气)

引用回帖:
5楼: Originally posted by ilmeiyi at 2014-01-22 13:01:34
极端例子
训练 0 100
测试 25 50

那么分开归一,0当0,100当1,25当0,50当1
统一归一,0当0,100当1,25当0.25,50当0.5

对吗?

我觉得尺度的角度来说,合在一起归一化更合理,否则训练样本的尺度和测试样本的尺度都不一样的话,测试结果当然会降低。但是这样一来会有一个问题,每来一个新的测试样本,都要重新归一化,这样的效率不是很低?
6楼2014-01-22 13:49:41
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

HRL_RS

金虫 (小有名气)

【答案】应助回帖


感谢参与,应助指数 +1
xmcrobbie: 金币+1 2014-01-24 02:33:58
个人觉得两个放在一块进行归一化是正确的,之前一直都是这么做的
7楼2014-01-22 20:15:40
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dden

新虫 (初入文坛)

【答案】应助回帖

感谢参与,应助指数 +1
放在一起进行归一化是合理的。。但是测试结果应该采用k折交叉验证的平均结果。
8楼2014-01-22 23:00:01
已阅   回复此楼   关注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的回帖

xmcrobbie

银虫 (小有名气)

引用回帖:
5楼: Originally posted by ilmeiyi at 2014-01-22 13:01:34
极端例子
训练 0 100
测试 25 50

那么分开归一,0当0,100当1,25当0,50当1
统一归一,0当0,100当1,25当0.25,50当0.5

对吗?

我今天无意中用非线性函数log2进行归一化,训练样本和测试样本分开,竟然发现效果很好,但是不知道为什么!

[ 发自小木虫客户端 ]
10楼2014-01-23 11:53:19
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 xmcrobbie 的主题更新
信息提示
请填处理意见