您的位置:首页 > 编程语言 > Python开发

python划分训练集和测试集

2018-03-16 15:36 295 查看
【第一种】方法
def splitData(data,seed,m,k):
#将数据分成训练集和测试集,每次指定seed,更换K,重复M次,防止过拟合.
test=[]
train=[]
#random.seed(seed),指定seed的话,每次后面的随机数产生的都是一样的顺序
np.random.seed(seed)
for user,item in data.items():
#随机数产生顺序一样,随机产生(0,m)之间的数,只有一个可以分给测试集,另外的m-1都分给训练集
if np.random.randint(0,m)==k:
test.append([user,item])
else:
train.append([user,item])
return test,train
test,train=splitData(data,5,7,5)
print(len(test))
print(len(train))
【结果】



【第二种划分数据集方式】
直接调用sklearn包,简直不要太方便,pip安装下载就好了,如果缺少scipy包,用pip再安装下载
完了,就直接调用train,test,train_label,test_lable=
train_test_split(ratings[['user_id','movies_id']],range(len(ratings)),test_size=7/8)参数:数据集,数据集标签,test_size的值如果介于0-1之间就是划分比例,如果是整数就是样本数返回值:训练集,训练集标签,测试集,测试集标签import pandas as pd
# import numpy as np
from sklearn.model_selection import train_test_split
# 加载数据,获取数据的特征属性列表、数据、分类信息
dataSet = load_iris()
# 获取属性标签
FeatureLabels = dataSet.feature_names
# 获取属性数据
data= dataSet.data
# 获取分类信息
classInfo = dataSet.target
#划分测试集和训练集
train,test,train_label,test_label=train_test_split(data,classInfo,test_size=0.9)

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python