第六篇 朴素贝叶斯

Posted 进击的调包侠

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第六篇 朴素贝叶斯相关的知识,希望对你有一定的参考价值。

 朴素贝叶斯中的朴素到底是什么?你知道吗?


01

案例分

本文将对iris鸢尾花数据集进行分类。i ris 鸢尾花数据集是一个经典数据集,可以从sklearn的数据库中直接导入。数据集包含 3 类共 150 条记录,每类各 50 个数据,每条记录(输入)都有 4 个属性:花萼长度(sepal length)、花萼宽度(sepal width)、花瓣长度(petal length)、花瓣宽度(petal width),可以通过这4个属性预测鸢尾花卉属于(iris-setosa, iris-versicolour, iris-virginica)中的哪一品种。数据集到底是什么样子,请看下图:
这是原始的数据集的结构:每一个样本其实是一个4维向量(与上述4个属性对应),150个样本构成了一个矩阵



02


公式推导


第六篇 朴素贝叶斯

第六篇 朴素贝叶斯

第六篇 朴素贝叶斯

第六篇 朴素贝叶斯

第六篇 朴素贝叶斯

第六篇 朴素贝叶斯

第六篇 朴素贝叶斯

第六篇 朴素贝叶斯

第六篇 朴素贝叶斯

第六篇 朴素贝叶斯



03


代码实现

朴素贝叶斯根据对P(x_i|y)概率分布的不同假设可分为高斯/多项式/伯努利朴素贝叶斯。尽管朴素贝叶斯有很多过于简单的假设,但在实际情况中(尤其是文档分类和垃圾过滤)它表现很不错。下面以高斯朴素贝叶斯分类器为例:

  导入需要的库

from sklearn.datasets import load_iris #导入鸢尾花数据集from sklearn.model_selection import train_test_split #分割训练集和测试集的函数from sklearn.naive_bayes import GaussianNB #从朴素贝叶斯里导入高斯朴素贝叶斯算法进行分类

加载鸢尾花数据集

X, y = load_iris(return_X_y =True)

利用高斯朴素贝叶斯算法进行分类

X_train, X_test , y_train, y_test = train_test_split(X, y, test_size=0.5, random_state = 0)gnb = GaussianNB()y_pred = gnb.fit(X_train, y_train).predict(X_test)print("Number of mislabeled points out of a total %d points :%d" % (X_test.shape[0],(y_test !=y_pred).sum()))

分类结果如下:

Number of mislabeled points out of a total 75 points :4



第六篇 朴素贝叶斯

本文对于KKT条件和优化问题的理解有限,所写内容均为个人见解。

诚邀对这个问题非常熟悉的读者写下您的见解。

由于留言功能受限,烦请发送消息

谢谢您的帮助!



为了我们更好的明天,请动动你的小手,来投个票吧!



点关注,不迷路,让我们一起进步吧!


下一篇:EM算法

以上是关于第六篇 朴素贝叶斯的主要内容,如果未能解决你的问题,请参考以下文章

(笔记)斯坦福机器学习第六讲--朴素贝叶斯

mooc机器学习第六天-K近邻,决策树,朴素贝叶斯分类器简单尝试

机器学习—朴素贝叶斯

朴素贝叶斯算法简介及python代码实现分析

干货 | 朴素贝叶斯python代码实现

机器学习:贝叶斯分类器——高斯朴素贝叶斯分类器代码实现