zoukankan      html  css  js  c++  java
  • spark 机器学习 朴素贝叶斯 实现(二)

    已知10月份10-22日网球场地,会员打球情况
    通过朴素贝叶斯算法,预测23,24号是否适合打网球。
    结果,日期,天气 温度 风速
    结果(0否,1是)
    天气(0晴天,1阴天,2下雨)
    温度(0热,1舒适,2冷)
    风速(0没风,1微风,2大风)
    训练数据
    vi p1.txt
    1,20181010,0 1 0
    0,20181011,2 2 2
    1,20181012,0 0 0
    1,20181013,0 0 1
    1,20181014,0 1 1
    1,20181014,0 1 1
    1,20181015,0 1 0
    0,20181016,1 2 2
    0,20181017,1 2 2
    0,20181018,2 2 2
    0,20181019,2 1 1
    0,20181020,2 1 2
    0,20181021,1 2 2
    1,20181022,0 1 0

    测试数据
    vi p2.txt
    20181023,0 1 1
    20181024,2 1 0

    1.装载朴素贝叶斯包
    scala> import org.apache.spark.mllib.classification.{NaiveBayes,NaiveBayesModel}
    scala> import org.apache.spark.mllib.linalg.Vectors
    scala> import org.apache.spark.mllib.regression.LabeledPoint
    //标注点LabeledPoint是一种带有标签(Label/Response)的本地向量,它可以是稠密或者是稀疏的。在MLlib中,标注点在监督学习算法中被使用。由于标签是用双精度浮点型来存储的,故标注点类型在回归(Regression)和分类(Classification)问题上均可使用。例如,对于二分类问题,则正样本的标签为1,负样本的标签为0,而对于多类别的分类问题来说,标签则应是一个以0开始的索引序列:0, 1, 2 ...

    2.创建RDD数据集
    scala> val data1=sc.textFile("hdfs://h201:9000/p1.txt")
    scala> val data2=sc.textFile("hdfs://h201:9000/p2.txt")


    3.转换格式(贝叶斯算法识别的格式)
    val train1=data1.map(line=>{
         val line1=line.split(",")
         val line2=LabeledPoint(line1(0).toDouble,Vectors.dense(line1(2).split(' ').map(_.toDouble)))
         (line2)
    })
    //Vectors.dense转换为”稠密向量”
    val test1=data2.map(line=>{
       val line1=line.split(",")
       val line2=Vectors.dense(line1(1).split(' ').map(_.toDouble))
       (line2)
    })

    4.应用朴素贝叶斯算法
    scala>val model =NaiveBayes.train(train1,lambda = 1.0)
    //获得训练模型,第一个参数为数据,第二个参数为平滑参数,默认为1,可改

    scala>val tt=model.predict(test1)
    scala> tt.collect()

  • 相关阅读:
    python 得到请求的返回内容
    pyhton编码解码理解
    .NET数据库编程求索之路--1.引子
    (转)C#调用C函数(DLL)传递参数问题
    C# 如何在Excel 动态生成PivotTable
    高效Web开发的10个jQuery代码片段
    关于大型网站技术演进的思考(一)--存储的瓶颈(1)
    100. Same Tree
    226. Invert Binary Tree
    169. Majority Element
  • 原文地址:https://www.cnblogs.com/xiguage119/p/11002314.html
Copyright © 2011-2022 走看看