从零开始的AI·朴素贝叶斯?拿来吧你(附实例代码)
从零开始的AI系列
- 从零开始的AI·机器学习の基本概念
- 从零开始的AI·吃透kNN算法,学完我悟了(附实例代码)
- 从零开始的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·朴素贝叶斯?拿来吧你(附实例代码)相关推荐
- 朴素贝叶斯高斯模型_从零开始实现高斯朴素贝叶斯独立贝叶斯模型
朴素贝叶斯高斯模型 "Why is Google censuring me?!" Claire asked (true story). Sure, she's always bee ...
- java mllib 算法_朴素贝叶斯算法原理及Spark MLlib实例(Scala/Java/Python)
朴素贝叶斯 算法介绍: 朴素贝叶斯法是基于贝叶斯定理与特征条件独立假设的分类方法. 朴素贝叶斯的思想基础是这样的:对于给出的待分类项,求解在此项出现的条件下各个类别出现的概率,在没有其它可用信息下,我 ...
- 朴素贝叶斯进行新闻主题分类,有代码和数据,可以跑通
folder_path = '/Users/apple/Documents/七月在线/NLP/第2课/Lecture_2/Naive-Bayes-Text-Classifier/Database/So ...
- matlab贝叶斯判别后验概率,统计学习方法——朴素贝叶斯法、先验概率、后验概率(示例代码)...
朴素贝叶斯法,就是使用贝叶斯公式的学习方法,朴素就是它假设输入变量(向量)的各个分量之间是相互独立的.所以对于分量之间不独立的分布,如果使用它学习和预测效果就不会很好. 简化策略 它是目标是通过训练数 ...
- 机器学习算法-朴素贝叶斯(一):朴素贝叶斯简介和鸢尾花分类实战(代码附详细注释)
朴素贝叶斯 朴素贝叶斯的介绍 朴素贝叶斯算法(Naive Bayes, NB) 是应用最为广泛的分类算法之一.它是基于贝叶斯定义和特征条件独立假设的分类器方法.由于朴素贝叶斯法基于贝叶斯公式计算得到, ...
- 从零开始的AI·决策树原来这么好理解(附实例代码)
从零开始的AI系列 从零开始的AI·机器学习の基本概念 从零开始的AI·吃透kNN算法,学完我悟了(附实例代码) 从零开始的AI·朴素贝叶斯?拿来吧你(附实例代码) 文章目录 从零开始的AI系列 前言 ...
- 从零开始的AI·吃透kNN算法,学完我悟了(附实例代码)
从零开始的AI系列 从零开始的AI·机器学习の基本概念 从零开始的AI·决策树原来这么好理解(附实例代码) 从零开始的AI·朴素贝叶斯?拿来吧你(附实例代码) 文章目录 从零开始的AI系列 前言 一. ...
- 《机器学习实战》学习笔记(四) : 朴素贝叶斯的基本原理
在看了书.CSDN上的博客.B站上的视频后整理而成,超级感谢前辈提供的宝贵知识- Table of Contents 1 基础数学知识 1.1 条件概率公式 1.2 贝叶斯公式 1.3 全概率 ...
- 小白学习朴素贝叶斯——看即懂
申明:文章内容是作者自己的学习笔记,教学来源是开课吧讲师梁勇老师. 讲师介绍:梁老师 <细说Java>与<Java深入解析>图书作者.一线互联网资深数据分析专家,超过十年软件开 ...
最新文章
- BZOJ 2134 单选错位(数学期望)【BZOJ 修复工程】
- 如何自学python编程-如何教少儿学习Python编程
- 成功解决RuntimeError: Java is not installed, or the Java executable is not on system path
- React开发(145):目录规范:
- LeetCode 1490. 克隆 N 叉树(DFS/BFS)
- linux wifi pro6818,GEC6818连接Ubuntu,下载程序至开发板
- 三星Galaxy Note10+最后的爆料:配备更大的S-Pen手写笔
- JavaScript 数组的知识点讲解
- (翻译)Importing models-FBX Importer - Animations Tab
- 【CF Round #534 Div2】B:Game with string(水题,积累思路)
- 经验分享 | 关于NASA VIIRS数据
- RxJava 创建事件流
- 速达软件二次开发-百威直配单和速达销售开单对接
- 苹果app商品定价_iOS 开发_2017苹果内购价格表
- 【JAVA电子相册】
- signature=e5535ff98b93aa63c455611822dc57c2,Magnetoimpedance of metallic ferromagnetic wires
- 巧用Hive自带函数进行多字段分别去重计数统计
- 使用VS制作一个小游戏(五子棋)
- 当我print时,Python做了什么
- es6 将字符串转换为json_ES6-json与字符串的转换