spark 朴素贝叶斯

简介:

训练代码(scala)

import org.apache.spark.mllib.classification.{NaiveBayes,NaiveBayesModel}
import org.apache.spark.mllib.linalg.Vectors import org.apache.spark.mllib.regression.LabeledPoint import org.apache.spark.{SparkContext,SparkConf} object NaiveBayes { def main(args: Array[String]): Unit = { val conf = new SparkConf() .setMaster("local") .setAppName("NaiveBayes") val sc = new SparkContext(conf) val path = "../data/sample_football_weather.txt" val data = sc.textFile(path) val parsedData =data.map { line => val parts =line.split(',') LabeledPoint(parts(0).toDouble,Vectors.dense(parts(1).split(' ').map(_.toDouble))) } //样本划分train和test数据样本60%用于train val splits = parsedData.randomSplit(Array(0.6,0.4),seed = 11L) val training =splits(0) val test =splits(1) //获得训练模型,第一个参数为数据,第二个参数为平滑参数,默认为1,可改变 val model =NaiveBayes.train(training,lambda = 1.0) //对测试样本进行测试 //对模型进行准确度分析 val predictionAndLabel= test.map(p => (model.predict(p.features),p.label)) val accuracy =1.0 *predictionAndLabel.filter(x => x._1 == x._2).count() / test.count() //打印一个预测值 println("NaiveBayes精度----->" + accuracy) //我们这里特地打印一个预测值:假如一天是 晴天(0)凉(2)高(0)高(1) 踢球与否 println("假如一天是 晴天(0)凉(2)高(0)高(1) 踢球与否:" + model.predict(Vectors.dense(0.0,2.0,0.0,1.0))) //保存model val ModelPath = "../model/NaiveBayes_model.obj" model.save(sc,ModelPath) //val testmodel = NaiveBayesModel.load(sc,ModelPath) } }
 

NaiveBayes

类的分布估计调整为

多项式模型下的参数估计调整为:

 

伯努力模型下参数估计调整为:

拉普拉斯平滑

也就是代码中的NaiveBayes.train(training,lambda = 1.0)

















本文转自张昺华-sky博客园博客,原文链接:http://www.cnblogs.com/bonelee/p/7841678.html,如需转载请自行联系原作者


相关文章
|
3月前
|
分布式计算 算法 Spark
spark学习之 GraphX—预测社交圈子
spark学习之 GraphX—预测社交圈子
116 0
|
7月前
|
分布式计算 算法 Java
阿里云ODPS PySpark任务使用mmlspark/synapseml运行LightGBM进行Boosting算法的高效训练与推理
阿里云ODPS PySpark任务使用mmlspark/synapseml运行LightGBM进行Boosting算法的高效训练与推理
|
8月前
|
机器学习/深度学习 数据采集 分布式计算
Spark回归分析与特征工程
Spark回归分析与特征工程
|
8月前
|
机器学习/深度学习 分布式计算 算法
Spark中的二分类与多分类问题的解决
Spark中的二分类与多分类问题的解决
|
SQL 分布式计算 Hadoop
利用 Spark 预测回头客(上)
利用 Spark 预测回头客(上)
270 0
利用 Spark 预测回头客(上)
|
SQL 分布式计算 关系型数据库
利用 Spark 预测回头客(下)
利用 Spark 预测回头客(下)
415 0
利用 Spark 预测回头客(下)
|
机器学习/深度学习 分布式计算 算法
【Spark MLlib】(四)K-Means 聚类分析
【Spark MLlib】(四)K-Means 聚类分析
256 0
|
机器学习/深度学习 分布式计算 算法
Spark MLlib中KMeans聚类算法的解析和应用
聚类算法是机器学习中的一种无监督学习算法,它在数据科学领域应用场景很广泛,比如基于用户购买行为、兴趣等来构建推荐系统。
Spark MLlib中KMeans聚类算法的解析和应用
|
分布式计算 算法 数据挖掘