Bayes Filter

在这里插入图片描述
推导:参考https://www.cnblogs.com/ycwang16/p/5995702.html
用到的重要公式:

  • 全概率公式:
    离散:
    p ( x ) = ∑ y p ( x , y ) = ∑ y p ( x ∣ y ) p ( y ) p(x) = \sum\limits_y {p(x,y)}=\sum\limits_y {p(x|y)p(y)} p(x)=yp(x,y)=yp(xy)p(y)
    连续:
    p ( x ) = ∫ p ( x , y )    d y = ∫ p ( x ∣ y ) p ( y )    d y p(x) = \int {p(x,y)\;dy} = \int {p(x|y)p(y)\;dy} p(x)=p(x,y)dy=p(xy)p(y)dy
  • 条件概率公式:
    p ( x , y ) = p ( x ∣ y ) p ( y ) = p ( y ∣ x ) p ( x ) p(x,y)=p(x|y)p(y)=p(y|x)p(x) p(x,y)=p(xy)p(y)=p(yx)p(x)
    Note:与全概率公式很像,注意区分。
  • 贝叶斯公式:
    基于全概率公式和条件概率公式可得
    P ( x , y ) = P ( x ∣ y ) P ( y ) = P ( y ∣ x ) P ( x ) ⇒ P ( x   ∣   y ) = P ( y ∣ x )    P ( x ) P ( y ) = causal knowledge ⋅ prior knowledge prior knowledge \begin{array}{c} P(x,y) = P(x|y)P(y) = P(y|x)P(x)\\ \Rightarrow \\ P(x\,\left| {\,y} \right.) = \frac{{P(y|x)\,\,P(x)}}{{P(y)}} = \frac{{{\textrm{causal knowledge}} \cdot {\textrm{prior knowledge}}}}{{{\textrm{prior knowledge}}}} \end{array} P(x,y)=P(xy)P(y)=P(yx)P(x)P(xy)=P(y)P(yx)P(x)=prior knowledgecausal knowledgeprior knowledge
  • 融合多传感的贝叶斯公式:
    P ( x ∣ y , z ) = P ( x , y , z ) P ( y , z ) = P ( y ∣ x , z ) p ( x , z ) P ( y , z ) = P ( y ∣ x , z ) p ( x ∣ z ) p ( z ) P ( y ∣ z ) p ( z ) = P ( y ∣ x , z ) p ( x ∣ z ) P ( y ∣ z ) \begin{array}{l} P(x|y,z){\rm{ = }}\frac{{P(x,y,z)}}{{P(y,z)}}\\ = \frac{{P(y|x,z)p(x,z)}}{{P(y,z)}}\\ = \frac{{P(y|x,z)p(x|z)p(z)}}{{P(y|z)p(z)}}\\ = \frac{{P(y|x,z)p(x|z)}}{{P(y|z)}} \end{array} P(xy,z)=P(y,z)P(x,y,z)=P(y,z)P(yx,z)p(x,z)=P(yz)p(z)P(yx,z)p(xz)p(z)=P(yz)P(yx,z)p(xz)
    所以:
    P ( x ∣ y , z ) = P ( y ∣ x , z )    P ( x ∣ z ) P ( y ∣ z ) P(x|y,z) = \frac{{P(y|x,z)\,\,P(x|z)}}{{P(y|z)}} P(xy,z)=P(yz)P(yx,z)P(xz)
    例子:
    在这里插入图片描述
  • Bayes Filter例子:
    https://www.cnblogs.com/gary-guo/p/5130795.html
  • 一些名词:
    http://noahsnail.com/2018/05/17/2018-05-17-%E8%B4%9D%E5%8F%B6%E6%96%AF%E4%BC%B0%E8%AE%A1%E3%80%81%E6%9C%80%E5%A4%A7%E4%BC%BC%E7%84%B6%E4%BC%B0%E8%AE%A1%E3%80%81%E6%9C%80%E5%A4%A7%E5%90%8E%E9%AA%8C%E6%A6%82%E7%8E%87%E4%BC%B0%E8%AE%A1/
    在这里插入图片描述
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这里是一个 RDD-based API 的简单 Scala 代码示例,展示如何使用 Apache Spark 中的 MLlib 库来训练一个朴素贝叶斯分类器并输出结果: ```scala import org.apache.spark.mllib.classification.{NaiveBayes, NaiveBayesModel} import org.apache.spark.mllib.util.MLUtils import org.apache.spark.{SparkConf, SparkContext} // 创建 SparkConf 和 SparkContext val conf = new SparkConf().setAppName("NaiveBayesExample") val sc = new SparkContext(conf) // 读取数据集 val data = MLUtils.loadLibSVMFile(sc, "data/mllib/sample_libsvm_data.txt") // 划分数据集为训练集和测试集 val Array(trainingData, testData) = data.randomSplit(Array(0.7, 0.3), seed = 1234L) // 训练朴素贝叶斯分类器 val model = NaiveBayes.train(trainingData, lambda = 1.0, modelType = "multinomial") // 在测试集上进行预测 val predictions = testData.map { point => val prediction = model.predict(point.features) (prediction, point.label) } // 计算模型准确率 val accuracy = 1.0 * predictions.filter(r => r._1 == r._2).count() / testData.count() println(s"Test set accuracy = $accuracy") // 输出预测结果 predictions.take(10).foreach(println) // 保存模型 model.save(sc, "myModelPath") // 加载模型 val sameModel = NaiveBayesModel.load(sc, "myModelPath") ``` 你可以将你的数据集替换文中的数据集路径,然后运行代码即可得到训练好的模型和预测结果。需要注意的是,在 RDD-based API 中,我们需要显式地调用 `predict` 方法来进行预测。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值