我正在尝试拆分大小为610x9724的panda Dataframe (610个用户x 9724部电影),将数据集的80%的非空值放入训练中,并将剩余的20%的非空值放入测试集中,同时用空值替换从训练中移除的20%的值,并同样地用空值替换从测试集中移除的值(训练集和测试集仍将是610x9724,但只是具有比原始数据集更多的空值)。
然后,我将在测试集(610x9724)上使用SVD来预测测试集中被删除的值。
我试过使用sklearn train_test_split,但拆分后,训练集变成了549x9724,验证集变成了61x9724,这使得预测集和测试集之间的RMSE很难计算。
data = df.pivot_table(index='userId', columns='movieId', values='rating')
data_train, data_valid = model_selection.train_test_split(
data, test_size=0.1, random_state=42
)
print(data.shape) # (610, 9724)
print(data_train.shape) # (549, 9724)
print(data_valid.shape) # (61, 9724)
1条答案
按热度按时间wrrgggsh1#
您可以重新索引 Dataframe 以恢复初始维。缺失索引中的每个值都将设置为
NaN
:输出: