zoukankan      html  css  js  c++  java
  • 斯坦福机器学习【5】生成学习算法(高斯判别与朴素贝叶斯)

    生成模型与判别模型的区别:

        生成模型:生出数据分布的模型, 在处理过程中得到数据的统计信息 p(x|y)

        判别模型:判断数据分类的模型; 得到数据的分类, p(y|x)

    高斯判别分析模型

    http://blog.csdn.net/stdcoutzyx/article/details/9285001

    朴素贝叶斯

    https://www.cnblogs.com/leoo2sk/archive/2010/09/17/naive-bayesian-classifier.html

    朴素贝叶斯是一个分类算法,输入一个X,X是一个向量包含多个特征,每一个特征包含多个特征值, 即X = (x1, x2, x3 ..., xn),  第一个特征x1可以包含大中小这样的三个特征值, 求出最后属于哪一个y;

    首先这个问题可以写成一个概率公式,即 P(yi | X),最后选择最大的那个yi 的概率。

    而现在直接求解P(yi | X)是不好求的,所以可以利用它贝叶斯定理: p(yi | X) = p(X | yi) P(yi) / p(X), 因为对于每个类别而言,我们预测的这个X是一样的,所以分母P(X)就没有意义了, 最后就是求 argmax P(X | yi) P(yi)

    对于训练接的样本,我们可以很方便的求解 P(yi) , 而P(X | yi) = P( x1, x2, x3 ... , xn | yi) ,这个是不好求的,而朴素贝叶斯的核心思想就是解决这个问题,它大胆做出了一个假设,X中的所有特征值都是相互独立的,所以 P( x1, x2, x3 ... , xn | yi) = P(x1 | yi)P(x2 | yi) P(x3 | yi) ... P(xn | yi) ; 而P(x1 | yi)的求法就是在 yi 类中, 找所有x1的特征,对x1所有的特征值都要 求解出来;具体参考《学习统计方法》P51

    计算多概率的乘积一伙的某个类别的概率,即计算p(w0|c1)p(w1|c1)p(w2|c1),如果其中一个概率值为0,那么最后的乘积也为0,解决方法就是为所有类别下的划分加1

    朴素贝叶斯和逻辑回归区别 

    总结起来,有以下几点不同:

    (1)     Naive Bayes是一个生成模型,在计算P(y|x)之前,先要从训练数据中计算P(x|y)和P(y)的概率,从而利用贝叶斯公式计算P(y|x)。
             Logistic Regression是一个判别模型,它通过在训练数据集上最大化判别函数P(y|x)学习得到,不需要知道P(x|y)和P(y)。

    (2)    Naive Bayes是建立在条件独立假设基础之上的,设特征X含有n个特征属性(X1,X2,...Xn),那么在给定Y的情况下,X1,X2,...Xn是条件独立的。
    Logistic Regression的限制则要宽松很多,如果数据满徐条件独立假设,Logistic Regression能够取得非常好的效果;当数据不满度条件独立假设时,Logistic Regression仍然能够通过调整参数让模型最大化的符合数据的分布,从而训练得到在现有数据集下的一个最优模型。


     (3)    当数据集比较小的时候,应该选用Naive Bayes,为了能够取得很好的效果,数据的需求量为O(log n)
              当数据集比较大的时候,应该选用Logistic Regression,为了能够取得很好的效果,数据的需求量为O( n)

        Naive Bayes运用了比较严格的条件独立假设,为了计算P(y|x),我们可以利用统计的方法统计数据集中P(x|y)和P(y)出现的次数,从而求得P(x|y)和P(y)。因而其所需的数据量要小一些,为O(log n).
         Logistic Regression在计算时,是在整个参数空间进行线性搜索的,需要的数据集就更大,为O( n)

    贝叶斯的三种模型:

    https://blog.csdn.net/u012162613/article/details/48323777/

    1、多项式模型

        适用于 特征值 为离散的情况

    2、高斯模型

       当特征值为连续值时,会因为样本太少而不好统计每一个数字,所以利用高斯分布,假设每一个特征都服从高斯分布,然后求取该分布的 均值和方差

    3、伯努利模型

       仅用于 特征值为0,1两种情况

  • 相关阅读:
    Android开发技术周报 Issue#43
    Android开发技术周报 Issue#44
    Android开发技术周报 Issue#45
    Android开发技术周报 Issue#46
    Android开发技术周报 Issue#48
    Android开发技术周报 Issue#47
    Android开发技术周报 Issue#49
    Android开发技术周报 Issue#50
    Android开发技术周报 Issue#51
    angularjs数据交互
  • 原文地址:https://www.cnblogs.com/zhaopAC/p/8079157.html
Copyright © 2011-2022 走看看