24小时热门版块排行榜    

查看: 499  |  回复: 3

尕丶小小强灬

新虫 (初入文坛)

[求助] 求助 随机取样程序 已有2人参与

在进行高维特征筛选之前,要把一个数据集里面的0 1 -1所代表的行按比例提取出来  怎么提 总共有600多行
要随机按比例抽取出来  分测试集和训练集
请问怎么破
下面那个是老师给的程序语言 完全看不懂
谢谢了
就这么点金币了

求助 随机取样程序
3EF3CCCFBF916F23E674CF6D3BA91060.jpg


求助 随机取样程序-1
3DXF[LZM_0R5M[L@ZAIIACT.png
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

有目标就有动力。。迷茫的小强
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

材料廖

木虫 (正式写手)

【答案】应助回帖

感谢参与,应助指数 +1
可以首先find一下0,1,-1分别多少,以及下标,存成一个数列
a0 = find(a == 0),大概语法就这样得到 = 0 的下标,a为你的数的第一列
然后length(a0),得到 = 0 的个数
同理得到=1,=-1的个数
找出相应的比例即可。
a0 = find(a == 0);
a1 = find(a == 1);
a2 = find(a == -1);
l0 = length(a0);
l1 = length(a1);
l2 = length(a2);
bili0 = l0/(l0 + l1 + l2);
bili1 = l1/(l0 + l1 + l2);
bili2 = l2/(l0 + l1 + l2);
然后定下总共要取数目的个数n,随机取出每一个的下标的随机数
a0n = randperm(l0,fix(n*bili0));
a1n = randperm(l1,fix(n*bili1));
a2n = randperm(l2,fix(n*bili2));
a_idex0 = a0(a0n);
a_idex1 = a1(a1n);
a_idex2 = a2(a2n);
b = a([a_idex0, a_idex1, a_idex2]);就是你随机按比例取出来的
2楼2015-06-23 21:56:14
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

材料廖

木虫 (正式写手)

引用回帖:
2楼: Originally posted by 材料廖 at 2015-06-23 21:56:14
可以首先find一下0,1,-1分别多少,以及下标,存成一个数列
a0 = find(a == 0),大概语法就这样得到 = 0 的下标,a为你的数的第一列
然后length(a0),得到 = 0 的个数
同理得到=1,=-1的个数
找出相应的比例即可 ...

未经过验证,你试试看
3楼2015-06-23 21:57:07
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

qqinly

专家顾问 (著名写手)

至人无己,神人无功,圣人无名

【答案】应助回帖

感谢参与,应助指数 +1
% LZ可以参考下matlab自带的统计用的函数
求助 随机取样程序-2
1.jpg

学而时习之,不亦说乎?有朋自远方来,不亦乐乎?人不知而不愠,不亦君子乎?
4楼2015-06-24 13:31:52
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 尕丶小小强灬 的主题更新
信息提示
请填处理意见