为推荐引擎生成测试集

2024-02-02

我正在研究基于隐式反馈的推荐引擎。我正在使用这个链接:http://insightdatascience.com/blog/explicit_matrix_factorization.html#movielens http://insightdatascience.com/blog/explicit_matrix_factorization.html#movielens

这使用 ALS(交替最小二乘法)来计算用户和项目向量。因为,我的数据集无法按时间分区。我随机从用户那里获取“x”个评分并将其放入测试集中。这是我的训练用户项目矩阵的可重现示例。




col1    col2     col3   col4   col5   col6    col7     col8    col9   col10   col1    col12    col13 
+---------------------------------------------------------------------------------------------------+
| 1        0       0     3      10      0       0         3        0      0       1       0        0 |                                                                                   | 
| 0        0       0     5      0       0        1         8        0      0       1       0        0 |                                                                                  |
| 0        0       0     6      7       1        0         2        0      0       1       0        0 |                                                                                   |
+---------------------------------------------------------------------------------------------------+
  


I then create a test set using this piece of code
    test_ratings = np.random.choice(counts[user,:].nonzero()[0],size=1,replace=True)
        train[user,test_ratings] = 0
        test[user,test_ratings] = counts[user,test_ratings]  
        assert(np.all((train * test) == 0)) 
  

这给了我:



col1    col2     col3   col4   col5   col6    col7     col8    col9   col10   col1    col12    col13 
+---------------------------------------------------------------------------------------------------+
| 0        0       0     0      0      0       0         3        0      0       0       0        0 |                                                                                   | 
| 0        0       0     0      0      0       1         0        0      0       0       0        0 |                                                                                  |
| 0        0       0     6      0      0       0         0        0      0       0       0        0 |                                                                                   |
+---------------------------------------------------------------------------------------------------+

  

这里的行是用户,列是项目。

现在,我想知道这是否是我的测试集的正确表示。我选取了一个非零值并使所有值都为零。因此,我的算法应该将非零值排名为推荐项目。

这是正确的处理方式吗?

任何帮助将非常感激


Updated:

是的,您应该使用一些原始计数创建一个测试集,并查看您的系统是否将这些用户项识别为良好匹配。

您应该注意以下几点:

  • 仅对您拥有的项目或用户添加测试集值 更多数据;
  • 从训练数据中隐藏这些测试集值;
  • 仅在您有数据的用户-项目对上训练您的模型,而不是在 0 上 - 这样做的原因是因为假设您的 0 代表您没有数据的对,而不是真实的评分;

Note:这张纸,隐式反馈数据集的协同过滤 http://yifanhu.net/PUB/cf.pdf,应该可以帮助您解决这些问题和其他问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为推荐引擎生成测试集 的相关文章

  • Google Colab 使用 Transformers 和 PyTorch 微调 BERT Base Case 时出现间歇性“RuntimeError: CUDA out of memory”错误

    我正在运行以下代码来微调 Google Colab 中的 BERT Base Cased 模型 有时代码第一次运行良好 没有错误 其他时候 相同的代码使用相同的数据 会导致 CUDA 内存不足 错误 以前 重新启动运行时或退出笔记本 返回笔
  • 按相似度对矩阵进行排序

    我有 100 个矩阵 其中每一行对应一个个体 列对应站点 我想通过相似性度量对行进行排序 以便最相似的个体在矩阵中彼此相邻 我使用 k 近邻按行对矩阵进行排序 并将这些排序的矩阵提供给卷积神经网络 我想知道是否还有其他措施可以完成手头的任务
  • 在 Keras 中使用有状态 LSTM 训练多变量多级数回归问题

    我有时间序列P过程 每个过程的长度各不相同 但都有 5 个变量 维度 我试图预测测试过程的估计寿命 我正在用有状态的方法来解决这个问题LSTM在喀拉斯 但我不确定我的训练过程是否正确 我将每个序列分成长度的批次30 所以每个序列都是这样的形
  • model.predict() 返回类而不是概率

    Hello 我是第一次使用 Keras 我训练并保存了一个模型 作为 json 文件及其权重 该模型旨在将图像分为 3 个类别 我的编译方法 model compile loss categorical crossentropy optim
  • Keras 可以处理不同尺寸的输入图像吗?

    Keras 可以处理不同尺寸的输入图像吗 例如 在全卷积神经网络中 输入图像可以具有任意大小 然而 我们在用Keras创建网络时需要指定输入形状 因此 我们如何使用 Keras 来处理不同的输入尺寸而不将输入图像调整为相同的尺寸 谢谢你的帮
  • 使用 TensorFlow 和 Keras 的卷积神经网络精度较低 [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我计划创建一个 CNN 来预测蘑菇类型 并从互联网上收集了 2500 多张照片 数据集有 156 个类别 不同类型的蘑菇 我在 Tensorfl
  • 使用 glmnet 纠正 n 个数据集上的 n 个 LASSO 回归的输出(严格来说是所选的特征/变量)

    注意 这是对上一个问题 https stackoverflow com questions 75006466 how to replicate my results from running n lassos iteratively usi
  • 在 R 中绘制决策树(插入符)

    我已经训练了一个数据集rf方法 例如 ctrl lt trainControl method LGOCV repeats 3 savePred TRUE verboseIter TRUE preProcOptions list thresh
  • 如何创建简单的梯度下降算法

    我正在研究简单的机器学习算法 从简单的梯度下降开始 但在尝试用 python 实现它时遇到了一些麻烦 这是我试图重现的示例 我获得了有关房屋的数据 居住面积 以英尺为单位 和卧室数量 以及最终的价格 居住面积 英尺2 2104 卧室 3 价
  • 构建协同过滤/推荐系统

    我正在设计一个网站 该网站的概念是根据用户的口味向他们推荐各种商品 即他们评价过的项目 添加到收藏夹列表中的项目等 亚马逊 Movielens 和 Netflix 就是这样的例子 现在 我的问题是 我不知道从哪里开始了解这个系统的数学部分
  • 在 GPU 上训练时如何处理非确定性?

    在调整超参数以使模型性能更好时 我注意到每次运行代码时获得的分数 以及创建的模型 都是不同的 尽管修复了随机操作的所有种子 如果我在CPU上运行就不会出现这个问题 我搜索了一下 发现这是使用 GPU 训练时的常见问题 这是一个非常好的 详细
  • Keras Predict_classes 方法返回“列表索引超出范围”错误

    我对 CNN 和机器学习总体来说是新手 并且一直在尝试遵循 TensorFlow 的图像分类教程 现在 可以找到Google Colabhere https colab research google com drive 1gwZp7 t
  • 如何解决错误:PyTorch 中预期输入批量大小与目标批量大小不匹配?

    我尝试通过 PyTorch 在 CIFAR10 数据集上创建逻辑模型 但是我收到错误 ValueError 预期输入batch size 900 与目标batch size 300 匹配 我认为正在发生的事情是 3 100 是 300 所以
  • 地图应用的聚类算法

    我正在研究地图上的聚类点 纬度 经度 对于快速且可扩展的合适算法有什么建议吗 更具体地说 我有一系列纬度 经度坐标和一个地图视口 我正在尝试将靠近的点聚集在一起以消除混乱 我已经有了解决问题的方法 see here http bouldr
  • 在Python中表示语料库句子的一种热门编码

    我是 Python 和 Scikit learn 库的初学者 我目前需要从事一个 NLP 项目 该项目首先需要通过 One Hot Encoding 来表示一个大型语料库 我已经阅读了 Scikit learn 关于 preprocessi
  • 池化与随时间池化

    我从概念上理解最大 总和池中发生的情况作为 CNN 层操作 但我看到这个术语 随时间变化的最大池 或 随时间变化的总和池 例如 用于句子分类的卷积神经网络 https arxiv org pdf 1408 5882 pdfYoon Kim
  • 将列指定为多个组合回归模型中的特征和标签 (ML.NET)

    我正在使用 ML NET 使用回归模型来预测一系列值 我只对预测的一列 分数列 感兴趣 但是 其他一些列的值不可用于预测类 我不能将它们保留为 0 因为这会扰乱预测 所以我想它们也必须被预测 我看到一个类似的问题here https sta
  • 使用 to_categorical 转换 np.array 时出现内存问题

    我有一个像这样的 numpy 数组 0 1 1 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 1 0 1 我这样改造它以减少内存需求 x val x val asty
  • 提高SVM分类器准确率的技术

    我正在尝试使用 UCI 数据集构建一个分类器来预测乳腺癌 我正在使用支持向量机 尽管我尽最大努力提高分类器的准确性 但仍无法超过 97 062 我尝试过以下方法 1 Finding the most optimal C and gamma
  • 预处理 csv 文件以与 tflearn 一起使用

    我的问题是关于在将 csv 文件输入神经网络之前对其进行预处理 我想使用 python 3 中的 tflearn 为著名的 iris 数据集构建一个深度神经网络 数据集 http archive ics uci edu ml machine

随机推荐