我使用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
歡呼聲,我很高興它的伎倆! :) –