为推荐引擎生成测试集

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(使用前将#替换为@)

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

  • 当训练和测试的特征数量不同时,如何处理生产环境中的One-Hot Encoding?

    在做某些实验时 我们通常在 70 上进行训练 在 33 上进行测试 但是 当您的模型投入生产时会发生什么 可能会发生以下情况 训练集 Ser Type Of Car 1 Hatchback 2 Sedan 3 Coupe 4 SUV 经过
  • kmeans 对分组数据进行聚类

    目前 我尝试在分组数据中找到簇的中心 通过使用示例数据集和问题定义 我能够创建kmeans每个组内的集群 然而 当涉及到给定组的集群的每个中心时 我不知道如何获取它们 https rdrr io cran broom man kmeans
  • libsvm 收缩启发法

    我在 C SVC 模式下使用 libsvm 和 2 次多项式内核 并且需要训练多个 SVM 在训练期间 我训练的一些 SVM 会收到以下一个或什至两个警告 WARNING using h 0 may be faster WARNING re
  • 使用 LightGBM 进行多类分类

    我正在尝试使用 Python 中的 LightGBM 为多类分类问题 3 类 建模分类器 我使用了以下参数 params task train boosting type gbdt objective multiclass num clas
  • 如何在sklearn管道中通过特征消除选择特征名称?

    我在 sklearn 管道中使用递归特征消除 管道看起来像这样 from sklearn pipeline import FeatureUnion Pipeline from sklearn import feature selection
  • 从 scikit_learn 反转 MinMaxScaler

    为了为我的生成神经网络提供数据 我需要将一些数据标准化在 1 和 1 之间 我用MinMaxScaler来自 Sklearn 效果很好 现在 我的生成器将输出 1 到 1 之间的数据 如何恢复MinMaxScaler获得真实数据 让我们首先
  • 如何创建增量NER训练模型(追加到现有模型中)?

    我正在训练定制命名实体识别 NER 模型使用斯坦福自然语言处理但问题是我想要重新训练模型 Example 假设我训练过xyz模型 然后我将在一些文本上测试它 如果模型检测到错误 那么我 最终用户 将更正它并希望在更正的文本上重新训练 追加模
  • Scikit Learn GridSearchCV 无需交叉验证(无监督学习)

    是否可以在没有交叉验证的情况下使用 GridSearchCV 我正在尝试通过网格搜索优化 KMeans 聚类中的聚类数量 因此我不需要或想要交叉验证 The 文档 http scikit learn org stable modules g
  • Pytorch TypeError:eq() 收到无效的参数组合

    num samples 10 def predict x sampled models guide None None for in range num samples yhats model x data for model in sam
  • Haar级联正例图像大小调整

    我正在迈出第一步 为自定义对象识别创建 haar 级联 我花了时间获取大量数据并编写了一些预处理脚本以将视频转换为帧 我的下一步是裁剪感兴趣的对象 以创建一些积极的训练示例 我有几个问题 我确实在网上寻找答案 我有点困惑 我读到我应该致力于
  • 按相似度对矩阵进行排序

    我有 100 个矩阵 其中每一行对应一个个体 列对应站点 我想通过相似性度量对行进行排序 以便最相似的个体在矩阵中彼此相邻 我使用 k 近邻按行对矩阵进行排序 并将这些排序的矩阵提供给卷积神经网络 我想知道是否还有其他措施可以完成手头的任务
  • 使用预训练(Tensorflow)CNN 提取特征

    深度学习已成功应用于多个大型数据集 用于对少数类别 猫 狗 汽车 飞机等 进行分类 其性能优于 SIFT 特征袋 颜色直方图等更简单的描述符 然而 训练这样的网络需要每个类别大量的数据和大量的训练时间 然而 在花时间设计和训练这样一种设备并
  • 使用张量流导出神经网络的权重

    我使用张量流工具编写了神经网络 一切正常 现在我想导出神经网络的最终权重以制定单一的预测方法 我怎样才能做到这一点 您需要在训练结束时使用以下命令保存模型tf train Saver https www tensorflow org ver
  • 使用神经网络包进行多项分类

    这个问题应该很简单 但文档没有帮助 我正在使用 R 我必须使用neuralnet多项式分类问题的包 所有示例均针对二项式或线性输出 我可以使用二项式输出进行一些一对一的实现 但我相信我应该能够通过使用 3 个单元作为输出层来做到这一点 其中
  • 如何跨多个文本文件查找字典中键的频率?

    我应该计算文档 individual articles 中所有文件中字典 d 的所有键值的频率 这里 文档 individual articles 大约有20000个txt文件 文件名为1 2 3 4 例如 假设 d Britain 5 7
  • 如何使用机器学习从数据序列计算状态图?

    通用配方 我有一个由一系列点组成的数据集 每个点有 12 个特征 我有兴趣检测此数据中的事件 在训练数据中我知道事件发生的时刻 当事件发生时 我可以在事件发生之前的点序列中看到可观察到的模式 该形态由大约 300 个连续点形成 我感兴趣的是
  • 使用 glmnet 纠正 n 个数据集上的 n 个 LASSO 回归的输出(严格来说是所选的特征/变量)

    注意 这是对上一个问题 https stackoverflow com questions 75006466 how to replicate my results from running n lassos iteratively usi
  • Azure 机器学习 - CORS

    我已经搜索了几个小时 但找不到任何可以回答这个问题的东西 我创建并发布了新的 Azure 机器学习服务 并创建了一个终结点 我可以使用 Postman REST 客户端调用该服务 但通过 JavaScript 网页访问它会返回一个控制台日志
  • 收到的标签值 1 超出了 [0, 1) 的有效范围 - Python、Keras

    我正在使用具有张量流背景的 keras 开发一个简单的 cnn 分类器 def cnnKeras training data training labels test data test labels n dim print Initiat
  • sklearn.model_selection.train_test_split 示例中的“随机状态”是什么? [复制]

    这个问题在这里已经有答案了 有人能给我解释一下吗random state在下面的例子中意味着什么 import numpy as np from sklearn model selection import train test split

随机推荐