Spark Naive Bayes

    贝叶斯分类法是统计学分类方法,假定一个属性值在给定类上的影响独立于其他属性的值,这一假定称为类条件独立性,此假定称为朴素的。

 val rawdataPath = "your raw data path"

    // line -> user,featureCategoricalOne,fTwo,featureCategoricalThree,label

    val rawData = sc.textFile(rawdataPath)
      .map(line =>{
      val values = line.split("\t")
      val featureVector = Vectors.dense(values.slice(1,values.length-1).map(_ .toDouble))
      val label = values(values.length-1).toDouble
      LabeledPoint(label, featureVector)
    })

    val Array(trainData, testData) = rawData.randomSplit(Array(0.8, 0.2))

    val model = NaiveBayes.train(trainData, lambda = 1.0)


第一部也是读取数据,方式跟上篇博文类似。然后调用NaiveBayes方法。

最后也是metrics度量训练结果。

    val metrics = getMetrics(model, testData)
      def getMetrics(model: NaiveBayesModel, data: RDD[LabeledPoint]): MulticlassMetrics = {
    val predictionsAndLabels = data.map(example => (model.predict(example.features), example.label)
    )
    new MulticlassMetrics(predictionsAndLabels)
  }

项目地址:下载地址

你可能感兴趣的:(Spark Naive Bayes)