机器学习入门-朴素贝叶斯

机器学习入门-朴素贝叶斯

先了解几个统计学概念

1、联合概率:包含多个条件并且所有的条件都同时成立的概率,记为P(X,Y)。
什么意思呢?就是P(X=小明,Y=成都),人口中符合户口在成都,名字叫小明的人比例(概率)是多少,总数(分母)是全国总人口。
2、条件概率:已知条件下,另一事件发生的概率。P(X=小明|Y=成都),在成都,叫小明的人比例(概率)是多少,总数(分母)是成都市人口。
3、先检概率:P(Y=成都),成都人口占全国总人口的比例(概率)。这来的Y就是标签(因变量),后面检查计算机的学习正确率就是要看他对这个Y值预测情况。

注意:
A、以上信息是我们通过调研,收集到的数据,在数据分析时,就是训练机器所用的数据,训练数据集中计算得到的。
B、另外还要理解‘分布’是什么意思,事件可能性的分布,所以概率之和应该为1,P(X=小明,Y=成都),P(X=小张,Y=杭州)…
C、后面我们一般都说(联合概率分布,条件概率分布,先检概率分布)

贝叶斯(他发明的)公式可以用上面三个概率计算出P(Y|X),这个概率值分布记作后检概率分布。
什么意思呢?就是我有一个朋友叫小明,但是我不知道他是哪儿的人,然后我就贝叶斯公式一算,得到P(Y=成都|X=小明)=0.1,P(Y=杭州|X=小明)=0.2,P(Y=上海|X=小明)=0.7。
在这里插入图片描述

机器学习中的朴素贝叶斯算法是怎么回事呢?

现在我把全国人口(样本数据,可能只收集到1亿人)按照城市姓名进行统计,数据然后扔给计算机,并且告诉计算机用贝叶斯算法学习,然后计算机就把样本数据里面的联合概率、条件概率、先检概率全部计算出来放脑袋里。这个学习完的脑袋就是模型了,你就可以用这个模型看看你身边的人小明小张都是哪里人了。(注意该模型返回的城市是概率最大的那个,为什么呢?因为这是你在教计算机学习的时候就是这么告诉他的。)

其实机器的学习就是围绕概率在学习,或者说概率就是他的思考方式,当然是你告诉他要这么思考的。

朴素?怎么理解,大概是因为算法高效,易实现,就是分类性能不一定高。

(其实还有另一个说法叫傻瓜贝叶斯,不知道是不是贝叶斯后期为了证明上帝的存在的原因。)其实是因为这个算法本身存在的问题,但是只有数据量足够,它也很好用。

算法应用

再来看一下他的应用,邮件(短信)的识别,小明和小张经常给我发邮件,今天我又收到一封邮件,但是不知道是他们两个中谁发的。于是我把以前他们发的邮件收集了一些,扔给计算机让他学习,计算机就把没封邮件出现的单词进行概率计算,把这些概率全部放脑袋里。等我把这封不知谁发的邮件扔给计算机后,他就采用贝叶斯公式根据他脑袋里面的概率计算这封邮件来自小明和小张的概率分别是多少?返回概率大的那个。(可能小明的邮件里经常出现“发票”“贷款”等词汇,小张经常写“火锅”“烧烤”等,这封邮件正好有“烧烤”一词,那么计算机计算出来自小张的概率就会大,他就会认为是小张发的邮件。)

说到这来必须得提一下,贝叶斯算法没办法考虑词汇的顺序,举个栗子,你用贝叶斯算法写了个搜索引擎,当你搜索“中国国旗”时,他会出现关于中国和各种国旗的信息,而不会给你五星红旗的信息。

再来看一看怎么评价模型的好坏?这个机器经过学习后是否可以在考试的时候考高分?

假设我有1万邮件,其中有1%,100封邮件是垃圾邮件,扔给计算机学习。学完后我要对他进行期末考试,我又给了他1千封邮件,但是哪些是垃圾邮件我没给他说,这是试卷答案。等他做完测试(分类出他认为的哪些是垃圾邮件,哪些不是),我就用我的答案和他做的结果对比(号试卷)。最后得了99.4分(正确率99.4%,其中有10封垃圾邮件,他正确分类了6封,还有把2封正常邮件当垃圾邮件了,所以分错6封邮件),如果只看99.4分,这可是高分啊,但是垃圾邮件他就只识别出了6封,也就是60%的正确率,这可不行。
所以判断一个模型好坏,还需要另外的指标。

精确率:预测为垃圾邮件的正确率,上面计算机预测了8封垃圾邮件,只有6封正确,所以精确率是75%
召回率:垃圾邮件被识别的概率,上面10封垃圾邮件,只识别出6封,所以召回率是60%

如何评价一个模型的好坏是十分重要的,你可以想象一下我们在很多领域,都是特别关注一些小概率事件。诈骗短信识别,安全预警等等,如果只用正确率评价模型,极端的来说,他一个诈骗短信都无法识别也有99%以上正确率。
另外在后面更为复杂的模型构建过程中,我们也需要监控模型的好坏,然后对他进行一些再教育。

代码
# 导入朴素贝叶斯模型模块
from sklearn.naive_bayes import GaussianNB

clf = GaussianNB   # 创建分类器
clf.fit(X,Y)     # 特征X,标签Y,用 fit()方法进行监督分类(训练,学习)
最后可以对训练,测试的结果可视化(混淆矩阵)。

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值