如何利用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
…… 展开
数据格式是
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
…… 展开
展开全部
“按照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分到检验。 最后统计一下实际的划分比例
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你可以按照行数%10,将小于8的写到一个文件中,将8,9写到另一个文件中。
也可以将所有的行都读到list中(如果文件不是几十或者几百M那么大的话),得到列表的长度,也就是总行数,然后将len/10*8行之前的写到一个文件中,剩下的写到另一个文件中。
不知道你的意思是这个吗?
也可以将所有的行都读到list中(如果文件不是几十或者几百M那么大的话),得到列表的长度,也就是总行数,然后将len/10*8行之前的写到一个文件中,剩下的写到另一个文件中。
不知道你的意思是这个吗?
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2014-03-11
展开全部
把问题描述具体清晰,若是描述不清就列出:输入样例和输出样例。这样才好一行解决,
更多追问追答
追答
是否存在一个问题,它必须多行解决而不能单行解决?
追问
已经解决了,谢谢。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2014-03-11
展开全部
请详细描述
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询