搜索系统10:机器学习算法浅析
来源:互联网 发布:edius软件在那里下载 编辑:程序博客网 时间:2024/06/05 20:39
很多网站都有猜你喜欢,我对淘宝的推荐还是比较满意的。很多算法都可以实现推荐功能,下面来看一看机器学习的算法:
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);
这个结果好这并不能说明效果就好,我正在研究如何用数据来评价算法好坏,下文见。
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);
这个结果好这并不能说明效果就好,我正在研究如何用数据来评价算法好坏,下文见。
阅读全文
0 0
- 搜索系统10:机器学习算法浅析
- 浅析机器学习中的一维直线搜索
- 机器学习算法~推荐系统
- 系统学习机器学习之算法评估
- (转载)【机器学习算法系列之二】浅析Logistic Regression
- 《常用的机器学习算法——SVM浅析》
- 【机器学习】微信实例浅析贝叶斯分类算法
- 机器学习->推荐系统->userCF算法
- 机器学习->推荐系统->itemCF算法
- 系统设计和机器学习算法
- 邀请:数据挖掘/搜索/机器学习相关算法研究生
- 机器学习&深度学习浅析
- 搜索与机器学习
- 搜索与机器学习
- 搜索与机器学习
- 搜索与机器学习
- 搜索与机器学习
- 系统综述]推荐系统中的机器学习算法
- android NDK 生产.h头文件
- POJ 1419 最大独立集 模板
- Android 应用,机顶盒,编码器,服务器,交换机之间的操作。IPTV配置
- openshift/origin学习记录(10)——基于已有镜像部署应用
- 双重map,js遍历 图片显示在页面
- 搜索系统10:机器学习算法浅析
- VCSEL激光二极管驱动
- [Ethereum Tutorial]Depoly contract on the private chain
- CSS控制的横向列表菜单
- Android studio启动DDMS失败
- 性能度量
- c语言中的几个关键字
- 线性表的增加和删除
- 剑指编程(2)