如何利用python将txt文件划分训练集和测试集

总共有一个文件,针对每一个用户对项目的评价,按照8:2的比例对项目分出训练集和测试集。分出来的格式还是这样的3列。数据格式是user_iditem_idrating_va... 总共有一个文件,针对每一个用户对项目的评价,按照8:2的比例对项目分出训练集和测试集。分出来的格式还是这样的3列。
数据格式是
user_id item_id rating_value
1 101 5
1 102 3
1 10 3
1 103 5
1 104 2
1 105 5
1 106 5
1 107 5
1 108 5
1 109 3
1 110 4
1 111 5
1 112 4
1 113 5
1 11 4
1 114 5
1 115 5
1 116 5
1 117 5
……
展开
 我来答
tim_spac
推荐于2016-09-05 · TA获得超过3628个赞
知道大有可为答主
回答量:1804
采纳率:100%
帮助的人:2017万
展开全部

“按照8:2的比例对项目分出训练集和测试集”:从数据源中随机抽取80%的数据作为“训练集”,其余的是“测试集”

import random

with open("datasource.txt", 'rt') as handle:
    dataset = [map(int, ln.split()) for ln in handle]

# 乱序
random.shuffle(dataset)

# [训练集, 测试集]
pos = len(dataset) *.8
parts = dataset[:pos], dataset[pos:]
匿名用户
2014-03-11
展开全部
给一个划分比例,然后读一行文件扔一次色子,相应输出到训练或是检验集合
追问
这个思路很好,色子不是只有6面么?我想用8:2的比例,按照4:1的设置,具体怎么做呢?
追答
用随机数啊 小于.8分到训练 大于.8分到检验。 最后统计一下实际的划分比例
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
自由de王国
2014-03-10 · TA获得超过1066个赞
知道小有建树答主
回答量:661
采纳率:50%
帮助的人:840万
展开全部
你可以按照行数%10,将小于8的写到一个文件中,将8,9写到另一个文件中。
也可以将所有的行都读到list中(如果文件不是几十或者几百M那么大的话),得到列表的长度,也就是总行数,然后将len/10*8行之前的写到一个文件中,剩下的写到另一个文件中。

不知道你的意思是这个吗?
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2014-03-11
展开全部
把问题描述具体清晰,若是描述不清就列出:输入样例和输出样例。这样才好一行解决,
更多追问追答
追答
是否存在一个问题,它必须多行解决而不能单行解决?
追问
已经解决了,谢谢。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2014-03-11
展开全部
请详细描述
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式