python尝试随机生成测试集和训练集

在数据挖掘和模型训练过程中,通常需要将数据划分为训练集和测试集。本文介绍了如何使用Python自定义代码进行划分,并补充了使用sklearn库的一个便捷函数方法。

尝试随机生成测试集和训练集

通常在做数据挖掘或者训练模型时,需要随机按比例划分数据集和训练集,这里我自己写了一段划分的代码
还有一份是使用sklearn中一个函数就划分好的(emmmmm,感谢python各种库)

import pandas as pd
import numpy as np
import math
import random


path1=r'data files\ratings.csv'
csvpath1=open(path1)
ratings_df = pd.read_csv(csvpath1)
#ratings_df.tail()
#tail命令用于输入文件中的尾部内容。tail命令默认在屏幕上显示指定文件的末尾5行。
path2=r'data files\movies.csv'
csvpath2=open(path2,encoding='UTF-8')
movies_df = pd.read_csv(csvpath2)


print(ratings_df.iloc[:,0].size)


#line=ratings_df.iloc[:,0].size
#for i in range(int(line*0.2)):
row_list=[]
line=30
for i in range(line):
    #su=random.randint(0,line-1)
    su=random.randint(0,line-1)
    #print(list(ratings_df.iloc[su,:]))
    row_list.append(list(ratings_df.iloc[su,:]))
    ratings_df.drop([su],axis=0,inplace=True)#训练集删除该行
    #ratings_df.reset_index(drop = True)
    ratings_df = pd.DataFrame(ratings_df,columns=['userId','movieId','rating','timestamp'])
    print(ratings_df.iloc[:,0].size)
    line-=1
df = pd.DataFrame(row_list,columns=['userId','movieId','rating','timestamp'])
ratings_df.head()
df.head()

print(ratings_df.iloc[:,0].size)

df.drop([0, 1],axis=0,inplace=True)
df

补充一下看到别人用sklearn 的一个函数实现方法

from numpy import random
import numpy as np
num = 10
x = np.floor(10*random.rand(num,2))
y = np.floor(10*random.rand(num,1))
from sklearn import cross_validation
X_train, X_test, y_train, y_test = cross_validation.train_test_split(x, y, test_size=0.4, random_state=0)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值