0
点赞
收藏
分享

微信扫一扫

ML .NET 电影推荐

醉东枫 2022-03-22 阅读 99


参考​​Movie Recommendation​​

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

场景

根据用户以往对电影的评分,向用户推荐他/她可能感兴趣的电影,从而精确推广目标电影给可能感兴趣的用户群体

比如,打开某部电影的介绍页面,会有“喜欢这部电影的人也喜欢”这样的栏目

或者在用户页面,有推荐电影的栏目

数据集

原始数据是​​ml-latest-small.zip​​,包括4个.csv文件

包含了用户id,电影id,电影名称,电影标签,用户对电影的评分,时间信息等信息

实际上最后只使用了用户id​​userId​​,电影id​​movieId​​,评分​​rating​​,时间​​timestamp​​这四个数据,数据不需要额外处理

训练模型

选择方案​​建议​

ML .NET 电影推荐_microsoft

选择训练环境

ML .NET 电影推荐_数据_02

数据

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

ML .NET 电影推荐_.net_03

​要预测的列​​是评分​​rating​

​用户列​​是评分的人,用户id​​userId​

​项列​​是评分的目标,电影id​​movieId​

然后设置​​高级数据选项​

ML .NET 电影推荐_.net_04

完成训练

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

ML .NET 电影推荐_microsoft_05

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

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 |
------------------------------------------------------------------------------------------------------------------

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

ML .NET 电影推荐_.net_06

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

ML .NET 电影推荐_microsoft_07

小提示

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

和选择的训练模型、对应参数也有关系

调用模型完成功能

添加UI展现结果

ML .NET 电影推荐_microsoft_08

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

示例代码

​​MovieRecommendation​​

参考资料

​​使用 Model Builder 训练推荐模型​​

​​教程:使用矩阵因子分解和 ML.NET 生成影片推荐系统​​

​​Movie Recommendation​​



学习技术最好的文档就是​​【​官方文档​】​​,没有之一。

还有学习资料​​【​Microsoft Learn​】​​、【​CSharp Learn】、​​【​My Note​】​​。

如果,你希望更容易地发现我的新博客,不妨【​关注​】。



举报

相关推荐

0 条评论