python-3.x 测试列车拆分,同时保留原始尺寸

6rvt4ljy  于 2023-02-20  发布在  Python
关注(0)|答案(1)|浏览(133)

我正在尝试拆分大小为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)
wrrgggsh

wrrgggsh1#

您可以重新索引 Dataframe 以恢复初始维。缺失索引中的每个值都将设置为NaN

train, test = train_test_split(data, test_size=0.2, random_state=42)

train = train.reindex(data.index)
test = test.reindex(data.index)

输出:

>>> train.shape
(610, 9724)

>>> test.shape
(610, 9724)

相关问题