ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

一看就懂的教程:朴素贝叶斯

2022-02-25 23:00:17  阅读:206  来源: 互联网

标签:教程 acerous 分类 贝叶斯 GaussianNB 例子 朴素


虽然这篇是一看就懂的教程,但是仍然建议你有一些先修知识:

  1. 具有基本的数学素养:微积分,线性代数,统计学
  2. 具有简单的编程基础:了解一点Git和Github的知识,简单的Python知识

如果不具备以上条件的话,可以从以下一些入手:

网上有哪些学习微积分的好网站?

3Blue1Brown的线性代数和微积分视频

文科生想自学一点统计学,看哪些入门书籍比较好?

[Git] 简易Git使用指南

[Github] Github简易使用指南

[Python]手把手教程:Python制作番茄钟

当然如果你想直接看这篇文章做一个大概的了解,或者想一边看一边查漏补缺,哪里不会再学习哪里,也是OK的


监督分类Supervised Classification

首先我们熟悉一个概念,什么是”监督分类“,比方说现在有一个问题”马是acerous吗?“(你不必知道什么是acerous)

鉴于你并不知道什么acerous,那么这里有一些例子给你参考:

acerous:猫、兔子、猪、鹦鹉、大象

non-acerous:长颈鹿、犀牛、山羊

那么你现在知道马是不是acerous了呢?答错也没有关系,毕竟这里只有8个例子而已,如果给你10000个例子,你一定可以非常确定的说出马是不是acerous。

答案是:马是acerous,这个分类的标准就是看有没有角。好的,到这里你应该有点get到什么是监督分类了,根据一些特征(features)来进行分类。类似的例子还有根据某人的音乐喜好以及其所爱音乐的特点,比如节奏或流派推荐一首他们可能会喜欢的歌,也是监督分类

而对于我们不知道的特征,比方说从一组照片中找到某个特定的人,我们并没有很明确的一些特征来识别这个人,或者说特征实在是太多了,因此就不是监督分类

散点图

通过监督分类,我们知道了当我们需要处理一个新的情况的时候,需要首先明确过往例子的一些特征

我们再来看一个非常简单的例子:无人驾驶(这能叫一个简单的例子?看起来很难懂啊)

虽然无人驾驶很复杂,但是我们简化为一辆车在一片沙漠上,没有人,没有建筑,路面情况简化到只有两个特征:1坡度(Slope)2路面颠簸程度(Bumpness)

很明显,图中红圈的平坦不颠簸的情况对应散点图的红×位置

散点图可以帮助我们直观的观察数据,机器学习很重要的一个问题就是:给你一个全新的数据,通过对以往的数据的认识,对这个全新的数据进行预测

决策面

这个概念也非常的简单,现在你拿到的是如图的一个数据集,黑色的点是属于蓝色那一堆呢?还是红色那一堆呢?

好像不是很清楚哦。如果我们有了一个决策面就会很方便了

还回到刚刚的无人驾驶例子,共有750个数据,蓝色的点代表可以快速行驶,红色的点需要慢速行驶 :

特征 features:坡度(纵轴)、路面颠簸 (横轴)

标签 lables:快慢 (蓝色or红色的点)

这是它的决策面

Sklearn

Sklearn是一个非常有帮助的基于 Python 语言的机器学习工具。其中也包含我们本篇文章要介绍的朴素贝叶斯算法 Sklearn官方中文文档

朴素贝叶斯是一种非常简单的用于不同相互独立特征下的分类,之前我们讲到的决策面,或者说面对一个新的数据,如何进行分类都是用的朴素贝叶斯算法。

想要了解背后的公式原理可以看这篇博文 带你彻彻底底搞懂朴素贝叶斯公式,一点都不难的哦

由于我们要处理的是分类的问题,因此这里我们使用

朴素贝叶斯-高斯模型​scikit-learn.org/stable/modules/generated/sklearn.naive_bayes.GaussianNB.html#sklearn.naive_bayes.GaussianNB正在上传…重新上传取消

来,我们打开这个页面,翻到页面的example,下图就是关键代码的含义


Quiz

1.有关地形数据的GaussianNB部署

最后让我们做一个小小的测验来检查对前面知识的理解,这个quiz还是我们之前提到的无人车的模型

贝叶斯小测验​classroom.udacity.com/courses/ud120/lessons/2254358555/concepts/24196685390923

不要被这么多的代码吓到了,你只需要把ClassifyNB.py中的代码补上就好了,其他三个文件都不要更改,如果运行成功就会出现下面的图片,形成一个决策面

给你一个小提示朴素贝叶斯-高斯模型这里的example非常有用哦~

如果要查看答案

答案​github.com/CarolRen233/MachineLearning/blob/master/NaiveBayes/GaussianNB/ClassifyNB.py

2.计算GaussianNB的准确性

如果你完成了上面的Quiz,还可以继续计算GaussianNB的准确性哦,看看用预测的结果与实际的结果有多少是一致的。

Udacity​classroom.udacity.com/courses/ud120/lessons/2254358555/concepts/22853385400923

提示

1.features_test 和 labels_test 适用于测试的数据,可以先用features_test来进行预测,预测结果与labels_test进行对比

2.不妨用“sklearn accuracy”的关键词搜索一下,可以找到相关代码

答案​github.com/CarolRen233/MachineLearning/blob/master/NaiveBayes/GaussianNB/Classify.py

文章来源:[机器学习]一看就懂的教程:朴素贝叶斯 - 知乎

标签:教程,acerous,分类,贝叶斯,GaussianNB,例子,朴素
来源: https://blog.csdn.net/dfly_zx/article/details/123142688

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有