作者:Savan Patel
时间:2017 年 4 月 30 日
原文:https://medium.com/machine-learning-101/chapter-1-supervised-learning-and-naive-bayes-classification-part-1-theory-8b9e361897d5
欢迎来到监督学习的基石。我们首先讨论一个小方案,它将构成未来讨论的基础。接下来,我们将讨论关于后验概率的一些数学,也称为贝叶斯定理。这是朴素贝叶斯分类器的核心部分。最后,我们将探索 python 的 sklearn 库,并在 Python 中编写一个关于 Naive Bayes Classifier 的小段代码,以解决我们在开始时讨论的问题。
本章分为 两部分。第一部分 描述了朴素贝叶斯分类器是如何工作的。第二部分包括 Python 中的编程练习,使用 sklearn 库提供朴素贝叶斯分类器。稍后我们将讨论我们培训的计划的准确性。
想象一下两个人 Alice 和 Bob,他们知道你的单词使用模式。为了保持简单,让我们假设 Alice 经常使用三个单词 [love, great, wonderful] 的组合,而 Bob 经常使用单词[dog,ball, wonderful]。
让我们假设您收到了匿名电子邮件,其发件人可以是 Alice 或 Bob。让我们说电子邮件的内容是 “I love beach sand. Additionally the sunset at beach offers wonderful view”
你能猜出发件人是谁吗?
好吧,如果你猜对了 Alice 你是对的。也许你的理由是, Alice 使用的内容有爱,伟大和精彩。
现在让我们在我们拥有的数据中添加组合和概率。假设 Alice 和 Bob 使用以下具有概率的单词,如下所示。现在,你能猜出谁是内容的发送者:“Wonderful Love.”
Alice 和 Bob 的单词使用概率那你觉得怎么样?
如果你猜对了 Bob,你是对的。如果你知道它背后的数学,那对你有好处。如果没有,请不要担心我们将在下一节中进行。这是我们应用贝叶斯定理的地方。
贝叶斯定理
贝叶斯定理它告诉我们 在 B 发生的 情况 下 A 发生的频率,写成 P(A|B),当我们知道假设 A 发生 的条件下 B 发生的频率,,写成 P(B|A) ,以及 A 和 B 各自发生的概率。
- P(A|B) 是给出 B 发生的概率下 A 的概率
- P(A) 是 A 的概率
- P(B|A) 是给出 A 发生的概率下 B 的概率
- P(B) 是 B 的概率
当 P(Fire) 表示火灾的频率,而 P(Smoke) 表示我们看到烟雾的频率,那么:
P(Fire|Smoke) 表示当我们看到烟雾时有多久会发生火灾。
P(Smoke|Fire) 是指在发生火灾时我们经常看到烟雾的频率。
因此,当我们知道 “向后” 时,公式类型告诉我们“前进”(反之亦然)
示例:如果危险火灾很少(1%),但由于工厂造成烟雾相当普遍(10%),90%的危险火灾会产生烟雾:
P(Fire|Smoke) =P(Fire) P(Smoke|Fire) =1% x 90% = 9%P(Smoke)10%
在这种情况下,9%的时间预计烟雾意味着危险的火灾。
现在你可以将这个应用到 Alice 和 Bob 的例子中吗?
朴素贝叶斯分类器
朴素贝叶斯分类器计算每个因子的概率(在电子邮件示例的情况下,对于给定的输入特征,将是 Alice 和 Bob)。然后它选择概率最高的结果。
该分类器假定特征(在这种情况下,我们将单词作为输入)是独立的。因此,朴素这个词。即便如此,它仍然是强大的算法
- 实时预测
- 文本分类 / 垃圾邮件过滤
- 推荐系统
所以在数学上我们可以写成,
如果我们有某个事件 E 和测试演员 x1,x2,x3 等。
我们首先计算 P(x1| E) , P(x2 | E) … [read as probability of x1 given event E happened] [读作事件 E 发生的情况下事件 x1 发生的概率],然后选择具有最大概率值的测试演员 x。
image.png我希望这能很好地解释朴素贝叶斯分类器的含义。在接下来的部分,我们将在 Python 中使用 sklearn 和实施朴素贝叶斯分类器进行标记电子邮件要么为垃圾邮件或非垃圾邮件。如果您需要任何帮助或有任何建议,请在下面的评论中进行评论
在此处编写并实施电子邮件分类为垃圾邮件和非垃圾邮件(第 1 章的第 2 部分)。
阅读关于支持向量机在第 2 章在这里。
网友评论