Spark Mlib(六)用spark实现贝叶斯分类器

本文介绍如何使用Spark MLlib库中的朴素贝叶斯分类器进行数据分类,通过加载LibSVM格式的数据集,将数据集划分为训练集和测试集,训练模型并评估其准确性,最后保存和加载模型。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

贝叶斯分类器是各种分类器中分类错误概率最小或者在预先给定代价的情况下平均风险最小的分类器。下面是spark官网(http://spark.apache.org/docs/latest/mllib-naive-bayes.html)给出的例子

package alg
import org.apache.spark.{SparkConf, SparkContext}
import org.apache.spark.mllib.classification.{NaiveBayes, NaiveBayesModel}
import org.apache.spark.mllib.util.MLUtils
object naiveBayes {

  def main(args:Array[String]):Unit={


    val sparkConf = new SparkConf().setMaster("local").setAppName("testTansformition")
    val sc = new SparkContext(sparkConf)

    val data=MLUtils.loadLibSVMFile(sc, "data/mllib/sample_libsvm_data.txt")
    val Array(traning,test)=data.randomSplit(Array(0.6,0.4))

    val model=NaiveBayes.train(traning,lambda = 1.0,modelType ="multinomial")

    val predictAndLabel=test.map(p=>(model.predict((p.features)),p.label))


    val accuracy=1.0*predictAndLabel.filter(x=>x._1==x._2).count()/test.count()

    print("accuracy:"+accuracy)
    //save and load model
    model.save(sc, "target/tmp/myNaiveBayesModel")
    val sameModel = NaiveBayesModel.load(sc, "target/tmp/myNaiveBayesModel")

  }


}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值