搜索系统10:机器学习算法浅析

很多网站都有猜你喜欢,我对淘宝的推荐还是比较满意的。很多算法都可以实现推荐功能,下面来看一看机器学习的算法:

1.回归算法。

回归的意思大概是,估计这堆数据这个规律,然后找出这个规律,这个过程就是回归。spark的MLlib中有线性回归、逻辑回归、保序回归三种。

比如, 假设订单数与价格有f(x)=wx+b这么一个关系(线性模型),那我就收集一大堆订单和订单的价格。但我并不知道w和b这两个参数是啥,那么我就可以用mllib来通过我的数据计算出这两个参数来。

2.聚类与分类算法。

聚类与分类的区别:

聚类是以前不知道有那些分类,通过机器学习来得到分类,比如评价标签就可以这么做。

分类是有一些分类,不知一大堆数据中的每个到底该归为哪一类。比如图书馆有很多书、我们有10个书架分别对应10个分类,怎么把书分成10类?

分类算法有:贝叶斯、svm支持向量机、决策树

聚类算法有:Kmeans,LDA主题模型

3.推荐算法

a.ALS交替最小二乘法。

b.协同过滤。

关于基于用户的协同过滤和基于作品的协同过滤,很多书上都有些。我看《mahout in action》里有例子,但看了几遍都没明白,翻译的书就是有这个缺点。下图是另一本中文书里说的,比较清楚:

其实区别就是一个是要算用户的邻居,另一个不需要算邻居就算全部作品的得分,但数据源都是一样的。在mahout中就只有方法名不一样,其它都一样。

如果用mahout,其实代码是很简单的,如下:

//model是数据源

UserSimilarity similarity = new PearsonCorrelationSimilarity(model);

UserNeighborhood neighborhood = new NearestNUserNeighborhood(2, similarity, model);

Recommender recommender = new GenericUserBasedRecommender(model, neighborhood, similarity);

List recommendations = recommender.recommend(1, 1);

这个算法到底好不好呢?如果用mahout的方法,得到查准率与查全率:

RecommenderIRStatsEvaluator evaluator = new GenericRecommenderIRStatsEvaluator();

IRStatistics stats = evaluator.evaluate(recommenderBuilder,null, model,
null, 2,GenericRecommenderIRStatsEvaluator.CHOOSE_THRESHOLD,1.0);

这个结果好这并不能说明效果就好,我正在研究如何用数据来评价算法好坏,下文见。

时间: 2024-10-11 03:39:33

搜索系统10:机器学习算法浅析的相关文章

机器学习必学10大算法

1. 线性回归 在统计学和机器学习领域,线性回归可能是最广为人知也最易理解的算法之一. 预测建模主要关注的是在牺牲可解释性的情况下,尽可能最小化模型误差或做出最准确的预测.我们将借鉴.重用来自许多其它领域的算法(包括统计学)来实现这些目标. 线性回归模型被表示为一个方程式,它为输入变量找到特定的权重(即系数 B),进而描述一条最佳拟合了输入变量(x)和输出变量(y)之间关系的直线. 线性回归 例如: y = B0 + B1 * x 我们将在给定输入值 x 的条件下预测 y,线性回归学习算法的目的

收藏 | 数据分析师最常用的10个机器学习算法!

在机器学习领域,有种说法叫做“世上没有免费的午餐”,简而言之,它是指没有任何一种算法能在每个问题上都能有最好的效果,这个理论在监督学习方面体现得尤为重要. 举个例子来说,你不能说神经网络永远比决策树好,反之亦然.模型运行被许多因素左右,例如数据集的大小和结构. 因此,你应该根据你的问题尝试许多不同的算法,同时使用数据测试集来评估性能并选出最优项. 当然,你尝试的算法必须和你的问题相切合,其中的门道便是机器学习的主要任务.打个比方,如果你想打扫房子,你可能会用到吸尘器.扫帚或者拖把,但你肯定不会拿

从零实现来理解机器学习算法:书籍推荐及障碍的克服

前部为英文原文,原文链接:http://machinelearningmastery.com/understand-machine-learning-algorithms-by-implementing-them-from-scratch/ 后部为中文翻译,本文中文部分转自:http://www.csdn.net/article/2015-09-08/2825646 Understand Machine Learning Algorithms By Implementing Them From

经典的十个机器学习算法

1.C4.5 机器学习中,决策树是一个预测模型:他代表的是对象属性与对象值之间的一种映射关系.树中每个节点表示某个对象,而每个分叉路径则代表的某个可能的 属性值,而每个叶结点则对应从根节点到该叶节点所经历的路径所表示的对象的值.决策树仅有单一输出,若欲有复数输出,可以建立独立的决策树以处理不同输 出. 从数据产生决策树的机器学习技术叫做决策树学习, 通俗说就是决策树. 决策树学习也是数据挖掘中一个普通的方法.在这里,每个决策树都表述了一种树型结构,他由他的分支来对该类型的对象依靠属性进行分类.每

利用机器学习算法寻找网页的缩略图

博客中的文章均为meelo原创,请务必以链接形式注明本文地址 描述一个网页 现在的世界处于一个信息爆炸的时代.微信.微博.新闻网站,每天人们在大海捞针的信息海洋里挑选自己感兴趣的信息.我们是如何判断哪条信息可能会感兴趣?回想一下,你会发现是标题.摘要和缩略图.通过标题.摘要和缩略图,就能够很好地猜测到网页的内容.打开百度搜索引擎,随便搜索一个关键字,每一条搜索结果也正是这三要素构成的. 那么一个自然的问题是搜索引擎是如何找到网页的标题.摘要和缩略图的呢. 寻找网页的标题其实是一个非常简单的问题.

机器学习系列(9)_机器学习算法一览(附Python和R代码)

本文资源翻译@酒酒Angie:伊利诺伊大学香槟分校统计学同学,大四在读,即将开始计算机的研究生学习.希望认识更多喜欢大数据和机器学习的朋友,互相交流学习. 内容校正调整:寒小阳 && 龙心尘 时间:2016年4月 出处:http://blog.csdn.net/han_xiaoyang/article/details/51191386 http://blog.csdn.net/longxinchen_ml/article/details/51192086 声明:版权所有,转载请联系作者并注

<转>机器学习系列(9)_机器学习算法一览(附Python和R代码)

转自http://blog.csdn.net/han_xiaoyang/article/details/51191386 – 谷歌的无人车和机器人得到了很多关注,但我们真正的未来却在于能够使电脑变得更聪明,更人性化的技术,机器学习. – 埃里克 施密特(谷歌首席执行官) 当计算从大型计算机转移至个人电脑再转移到云的今天,我们可能正处于人类历史上最关键的时期.之所以关键,并不是因为已经取得的成就,而是未来几年里我们即将要获得的进步和成就. 对我来说,如今最令我激动的就是计算技术和工具的普及,从而带

机器学习算法集锦

机器学习 机器学习(Machine Learning, ML)是一门多领域交叉学科,涉及概率论.统计学.逼近论.凸分析.算法复杂度理论等多门学科.专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能. 严格的定义:机器学习是一门研究机器获取新知识和新技能,并识别现有知识的学问.这里所说的"机器",指的就是计算机,电子计算机,中子计算机.光子计算机或神经计算机等等. 机器学习概论 由上图所示:机器学习分为四大块: classifi

【机器学习算法实现】kNN算法__手写识别——基于Python和NumPy函数库

[机器学习算法实现]系列文章将记录个人阅读机器学习论文.书籍过程中所碰到的算法,每篇文章描述一个具体的算法.算法的编程实现.算法的具体应用实例.争取每个算法都用多种语言编程实现.所有代码共享至github:https://github.com/wepe/MachineLearning-Demo     欢迎交流指正! (1)kNN算法_手写识别实例--基于Python和NumPy函数库 1.kNN算法简介 kNN算法,即K最近邻(k-NearestNeighbor)分类算法,是最简单的机器学习算