最近我认识了一个姑娘,这个姑娘长得不错,眼睛大大的,个人高挑,身材火辣,对人很喜欢笑
。而且这个爱笑的姑娘对我还经常打招呼,笑脸相迎,哎呀看的我胸口小鹿乱撞,是不是喜欢我呢?
哎...我这没车没钱没房子,就是一个屌丝码农,172的个子,长相一般,难道看上我了!!如果能看上我的话,这单身多年的问题就解决啦,就可以赶紧打电话给老妈啦~~,不要再给我介绍某某某啦!怎么办,最近在搞机器学习,要不用机器学习算法来预测一下吧!
01.
机器学习
贝叶斯算法
啥是贝叶斯算法,我们先来做一些定义。事件A代表姑娘对他人笑,事件B1代表姑娘喜欢一个人,而事件B2则代表了姑娘不喜欢一个人。事件的定义如下图所示。
我们假定这位姑娘对一个人笑的概率为0.7
,也即P(A) = 0.7,同理我们也对事件B1和事件B2的概率做出假设,如上图所示。P(B1) = 0.2, P(B2) = 0.8。这里我们假设这个姑娘要么是喜欢一个人,要么是不喜欢一个人,所以有P(B1) + P(B2) = 1。
这里我们还假定姑娘喜欢一个人的情况下对他笑的概率是0.7
,也即P(A|B1) = 0.7,而姑娘不喜欢一个人对他笑的概率是0.3,即为P(A|B2) = 0.3。
所以有了上述的定义之后,我们如何利用贝叶斯公式来计算姑娘对我笑其实是喜欢我们的概率,也就是求
P(B1|A)
的大小呢?
我们可以这样来思考,一个姑娘对一个人笑,在我们的上述的定义中,只有两层的含义呢:
-
要么是喜欢这个人
-
要么是不喜欢这个人
那么只要求出在喜欢一个人的概率之下(P(B1))乘以该姑娘喜欢一个人并对其笑的概率,再除以该姑娘对所有人笑的概率,不久可以求出来我们所要寻求的结果了吗?这段话利用下图进行直观的解释更加比较容易理解。
上图中不同形状代表的是不同的概率大小,而我们最终所要求的值P(B1|A)也就是P(喜欢一个人|对一个人笑)的大小。
所以我们可以得到最后的贝叶斯公式为
为了更好的让大家理解贝叶斯公式,我们针对上述公式来举个例子:
1).假设这位姑娘对每个人都微笑,那么根据人们的经验,她对你笑说明不了任何问题。
2).而上述公式中P(对一个人笑|喜欢一个人)和P(对一个人笑|不喜欢一个人)两项的值都是1
3).因为不管她喜不喜欢他人,这个姑娘都会对人微笑
此时有=> P(喜欢一个人|对一个人笑)=P(喜欢一个人)
4).也就是说她对你微笑并没有改变任何事情。
再举另外一个比较极端的例子,这位姑娘只对她喜欢的人微笑,这包含了两个假设,用公式描述就是P(喜欢一个人)=P(对一个人微笑),并且P(对一个人笑|喜欢一个人)=1
此时有=>P(喜欢一个人|对一个人笑)=1。
那么,她肯定是喜欢你的。
02.
用程序来算一下
下面我们利用python来阐述上面的过程。程序如下。
上图的程序中,我们利用python将贝叶斯公式进行了简单的实现,并得到了我们想要得到的概率值。
我们上述的程序中,将一个姑娘对人笑的概率设成固定值0.7,喜欢一个人的概率为0.2,与之对应的是不喜欢一个人的概率为0.8。
然后你对着这个模型输入:
-
姑娘喜欢一个人并对其笑的概率
-
姑娘不喜欢一个人并对其小的概率
你能知道 她对你笑到底是啥意思?
上述的讲述中,小编利用一个简单的示例带领大家理解了一下贝叶斯公式的内容,并对其进行程序实现,贝叶斯公式在机器学习中的应用范围非常的广泛,其实日常生活中经常用到!
其实机器学习看似非常深奥,但是掌握了之后对我们的帮助很大!有兴趣的同学,也可以动手研一下。
以上就是小编为大家带来的分享,希望大家在阅读的同时能有所收获。
最近补充一句,我准备邀请她一起吃个西餐,当面谈一下我的算法,问问她到底怎么想的,机智如我,祝我成功!
往期热门: