python划分训练集和测试集

 
【第一种】方法
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之间就是划分比例,如果是整数就是样本数

返回值:训练集,训练集标签,测试集,测试集标签

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))
 

                
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值