咨询热线:18895802597 联系人:朱荣富 地址:西藏自治省拉萨市林廓北路
ML.NET 示例:推荐之场感知分解机
来源:ag亚游开户 发布时间:2019-11-25 点击量:84
写在前面
准备近期将微软的machinelearning-samples翻译成中文,水平有限,如有错漏,请大家多多指正。如果有朋友对此感兴趣,可以加入我:https://github.com/feiyun0112/machinelearning-samples.zh-cn
Movie Recommender
ML.NET 版本 | API 类型 | 状态 | 应用程序类型 | 数据类型 | 场景 | 机器学习任务 | 算法 |
---|---|---|---|---|---|---|---|
v0.7 | 动态 API | 需要升级到v0.8 | 终端应用程序 | .csv | 电影推荐 | 推荐 | 场感知分解机 |
概述
MovieRecommender是一个简单的应用程序,它构建和使用推荐模型。
这是一个关于如何使用推荐来增强现有ASP.NET应用程序的终端示例。
本示例从流行的Netflix应用程序中汲取了灵感,并且尽管这个示例主要关注电影推荐,但是可以很容易地应用于任何类型的产品推荐。
特点
Web应用程序这是一个终端ASP.NET应用程序,它包含了三个用户"Ankit","Cesar","Gal"。然后,它使用ML.NET推荐模型给这三个用户提供建议。推荐模型应用程序使用MovieLens数据集构建推荐模型。模型训练代码使用基于协同过滤的推荐方法。它如何工作?
训练模型
Movie Recommender 使用基于协同过滤的推荐方法。
协同过滤的基本假设是,如果A(例如Gal)在某个问题上与B(例如Cesar)具有相同的观点,则A(Gal)更有可能在另一个问题上具有和B(Cesar)相同的意见,而不是一个随机的人。
对于此示例,我们使用 http://files.grouplens.org/datasets/movielens/ml-latest-small.zip 数据集。
模型训练代码可以在MovieRecommender_Model中找到。
模型训练遵循以下四个步骤来构建模型。 您可以先跳过代码并继续。
使用模型
通过以下步骤在Controller中使用训练的模型。
1. 创建ML.NET环境并加载已经训练过的模型
// 1. Create the ML.NET environment and load the MoviesRecommendation Model var ctx = new MLContext(); ITransformer loadedModel; using (var stream = new FileStream(_movieService.GetModelPath(), FileMode.Open, FileAccess.Read, FileShare.Read)) { loadedModel = ctx.Model.Load(stream); }
2. 创建预测函数以预测一组电影推荐
//3. Create a prediction function var predictionfunction = loadedModel.MakePredictionFunction<RatingData, RatingPrediction>(ctx); List<Tuple<int, float>> ratings = new List<Tuple<int, float>>(); List<Tuple<int, int>> MovieRatings = _profileService.GetProfileWatchedMovies(id); List<Movie> WatchedMovies = new List<Movie>(); foreach (Tuple<int, int> tuple in MovieRatings) { WatchedMovies.Add(_movieService.Get(tuple.Item1)); } RatingPrediction prediction = null; foreach (var movie in _movieService._trendingMovies) { // Call the Rating Prediction for each movie prediction prediction = predictionfunction.Predict(new RatingData { userId = id.ToString(), movieId = movie.MovieID.ToString()}); // Normalize the prediction scores for the "ratings" b/w 0 - 100 var normalizedscore = Sigmoid(prediction.Score); // Add the score for recommendation of each movie in the trending movie list ratings.Add(Tuple.Create(movie.MovieID, normalizedscore)); }
3. 为要显示的视图提供评分预测
ViewData["watchedmovies"] = WatchedMovies; ViewData["ratings"] = ratings; ViewData["trendingmovies"] = _movieService._trendingMovies; return View(activeprofile);
替代方法
这个示例显示了许多可以用于ML.NET的推荐方法之一。根据您的特定场景,您可以选择以下任何最适合您的用例的方法。
场景 | 算法 | 示例链接 |
---|---|---|
您想使用诸如用户Id、产品Id、评分、产品描述、产品价格等属性(特性)作为推荐引擎。在这种场景中,场感知分解机是一种通用的方法,您可以使用它来构建推荐引擎 | 场感知分解机 | 当前示例 |
你有用用户购买行为中的户ID,产品和评分。对于这种情况,您应该使用矩阵分解法 | 矩阵分解 | 矩阵分解 - 推荐 |
你仅有用户购买行为中用户Id和产品Id,但是没有评分。 这在来自在线商店的数据集中很常见,您可能只能访问客户的购买历史记录。 有了这种类型的推荐,你可以建立一个推荐引擎用来推荐经常购买的物品。 | One Class 矩阵分解 | Product Recommender |
相关产品
-
[align=center][/align]中新网记者 李金磊 摄" src="http://i2.chinanews.com/simg/cmshd/2018/01/31/3e29f5fc06484ae8943c024f9c074bcf.jpg" style="border:px solid #000000" title="资料图:人民币。中新网记者 李金磊 摄" />
-
我们这次安排入住的地方是浈阳峡小镇里面的客栈,并不是住在火车里面。因浈阳峡是粤汉铁路的一个站点,原来的蒸汽式火车头保留完整至今而命名,闻名于詹天佑主持修复该段铁路。在小镇旁边有火车轨道还在使用,约5-10分钟会有一班火车呼啸而过,我们这次安排在江边的房间,相对较安静些。
-
事发当日,一辆牌照为赣AC7197由郑州发往南昌的大型客车在行驶途中,由于前方一辆牌照为豫N18289运送酒糟的半挂货车酒糟洒落,引起路面湿滑突然发生侧翻,一辆牌照为皖KG8675的半挂货车又与大客车追尾相撞,9人当场身亡。
-
根据警方报案纪录显示,两名橡树溪公园市的警官,其中一名为华裔,4月10日到芝加哥市区法院出庭作证,之后,两人没穿警察制服,于中午时分到华埠用餐,两位警官把车子停到华人咨询服务处附近的南唐阁街(S. Tan Ct.)的路边停车位后,刚从车子出来,就有一名华裔妇女,从一辆丰田轿车(Toyota)中冲出来,殴打华裔警官驾驶,并且把警官推倒在地。
-
二、适度放宽了案件的受理条件。过去案件受理过程中除提供台湾方面的法律文书,还要提供经过台湾公证机构公证,再经过大陆有关的公证协会认证,法院才立案。新司法解释作了比较重大的调整,只要出具台湾地区民事裁判的原件,有申请书,就立案。
-
玩累了,就来家庭舞台娱乐区休息一下,这里全天候最in的演出也是不容错过哟,不仅有马头搞怪打击乐、复古爵士摇摆舞等亲子互动观赏节目,也有巴西热力桑巴、西班牙弗拉明戈等为大人们掀起的欢乐派对,带着Gelato、啤酒和烤肉,来看表演吧!
-
据报道,此次网络调查是从今年9月20日开始实施,到当地时间30日上午8时50分止,共有9.735万人参加了投票,男性占到84%,女性占到16%。
-
中新网8月20日电 据加拿大《世界日报》报道,加拿大全国保守党华人联合总会(CFCO)17日在约克教会举行每月“发现加拿大暨保守理念论坛”。这次活动的主题讲员是联邦保守党国会议员,来自 Etobicoke–Lakeshore选区的Bernard Trottier 。他演讲的的主题是“保守主义的价值和最美好的经济前景”。
热点资讯
- 李彦宏,海归企业家精神和技术创新的代表,荣获改革先锋、新浪金融称号。2019-11-25
- 曾志华,世界银行高级经济学家:期待经济特区开创美好未来2019-11-25
- 日本厂商精工复刻经典闹钟:音量巨大,专治起床困难2019-11-25
- (转)Web是如何工作的(3):HTTP&REST2019-11-25
- 2019年A股十大投资主题:逐步改革,创造科技助经济2019-11-25
- 赤芍的功效与作用赤芍有哪些使用禁忌2019-11-25
- 全球剩两头雌性北白犀,科学家:没得选了,传宗接代吧2019-11-25
- 亚马逊股价本月已下跌近100美元:市值落后苹果1170亿美元2019-11-25