从零开始的AI·朴素贝叶斯?拿来吧你(附实例代码)
Posted 有理想、有本领、有担当的有志青年
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从零开始的AI·朴素贝叶斯?拿来吧你(附实例代码)相关的知识,希望对你有一定的参考价值。
从零开始的AI系列
前言
本文理论部分基于Peter Harrington的《机器学习实战》一书
朴素贝叶斯算法(Naive Bayesian algorithm) 是应用最为广泛的分类算法之一。 朴素贝叶斯方法是在贝叶斯算法的基础上进行了相应的简化,即假定给定目标值时属性之间相互条件独立。也就是说没有哪个属性变量对于决策结果来说占有着较大的比重,也没有哪个属性变量对于决策结果占有着较小的比重。虽然这个简化方式在一定程度上降低了贝叶斯分类算法的分类效果,但是在实际的应用场景中,极大地简化了贝叶斯方法的复杂性。
如果觉得AI学习枯燥,可以选择看一下这个老哥做的网站,趣味性直接拉满>>人工智能教程
一、权衡利弊
- 优点:在数据较少的情况下仍然有效,可以处理多类别问题
- 缺点:对于输入数据的准备方式较为敏感
- 数据类型:标称型数据
- 应用:文本分类,垃圾邮件的分类,信用评估,钓鱼网站检测
二、整体感知
有两百名学生,情况如下
长裤 | 裙子 | |
---|---|---|
男 | 100 | 0 |
女 | 50 | 50 |
从远处又来了一名穿长裤的学生,仅从穿着判断该学生是男是女
首先计算出穿长裤且是男生的概率为100/150=2/3
其次计算出穿长裤且是女生的概率为50/150=1/3
2/3>1/3,因此我们估计该学生为男生
三、理论基础
- 先验概率:通过已知的数据计算出的概率。如“贝叶死”的发病率是万分之一
- 后验概率:根据当前已知的信息,去预测,所得出的概率。如某人患有“贝叶死”,患病原因可能是 A、B 或 C。则由于A而患病的概率即后验概率。它是属于条件概率的一种。
- 贝叶斯理论
p(c1|x, y) 意义为给定某个由x、y表示的数据点,那么该数据点来自类别c1的概率是多少? - 基本思想:先通过样本获取先验概率,再通过贝叶斯的相关公式计算后验概率,比较后验概率,最大的为分类的结果
四、具体实现过程及细节
#读取数据
import pandas as pd
skin=pd.read_csv(r'train.csv')
skin.z.value_counts()
#划分数据集
from sklearn import model_selection
X_train, X_test, Y_train, Y_test =model_selection.train_test_split(skin.iloc[:,:2],skin.z,test_size=0.25,random_state=1234)
#使用高斯分类器进行预测
from sklearn import naive_bayes
gnb=naive_bayes.GaussianNB()
gnb.fit(X_train,Y_train)
gnb_pred =gnb.predict(X_test)
pd.Series(gnb_pred).value_counts()
#构造混淆矩阵并得出准确率
from sklearn import metrics
cm=pd.crosstab(gnb_pred,Y_test)
print('准确率为\\n',metrics.accuracy_score(Y_test,gnb_pred))
以上是关于从零开始的AI·朴素贝叶斯?拿来吧你(附实例代码)的主要内容,如果未能解决你的问题,请参考以下文章