• ML .NET 电影推荐


    参考Movie Recommendation
    我采用ML .NET自动化模型的推荐方案来完成这件事情

    场景

    根据用户以往对电影的评分,向用户推荐他/她可能感兴趣的电影,从而精确推广目标电影给可能感兴趣的用户群体
    比如,打开某部电影的介绍页面,会有“喜欢这部电影的人也喜欢”这样的栏目
    或者在用户页面,有推荐电影的栏目

    数据集

    原始数据是ml-latest-small.zip,包括4个.csv文件
    包含了用户id,电影id,电影名称,电影标签,用户对电影的评分,时间信息等信息
    实际上最后只使用了用户iduserId,电影idmovieId,评分rating,时间timestamp这四个数据,数据不需要额外处理

    训练模型

    选择方案建议

    选择训练环境

    数据

    选择数据文件,并设置要预测的列用户列项列

    要预测的列是评分rating
    用户列是评分的人,用户iduserId
    项列是评分的目标,电影idmovieId
    然后设置高级数据选项

    完成训练
    这里训练项目需要手动添加引用Microsoft.ML.Recommender

    可以看出,训练结果并不好,具体输出如下

    Set log file path to ......
    |     Trainer                             RSquared Absolute-loss Squared-loss RMS-loss  Duration #Iteration      |
    |1    MatrixFactorization                   0.2836          0.68         0.77     0.88       0.4          1      |
    |2    MatrixFactorization                   0.3057          0.67         0.75     0.86       0.5          2      |
    |3    MatrixFactorization                  -7.7796          2.89         9.45     3.07       1.9          3      |
    |4    MatrixFactorization                  -6.8064          2.71         8.40     2.90       1.0          4      |
    |5    MatrixFactorization                   0.3248          0.66         0.73     0.85       0.8          5      |
    |6    MatrixFactorization                  -0.4381          1.00         1.55     1.24       0.3          6      |
    |7    MatrixFactorization                  -0.1846          0.93         1.27     1.13       0.3          7      |
    |8    MatrixFactorization                  -6.0314          2.56         7.57     2.75       0.4          8      |
    |9    MatrixFactorization                  -6.9087          2.73         8.51     2.92       0.4          9      |
    |10   MatrixFactorization                  -0.1570          0.88         1.24     1.12       0.6         10      |
    |11   MatrixFactorization                  -6.0012          2.55         7.53     2.74       0.4         11      |
    |12   MatrixFactorization                  -7.8689          2.91         9.54     3.09       0.4         12      |
    |13   MatrixFactorization                  -5.9120          2.53         7.44     2.73       1.5         13      |
    |14   MatrixFactorization                   0.0634          0.82         1.01     1.00       0.6         14      |
    |15   MatrixFactorization                  -6.8212          2.71         8.42     2.90       1.0         15      |
    |16   MatrixFactorization                  -8.4288          3.01        10.15     3.19       0.3         16      |
    |17   MatrixFactorization                   0.2496          0.69         0.81     0.90       0.3         17      |
    |18   MatrixFactorization                  -5.9911          2.55         7.52     2.74       6.8         18      |
    |19   MatrixFactorization                  -5.9236          2.54         7.45     2.73       0.5         19      |
    |20   MatrixFactorization                  -7.7404          2.88         9.40     3.07       0.4         20      |
    |21   MatrixFactorization                   0.3253          0.66         0.73     0.85       0.8         21      |
    |22   MatrixFactorization                   0.3248          0.66         0.73     0.85       1.3         22      |
    |23   MatrixFactorization                   0.3231          0.66         0.73     0.85       1.1         23      |
    |24   MatrixFactorization                   0.3255          0.66         0.73     0.85       1.3         24      |
    |25   MatrixFactorization                   0.3029          0.67         0.75     0.87       1.0         25      |
    |26   MatrixFactorization                   0.3245          0.66         0.73     0.85       1.2         26      |
    |27   MatrixFactorization                   0.0659          0.82         1.01     1.00       1.0         27      |
    |28   MatrixFactorization                   0.0653          0.82         1.01     1.00       1.4         28      |
    |29   MatrixFactorization                   0.0677          0.82         1.00     1.00       1.0         29      |
    |30   MatrixFactorization                   0.2823          0.68         0.77     0.88       1.0         30      |
    |31   MatrixFactorization                   0.3266          0.66         0.72     0.85       1.2         31      |
    |32   MatrixFactorization                  -1.7496          1.51         2.96     1.72       1.0         32      |
    |33   MatrixFactorization                   0.0967          0.77         0.97     0.99       1.4         33      |
    |34   MatrixFactorization                   0.3007          0.67         0.75     0.87       1.2         34      |
    |35   MatrixFactorization                   0.2425          0.70         0.82     0.90       1.0         35      |
    |36   MatrixFactorization                   0.0647          0.82         1.01     1.00       1.0         36      |
    |37   MatrixFactorization                   0.3057          0.67         0.75     0.86       1.1         37      |
    |38   MatrixFactorization                   0.2152          0.72         0.84     0.92       1.4         38      |
    |39   MatrixFactorization                   0.0649          0.82         1.01     1.00       1.4         39      |
    |40   MatrixFactorization                   0.0966          0.77         0.97     0.99       1.4         40      |
    |41   MatrixFactorization                  -0.8004          1.21         1.94     1.39       1.1         41      |
    |42   MatrixFactorization                  -0.5061          1.05         1.62     1.27       1.1         42      |
    |43   MatrixFactorization                  -0.2244          0.94         1.32     1.15       1.1         43      |
    |44   MatrixFactorization                   0.3116          0.67         0.74     0.86       1.1         44      |
    |45   MatrixFactorization                  -7.9544          2.92         9.63     3.10       1.3         45      |
    |46   MatrixFactorization                   0.2827          0.68         0.77     0.88       1.0         46      |
    |47   MatrixFactorization                   0.3051          0.67         0.75     0.86       1.2         47      |
    |48   MatrixFactorization                   0.3240          0.66         0.73     0.85       1.2         48      |
    |49   MatrixFactorization                   0.3185          0.66         0.73     0.86       1.3         49      |
    |50   MatrixFactorization                  -0.4177          1.02         1.53     1.24       1.0         50      |
    |51   MatrixFactorization                  -0.1741          0.89         1.26     1.12       1.4         51      |
    |52   MatrixFactorization                   0.0604          0.83         1.01     1.01       1.2         52      |
    |53   MatrixFactorization                   0.2826          0.68         0.77     0.88       1.0         53      |
    |54   MatrixFactorization                   0.2864          0.67         0.77     0.88       1.0         54      |
    
    ===============================================Experiment Results=================================================
    ------------------------------------------------------------------------------------------------------------------
    |                                                     Summary                                                    |
    ------------------------------------------------------------------------------------------------------------------
    |ML Task: Recommendation                                                                                         |
    |Dataset: ......\MovieRecommendation.Train\TrainData\recommendation-ratings-train.csv|
    |Label : rating                                                                                                  |
    |Total experiment time : 58.2824409 Secs                                                                         |
    |Total number of models explored: 54                                                                             |
    ------------------------------------------------------------------------------------------------------------------
    
    |                                              Top 5 models explored                                             |
    ------------------------------------------------------------------------------------------------------------------
    |     Trainer                             RSquared Absolute-loss Squared-loss RMS-loss  Duration #Iteration      |
    |1    MatrixFactorization                   0.3266          0.66         0.72     0.85       1.2          1      |
    |2    MatrixFactorization                   0.3255          0.66         0.73     0.85       1.3          2      |
    |3    MatrixFactorization                   0.3253          0.66         0.73     0.85       0.8          3      |
    |4    MatrixFactorization                   0.3248          0.66         0.73     0.85       1.3          4      |
    |5    MatrixFactorization                   0.3248          0.66         0.73     0.85       0.8          5      |
    ------------------------------------------------------------------------------------------------------------------
    

    训练完成后有评估、使用、优化模型的相关指引

    由于R-Squared较低,故进行重新训练,稍微提高了一些

    小提示

    最终得到的模型是否合格,和训练数据,数据量、特征的提取,数据统一性都有关系
    和选择的训练模型、对应参数也有关系

    调用模型完成功能

    添加UI展现结果

    计算用户1对多部电影的评分,然后排序取高分的电影,即是可以向该用户推荐的电影

    示例代码

    MovieRecommendation

    参考资料

    使用 Model Builder 训练推荐模型
    教程:使用矩阵因子分解和 ML.NET 生成影片推荐系统
    Movie Recommendation

  • 相关阅读:
    面试经验链接汇集
    258. Add Digits
    192. Word Frequency(shell)
    6、字符串循环对角线结构ZigZag Conversion
    5、最长回文子串Longest Palindromic Substring
    idea常用的快捷命令
    JAVA传输概念
    UUID随机字符串
    Bean的加载
    默认标签的解析过程(三)parseDefaultElement
  • 原文地址:https://www.cnblogs.com/Lulus/p/16018658.html
Copyright © 2020-2023  润新知