zoukankan      html  css  js  c++  java
  • Logistic Regression vs Naive Bayes

    原文地址:https://www.jianshu.com/p/930813af53c7

    相同

    逻辑回归和朴素贝叶斯都是对条件概率(P(y|X))进行建模,使得最终的分类结果有很好的解释性。

    不同

    具体流程

    • 逻辑回归:
      假设(P(y=1|X))满足逻辑函数

    [delta(z)=frac{1}{1+exp(-z)} ]

    其中,(z=XW+b),即

    [P(y=1|X)=frac{1}{1+exp(-XW-b)} ]

    通过梯度下降最小化(-sumlimits_{(X,y)}log(P(y|X)))直接求解(W)

    • 朴素贝叶斯:
      贝叶斯
      不直接求解(P(y|X)),先求解(P(y))(p(X|y)),再通过贝叶斯公式

    [P(y|X)=frac{p(x,y)}{sumlimits_{y}{p(x,y)}}=frac{P(y)p(X|y)}{sumlimits_{y}{P(y)}p(X|y)} ]

    求解(P(y|X))
    朴素
    且其假设特征满足条件独立性:给定类别,不同维度的特征取值之间相互独立,即$$p(X|y=c)=prod_i{p(X_i|y=c)}$$
    如果特征(X)取离散值,可以直接根据训练数据统计出(P(y))(p(X_i|y)(forall{i}))
    如果特征(X)取连续值,需要假设(p(X|y))的形式,如高斯分布,其对应(W)值形式确定,根据训练数据利用MLE求解出(mu)({Sigma})后,由({mu})({Sigma})确定(W)值。
    预测时,求解使得(P(y|X))最大的(y)作为最终的分类结果。

    模型类别

    逻辑回归是判别模型;朴素贝叶斯是生成模型。
    判别模型的目标是找到一个最能够区分不同类的边界,它不在乎每一类中样本点是如何分布的;
    生成模型首先对各类中的样本分布进行建模,
    好处是需要的训练数据更少、对于噪声点更鲁棒(该点与假设不符合,可能是噪声点)、(P(y))(p(X|y))可以来自不同的源。

    如何取舍

    当特征间满足条件独立性假设时,随着训练数据中样本个数的增加,在极限情况下,逻辑回归和高斯朴素贝叶斯分类结果一致。
    高斯朴素贝叶斯的收敛速度比逻辑回归更快,
    当训练数据中样本数目较小时,高斯朴素贝叶斯往往比逻辑回归表现得更好;
    当样本数目较大时,由于逻辑回归的极限误差更低,它会比高斯朴素贝叶斯表现得更好。
    与逻辑回归相比,朴素贝叶斯的方差更小,偏差更大。
    比起逻辑回归来,朴素贝叶斯会较为受限于特征工程,当假设不成立时,假设会对分类的准确性造成负面的影响。

  • 相关阅读:
    一天一个 Linux 命令(44):ifstat 命令
    Java集合框架示意图
    Java中String类常见问题汇总
    一天一个 Linux 命令(43):netstat 命令
    Windows系统下,如何设置maven字符编码
    Java文件操作编程
    Java 注解(Annotation)
    Linux Centos7.4 更新Java jdk版本
    Java基础(6)Java数据类型扩展
    Windows系统下Elasticsearch7.15.2单服务器配置多节点
  • 原文地址:https://www.cnblogs.com/cherrychenlee/p/10804625.html
Copyright © 2011-2022 走看看