python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > python将数据集按比例随机切分

python如何将数据集按比例随机切分

作者:Arxan_hjw

这篇文章主要介绍了python如何将数据集按比例随机切分问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

python将数据集按比例随机切分

# -*- coding: utf-8 -*-
"""
    将数据按比例切分
"""
from sklearn import model_selection
c = []
j = 0
#filename = r'E:\NER\CCKS2020\Data\ccks2020_2_task1_train\task1_train.txt'
filename = open(r'task1_train.txt','r',encoding='utf-8')
out_train = open(r'train.txt', 'w',encoding='utf-8')
out_test = open(r'temp.txt', 'w',encoding='utf-8')
for line in filename:
    #    items = line.strip().split()
    c.append(line)
c_train, c_test = model_selection.train_test_split(c, test_size=0.2)
for i in c_train:
    out_train.write(i)
for i in c_test:
    out_test.write(i)

sklearn数据集随机切分(train_test_split)

sklearn学习

给定数据集X和类别标签y,将数据集按一定比例随机切分为训练集和测试集。

代码

#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
功能:数据集按比例切分为训练集和测试集
时间:2017年3月11日 12:48:57
"""
# from sklearn.cross_validation import train_test_split
from sklearn.model_selection import train_test_split  # 更新
# 生成200个句子,前100个和后100个类别分别对应1和2
X = [[u"这是", u"第1个", u"测试"]] * 100 + [[u"这是", u"第2个", u"测试"]] * 100
y = [1] * 100 + [2] * 100
# 随机抽取20%的测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
print len(X_train), len(X_test)
# 查看句子和标签是否仍然对应
for i in range(len(X_test)):
    print "".join(X_test[i]), y_test[i]
if __name__ == "__main__":
    pass

实验结果

切分后的训练集和测试集标签仍然一一对应。

更新

由于sklearn更新,代码应改为:

from sklearn.model_selection import train_test_split

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文