• 朴素贝叶斯


    朴素贝叶斯法:对于给定训练集,首先基于特征条件独立假设学习 输入输出的联合分布,然后基于此模型,对给定的x,利用贝叶斯定理求出后验概率最大的输出y。

    我理解为假设各项特征相互独立,计算该特征分别在两个类别中出现的概率。待分类样本有多个特征,分别计算这些特征在每个类别出现概率之积,那个乘积大,该样本被分为此类别的概率即为最大

    几个重要的公式:

    具体方法:

    关键代码:

     1 def trainNB0(trainMatrix, trainCategory):  #首要先将构造出训练数据集,将单词转换成频率相关的数组,此段代码忽略该过程
     2     numTrainDocs = len(trainMatrix)
     3     numWords = len(trainMatrix[0])
     4     pAbusive = sum(trainCategory) / float(numTrainDocs)  
     5     p0Num = ones(numWords);  #两类词组分别出现的概率向量组
     6     p1Num = ones(numWords)  # change to ones()
     7     p0Denom = 2.0;                
     8     p1Denom = 2.0  # change to 2.0
     9     for i in range(numTrainDocs):    #分别计算某单词的先验概率,即分别在两类中出现的概率
    10         if trainCategory[i] == 1:
    11             p1Num += trainMatrix[i]
    12             p1Denom += sum(trainMatrix[i])
    13         else:
    14             p0Num += trainMatrix[i]
    15             p0Denom += sum(trainMatrix[i])
    16     p1Vect = log(p1Num / p1Denom)  # change to log()
    17     p0Vect = log(p0Num / p0Denom)  # change to log()
    18     return p0Vect, p1Vect, pAbusive #返回某单词在两个类别出现的概率

    上式概率计算部分关键代码处理完毕。

    对于sklearn包,相应的API为GaussianNB,高斯朴素贝叶斯,MultinomialNB,多项式朴素贝叶斯,BernoulliNB伯努利朴素贝叶斯方法。同时要学会该包中将单词转换为数字标记的方法,TF-IDF。学会这几个API接口与基本就能使用该方法了

  • 相关阅读:
    SQL Server优化(4)-聚集索引的重要性和如何选择聚集索引
    青岛开发区公交集团公交线路一览表
    WINDOWS下文件夹简介
    2008 SQL Server优化(2)-改善SQL语句
    【麦课在线教育mycourse】利用Js快速刷完新生安全教育课程
    Linux重启网卡的方法
    Trees
    计算机操作系统之设备管理
    linux目录结构及主要内容
    Linux mysql命令安装允许远程连接
  • 原文地址:https://www.cnblogs.com/the-home-of-123/p/9174260.html
Copyright © 2020-2023  润新知