700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 刻意练习:机器学习实战 -- Task02. 朴素贝叶斯

刻意练习:机器学习实战 -- Task02. 朴素贝叶斯

时间:2019-10-18 13:07:37

相关推荐

刻意练习:机器学习实战 -- Task02. 朴素贝叶斯

背景

这是我们为拥有 Python 基础的同学推出的精进技能的“机器学习实战” 刻意练习活动,这也是我们本学期推出的第三次活动了。

我们准备利用8周时间,夯实机器学习常用算法,完成以下任务:

分类问题:K邻近算法分类问题:决策树分类问题:朴素贝叶斯分类问题:逻辑回归分类问题:支持向量机分类问题:AdaBoost回归问题:线性回归、岭回归、套索方法、逐步回归等回归问题:树回归聚类问题:K均值聚类相关问题:Apriori相关问题:FP-Growth简化数据:PCA主成分分析简化数据:SVD奇异值分解

本次任务的核心是熟悉朴素贝叶斯算法的原理,并实现《机器学习实战》这本书给出的两个案例。

算法原理

贝叶斯理论

我们现在有一个数据集,它由两类数据组成,数据分布如下图所示:

我们现在用$P_1(x,y)$表示数据点$(x,y)$属于类别 1(图中用圆点表示的类别)的概率,用$P_2(x,y)$表示数据点$(x,y)$属于类别 2(图中三角形表示的类别)的概率,那么对于一个新数据点$(x,y)$,可以用下面的规则来判断它的类别:

如果$P_1(x,y) > P_2(x,y)$,那么类别为 1如果$P_2(x,y) > P_1(x,y)$,那么类别为 2

也就是说,我们会选择高概率对应的类别。这就是贝叶斯决策理论的核心思想,即选择具有最高概率的决策。

条件概率

$A,B$是两个事件,且$P(A)>0$,事件$A$发生的条件下$B$发生的概率为:

P(B|A)=\frac{P(AB)}{P(A)}

另外一种有效计算条件概率的方法称为贝叶斯准则。贝叶斯准则告诉我们如何交换条件概率中的条件与结果,即如果已知P(B|A),要求P(A|B),那么可以使用下面的计算方法:

P(A|B)=\frac{P(B|A)P(A)}{P(B)}

使用条件概率来分类

上面我们提到贝叶斯决策理论要求计算两个概率$P_1(x, y)$$P_2(x, y)$

如果$P_1(x,y) > P_2(x,y)$,那么类别为 1如果$P_2(x,y) > P_1(x,y)$,那么类别为 2

这并不是贝叶斯决策理论的所有内容。使用$P_1()$$P_2()$只是为了尽可能简化描述,而真正需要计算和比较的是$P(c_1|x, y)$$P(c_2|x, y)$。这些符号所代表的具体意义是: 给定某个由$x, y$表示的数据点,那么该数据点来自类别$c_1$的概率是多少?数据点来自类别$c_2$的概率又是多少?注意这些概率与概率$P(x, y|c_1)$并不一样,不过可以使用贝叶斯准则来交换概率中条件与结果。具体地,应用贝叶斯准则得到:

P(c_i|x, y)=\frac{P(x, y|c_i)P(c_i)}{P(x, y)}

使用上面这些定义,可以定义贝叶斯分类准则为:

如果$P(c_1|x, y) > P(c_2|x, y)$, 那么属于类别$c_1$如果$P(c_2|x, y) > P(c_1|x, y)$, 那么属于类别$c_2$

项目案例1:屏蔽社区留言板的侮辱性言论

项目概述

开发流程

Step1:收集数据

Step2:准备数据

Step3:分析数据

Step4:训练算法

Step5:测试算法

Step6:使用算法

项目案例2:过滤垃圾邮件

项目概述

开发流程

Step1:收集数据

Step2:准备数据

Step3:分析数据

Step4:训练算法

Step5:测试算法

Step6:使用算法

项目案例3:从个人广告中获取区域倾向

项目概述

开发流程

Step1:收集数据

Step2:准备数据

Step3:分析数据

Step4:训练算法

Step5:测试算法

Step6:使用算法

总结

参考文献

/apachecn/AiLearning/tree/master/docs/ml/c406495762/column/info/16415/video/av36993857/97678687/channel/detail?cid=22486/97678687/channel/detail?cid=13045

往期活动

LSGO软件技术团队会定期开展提升编程技能的刻意练习活动,希望大家能够参与进来一起刻意练习,一起学习进步!

Python基础刻意练习活动即将开启,你参加吗?Task01:变量、运算符与数据类型Task02:条件与循环Task03:列表与元组Task04:字符串与序列Task05:函数与Lambda表达式Task06:字典与集合Task07:文件与文件系统Task08:异常处理Task09:else 与 with 语句(1day)Task10:类与对象Task11:魔法方法Task12:模块

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。