Spark MLlib 机器学习算法(一)

协同过滤算法
协同过滤(Collaborative filtering)算法是一种基于群体用户或者物品的典型推荐算法,主要有两种:一种是通过考察具有相同爱好的用户对相同物品的评分标准进行计算。一种是考察具有相同特质的物品从而推荐给选择了某件物品的用户。
协同过滤算法关键是计算相似度,主要有以下几种方法:
1、 基于欧几里得距离计算
公式:
在这里插入图片描述

主要从不同目标的绝对差异性考虑
2、 基于余弦角度计算
公式:
在这里插入图片描述

主要从方向趋势上考虑
3、 交替最小二乘法(ALS)

Val ratings = data.map(_.split(‘ ’)match{
case Array(user,item,rate) => Rating(user.toInt,item.toInt,rate.toDouble)})
val model = ALS.train(ratings,rank,numIterations,0.01)
var rs = model.recommendProducts(2,1)
rs.foreach(println)

线性回归

val parsedData = sc.textFile().map{line => val parts = line.split(,)
LabeledPoint(parts(0).toDouble,
Vectors.dense(parts(1).split(,).map(_.toDouble)))}.cache()
val model = LinearRegressionWithSGD.train(parsedData,100,0.1)
val result = model.predict(Vectors.dense(2))

逻辑回归
1、一元逻辑回归

val model = LogisticRegressionWithSGD.train(parsedData,50)
val target = Vectors.dense(-1)
val result = model.predict(target)

2、支持向量机

val model = SVMWithSGD.train(parsedData,50)

3、朴素贝叶斯

val model = NaiveBayes.train(data,1.0)
val predictionAndLable = testData.map(p => (model.predict(p.features),p.label))
val accuracy = 1.0 * predictionAndLable.filter(label => label._1 == label._2).count()

(待续)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值