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
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。