我使用movielens数据集(ratings.dat)和pandas数据框来读取和处理数据。我必须将这些数据分成测试和训练集。通过使用熊猫dataframe.sample功能,并且可以将数据划分为随机splits.For例如:根据python中的训练和测试集中的时间戳分割每个用户的数据集
列车= df.sample(FRAC = 0.8,random_state = 200)
测试= df.drop( train.index)
现在我想对USER_ID数据进行排序,然后戳,我需要的数据每用户在训练集和测试分别设置分为80%-20%。
因此,例如,如果用户1的额定10部电影,则该用户的条目应该根据时间戳排序由旧到最新
的评分= pd.read_csv(“文件名”,九月='\吨”,发动机= '蟒',标题= 0)
sorted_df = ratings.sort([ 'USER_ID', '时间戳'],上升= [TRUE,TRUE])
和分束应该以这样的方式,具有最早时间戳的前8个条目将在训练集中和最新的2个条目将在测试集中。
我不知道我该怎么做。有什么建议么?
感谢
数据:
user_id item_id rating Timestamp
15 1 539 5 838984068
16 1 586 5 838984068
5 1 355 5 838984474
9 1 370 5 838984596
12 1 466 5 838984679
14 1 520 5 838984679
19 1 594 5 838984679
7 1 362 5 838984885
20 1 616 5 838984941
23 2 260 5 868244562
29 2 733 3 868244562
32 2 786 3 868244562
36 2 1073 3 868244562
33 2 802 2 868244603
38 2 1356 3 868244603
30 2 736 3 868244698
31 2 780 3 868244698
27 2 648 2 868244699
感谢。解释很清楚,它帮助:) – ssh26
欢呼声,我很高兴它的伎俩! :) –