机器学习之朴素贝叶斯(入门与实战)

目录

贝叶斯准则(贝叶斯公式):

自己动手写代码实现朴素贝叶斯之实例:使用Python进行文本分类

准备数据:从文本中构建词向量

训练算法:从词向量计算概率

测试算法:根据现实情况修改分类器

文档词袋模型

使用sklearn实现朴素贝叶斯之实例:

问题提出:

问题解答:

问题解析:


本文的目的是使你对朴素贝叶斯在理论上有一个入门的理解,在实战方面呢也有一个入门的小示例,看完以后你就可以开启你的进阶之路了。哈哈哈。

本文代码地址

朴素贝叶斯算法是统计学的一种分类方法,它是一种运用概率统计知识进行分类的算法。在许多场合,朴素贝叶斯方法可以与决策树、神经网络分类算法相媲美。该算法能运用到大型数据库中,而且方法简单,分类准确率高,速度快,由于贝叶斯定理假设一个属性值对给定类的影响独立于其它属性值,而此假设在实际情况中经常是不成立的,因此其分类准确率可能会下降。为此也衍生出很多降低独立性假设的贝叶斯分类算法,这里概不讨论。

贝叶斯准则(贝叶斯公式):

即当已知事件Bi的概率P(Bi)和事件Bi已发生条件下事件A的概率P(A│Bi),则可运用贝叶斯定理计算出在事件A发生条件下事件Bi的概率P(Bi│A)。

自己动手写代码实现朴素贝叶斯之实例:使用Python进行文本分类

准备数据:从文本中构建词向量

def loadDataSet():
    postingList = [['my' , 'dog' , 'has' , 'flea' , 'problems' , 'help' , 'please'] ,
                   ['maybe' , 'not' , 'take' , 'him' , 'to' , 'dog' , 'park' , 'stupid'] ,
                   ['my' , 'dalmation' , 'is' , 'so' , 'cute' , 'I' , 'love' , 'him'] ,
                   ['stop' , 'posting' , 'stupid' , 'worthless' , 'garbage'] ,
                   ['mr' , 'licks' , 'ate' , 'my' , 'steak' , 'how' , 'to' , 'stop' , 'him'] ,
                   ['quit' , 'buying' , 'worthless' , 'dog' , 'food' , 'stupid']]
    classVec=[0,1,0,1,0,1]
    return postingList,classVec

def createVocabList(dataset):
    vocabSet=set([])
    for document in dataset:
        #创建两个集合的并集
        vocabSet =vocabSet|set(document)
    return list(vocabSet)

def setOfWords2Vec(vocablist,inputset):
    returnVec=[0]*len(vocablist)
    for word in inputset:
        if word in vocablist:
            #这里如果词出现就为1,不出现就为0,出现多次仍为1
            returnVec[vocablist.index(word)]=1
        else:
            print("the word: %s is not in my Vocabulary!" %word)
    return returnVec

listOPosts,listClasses = loadDataSet()
myVocabList=createVocabList(listOPosts)
print(myVocabList)
print(setOfWords2Vec(myVocabList,listOPosts[0]))

# OUTPUTS:
# ['dalmation', 'worthless', 'buying', 'steak', 'mr', 'ate', 'park', 'my', 'take', 'is', 'not', 'love', 'stop', 'licks', 'dog', 'problems', 'food', 'please', 'to', 'flea', 'so', 'how&#
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值