申明:文章内容是作者自己的学习笔记,教学来源是开课吧讲师梁勇老师。

讲师介绍:梁老师 《细说Java》与《Java深入解析》图书作者。一线互联网资深数据分析专家,超过十年软件开发与培训经验。精通Python与Java开发,擅长网络爬虫,数据分析与可视化,机器学习,自然语言处理等技术。曾参与阿里云大学数据分析,机器学习,自然语言处理等课程开发与认证设计,担任阿里云学院导师。

进入正文:

上一篇博客我们学习了KNN(K最近邻)分类算法,主要学习KNN算法的原理和超参数,使用KNN实现分类与回归以及通过网格交叉验证调整超参数,还有数据标准化的作用等。
这一篇我们要学习的是朴素贝叶斯。
首先我们会先复习一下有关概率的基础知识,之后会引入朴素贝叶斯的学习。

朴素贝叶斯很直观,计算量也不大,在很多领域有广泛的应用,这里我们就对朴素贝叶斯简单了解一下:
朴素贝叶斯
在所有的机器学习分类算法中,朴素贝叶斯和其他绝大多数的分类算法都不同。对于大多数的分类算法,比如决策树,KNN,逻辑回归,支持向量机等,他们都是判别方法,也就是直接学习出特征输出Y和特征X之间的关系,要么是决策函数Y=f(X),要么是条件分布P(Y|X)。但是朴素贝叶斯却是生成方法,也就是直接找出特征输出Y和特征X的联合分布P(X,Y),然后P(Y|X)=P(X,Y)/P(X)得出。

朴素贝叶斯公式的核心思维:
将求解 P(B|A) 的概率转换成求解 P(A|B) 的概率。

下面让我们进入正文吧~

朴素贝叶斯

  • 1、知识要点
    • 1.1 概率基础
      • 1.1.1 随机事件
      • 1.1.2 样本空间
      • 1.1.3 概率
      • 1.1.4 联合概率
      • 1.1.5 条件概率
      • 1.1.6 独立性
        • 1.1.6.1 独立性现象
        • 1.1.6.2 独立性定义
      • 1.1.7 全概率公式
      • 1.1.8 贝叶斯公式
        • 1.1.8.1 公式定义
        • 1.1.8.2 核心思维
        • 1.1.8.3 相关示例
        • 1.1.8.4 先验概率与后验概率
      • 1.1.9 朴素贝叶斯分类
    • 2.1 朴素贝叶斯算法
      • 2.1.1 实际案例
      • 2.1.2 算法原理
      • 2.1.3 案例求解
      • 2.1.4 平滑改进
      • 2.1.5 算法优点
    • 3.1 常用朴素贝叶斯
      • 3.1.1 高斯朴素贝叶斯(连续变量&正态分布)
      • 3.1.2 伯努利朴素贝叶斯(离散变量&二项分布)
      • 3.1.3 多项式朴素贝叶斯(离散变量&多项式分布)
  • 2、总结

目标:

  • 熟悉条件概率,联合概率,独立性等概率基础内容。
  • 熟悉全概率公式与贝叶斯公式。
  • 能够熟知朴素贝叶斯算法原理。
  • 能够使用朴素贝叶斯算法实现分类任务

1、知识要点

1.1 概率基础

1.1.1 随机事件

随机事件,指可能发生,也可能不发生的事件。
例如,当我们抛硬币时,设出现正面为事件,则事件可能发生,也可能不发生。

1.1.2 样本空间

样本空间,即我们进行随机试验时,所有可能结果构成的集合。
习惯使用S表示。

1.1.3 概率

概率,用来反映一个随机事件出现的可能性大小。
习惯使用 P(A)来表示事件的概率。


从面积图的角度将,也可以这样表示:

1.1.4 联合概率

联合概率,指多个事件同时发生的概率,例如, P(AB) 表示事件A与事件B的联合概率。


1.1.5 条件概率

条件概率,指在事件A发生的前提下,事件B发生的概率,使用 P(B|A)表示。

关于条件概率,有以下一个重要的定义:

p(B|A) = P(AB) / P(A)
需要注意的是,P(B|A) 与 P(B) 是不同的,二者很可能也不相等。因为在事件A发生的前提下,会导致样本空间的收缩,从而会改变概率。


练习:
下表为水果店的购物清单,每条记录代表一名顾客购买的商品。

设事件A为购买苹果,事件B为购买桔子,则以下说法正确的是( ABCD )。【不定项】
A P(A) = 3/4
B P(B) = 1/2
C P(B|A) = 1/3
D P(A|B) = 1/2

解析: A选项,购买苹果的概率就是4类样本中有其中3类有苹果,所以购买苹果的概率是3/4。
B选项,4类样本中有2类有桔子,桔子的概率也就是2/4,就是1/2。 C选项,在购买苹果概率的基础上购买桔子的概率,就是1(桔子)/
3(苹果)。 D选项,在购买桔子概率的基础上购买苹果的概率,就是1(苹果)/ 2(桔子)。

1.1.6 独立性
1.1.6.1 独立性现象

从刚才的练习中,我们发现:

故事件或事件的发生,都对另外一个事件造成了影响。不过,有时候,事件之间可能并不存在相互影响,例如,我们考察两个学生的逃课情况,设事件为第一个学生逃课,事件为第二个学生逃课,则样本空间为:

第一个学生A 第二个学生B
逃课 逃课
逃课 不逃课
不逃课 逃课
逃课 不逃课

我们可以轻松计算事件的概率:

由此可知:

P(A) = P( A|B )
P(B) = P( B|A )

可见,事件与没有相互造成影响,这也是非常容易理解的。如果两个学生没有关系,则一个学生是否逃课,对另外一个学生是否逃课是没有任何影响的。

1.1.6.2 独立性定义

如果两事件, 满足:
P(AB) = P(A)P(B) 则称与相互独立
同时,又存在:
p(AB) = P(A)P(B|A)
因此,当两事件A,B独立时
P(A) P(B) = P(A) P(B|A)
P(B|A) = P(B)

这也表明,当两个事件独立时,一个事件发生与否,对另外一个事件完全没有任何影响。

练习:

1.1.7 全概率公式

设实验的样本空间为S, A为E的事件,B1 ,B2 ,…,Bn 为S的一个划分(任意两个事件交集为空,所以事件并集为整个样本空间S),且P(Bi) > 0(i=1,2,…,n ),则:

称为全概率公式。
有的时候, P(A) 可能不易求出,但是,我们可以在S上寻找一个划分(i=1,2,……),并且 Bi与P(A|Bi) 的概率容易获取,这样,我们就可以使用全概率公式来求解P(A)。

加深理解,做个练习吧:

已知小张逃课的概率是1 / 4,当小张逃课时,小李逃课的概率为1 / 2,当小张上课时,小李逃课的概率为1 / 3,请问小李逃课的概率是多少?(D
A 1 / 4
B 1 / 2
C 1 / 3
D 3 / 8
解析:计算方式=1/4 * 1/2 + 3/4 * 1/3 = 3/8

1.1.8 贝叶斯公式
1.1.8.1 公式定义

设实验的样本空间为S, A为E的事件,B1 ,B2 ,…,Bn 为S的一个划分,且P(A) > 0 ,P(Bi) >0 (i=1,2,…,n ),则:

贝叶斯公式:

这也是条件概率的计算公式。
推导过程:

1.1.8.2 核心思维

贝叶斯公式的核心思维就是将求解 P(B|A) 的概率转换成求解 P(A|B) 的概率。有时候,求解P(B|A)难度较大,但是求解P(A|B)比较容易,在这样的情况下,我们就可以考虑应用贝叶斯公式进行转换,从而解决问题。

1.1.8.3 相关示例

例:对以往数据分析结果表明,当机器调整得良好时,产品的合格率是为98%,而当机器发生某种故障时,其合格率为55%。每天早上机器开动时,机器调整良好的概率为95%。试求已知某日早上第一件产品是合格品时,机器调整良好的概率是多少?

解:设A为事件“产品合格”,B 为事件“机器调整良好”,则B为事件“机器发生故障”。

解析:
这是一个条件概率的题。我们要在第一件产品是合格品的基础上去计算机器调整良好的概率是多少,也就是算以A为条件下B发生的概率。
根据提议我们无法计算以A为条件下B发生的概率,此时,我们就要换种思维,根据贝叶斯公式的核心思维,我们可以计算以B为条件下A发生的概率。

通过转换,我们现在只需求解P(A|B)P(B) / P(A)即可。 根据题意,机器良好产品合格的概率为98%,也就是P(A|B)=98%;
每天早上机器开动时,机器调整良好的概率为95%,也就是P(B)=95%;
因为P(A)我们不知道该怎么求,所以我们这里可以用全概率公式进行转换,转换成样本空间,即机器调整良好和机器发生故障;
P(A)----》》

= 机器良好时产品合格的概率(0.98) * 机器良好的概率(0.95) + 机器发生故障时产品合格的概率 (55%) * 机器发生故障的概率( 1-95%)

1.1.8.4 先验概率与后验概率

由以往的数据分析而得到的概率,称为先验概率。例如在上例中,每天早上机器开动时,机器调整良好的概率为95%,这个概率(即P(A))就是先验概率。

当得到某些信息后,在先验概率的基础上进行修正,从而得到的概率,称为后验概率。例如在上例中,当已知某日早上第一件产品是合格品时,机器调整良好的概率是97%,这个概率(P(B|A) )就是后验概率。

1.1.9 朴素贝叶斯分类

贝叶斯原理、贝叶斯分类和朴素贝叶斯这三者之间是有区别的:
贝叶斯原理是最大的概念,它解决了概率论中“逆向概率”的问题,在这个理论基础上,人们设计出了贝叶斯分类器,朴素贝叶斯分类是贝叶斯分类器中的一种,也是最简单,最常用的分类器。朴素贝叶斯之所以朴素是因为它假设属性是相互独立的,因此对实际情况有所约束,如果属性之间存在关联,分类准确率会降低。 不过好在对于大部分情况下,朴素贝叶斯的分类效果都不错。

2.1 朴素贝叶斯算法

朴素贝叶斯算法基于概率的分类算法,之所以称为“朴素”,是因为其假设特征之间是独立的,该算法设计比较简单,实际上使用的就是全概率公式与贝叶斯公式。朴素贝叶斯算法在文本场景中效果非常好,例如垃圾邮件过滤,新闻分类,情感分析等。

2.1.1 实际案例

之前,我们已经介绍了全概率公式与贝叶斯公式,现在,我们将这两个公式应用于朴素贝叶斯算法中,实现分类任务。假设我们有如下的数据集:

由以上数据集我们可以看出特征之间是相互独立的,我们要通过训练数据集得到一种模式老预测分类上课情况是上课还是逃课。
该数据集展示在不同的条件下,学生的上课与逃课情况。现在问题是,对于第11条记录,学生会上课还是逃课?
即我们可以使用朴素贝叶斯方式来解决我们的问题。

2.1.2 算法原理

之前我们提过,朴素贝叶斯是基于概率的分类算法,因此,想要预测未知样本X所属的类别,只需要计算属于每个类别( y )的概率是多少,预测结果就是概率最大的那个类别。 以上例来讲,就是比较:哪个概率大。

假设X含有n个特征(上面的示例中含有4个特征:天气、上课距离、学生成绩、上课类别),即我们要计算:

然而,以上的概率我们并不容易求解,不过,根据贝叶斯公式,我们可以进行如下的转换:P(y | x1,x2,…,xn) ------>> P(x1,x2,…,xn | y)

因为朴素贝叶斯算法的前提假设为,各个特征之间都是独立的
P(xy) = P(x)P(y)),因此有:

因此,将(2)式代入(1)式,可得:

我们发现,无论是计算样本属于哪个类别的概率,分母部分都是不变的,因此,比较概率的大小,只需要比较分子部分就可以了。

故算法最终预测的类别,就是能够使得分子部分最大的那个类别,即:

从公式中,我们容易发现,若要预测样本的类别,只需要求解P(y)与P(xi | y)即可。而这两个概率,都可以从训练集中获取。
例如:求解上课基础上是晴天的概率是多少?P(晴天 | 上课) =2/5

2.1.3 案例求解

对于样本11,我们就可以分别计算下,在上课与逃课的情况下,各自的概率值是多少。

由此,我们可知,学生逃课的概率,大于上课的概率,因此,最终算法对样本11预测的结果类别为:逃课。

但是,我们根据求解出来上课和逃课的概率之和不等于1这是怎么回事呢?
因为,我们计算的时候只计算了分子,没有带上分母一起计算,如果加上分母一起计算的话得出来的概率之和是肯定为1的。

2.1.4 平滑改进

当我们以同样的方式,试图计算样本12所属的类别时,会出现一点小问题。那就是P(xi = 远 | y = 上课)的值为0。由于在计算时,是各个概率的乘积,因此,一旦有一个概率为0,即使其他的概率值较大,也一律会得到0值。这会严重影响预测的准确性,为了避免这种情况的发生,我们在计算概率时,采用平滑改进。

其中,k 为特征xi可能的取值数, α(α>0 )称为平滑系数,当α=1时,称为拉普拉斯平滑(Laplace smoothing),当α<1时,称为Lidstone smoothing平滑。

2.1.5 算法优点

相对于其他算法,朴素贝叶斯算法具有如下优势:

  • 即使训练集数据较少,也能够实现预测,并且效果不错。
  • 算法的训练速度非常快。

这是因为,算法假设特征之间是独立的,这意味着每个特征可以单独当成一维分布而进行评估,无需考虑与其他特征之间的关联性。反之,如果特征之间不独立,则为了获得较准确的数据分布,就需要更多的训练样本。假设训练集中的含有N个特征,每个特征需要个M样本来训练,则总共需要的样本数为各自样本之间的笛卡尔积,即M的N次,这在很大时,训练会非常缓慢,然而,如果特征之间独立,对于每个特征,就可以单独进行考虑,总共只需要N*M个样本就可以正常训练。

练习:

关于朴素贝叶斯算法,说法正确的是( ABCD)【不定项】
A 朴素贝叶斯算法是基于概率的分类算法。
B 朴素贝叶斯算法之所以“朴素”,是因为该算法前提假设各个特征是独立的。
C 朴素贝叶斯算法训练速度较快。
D 朴素贝叶斯算法在较少的训练样本集上,也可能工作的很好。

3.1 常用朴素贝叶斯

在sklearn中,提供了若干种朴素贝叶斯的实现算法,不同的朴素贝叶斯算法,主要是对 P(xi | y) 的分布假设不同,进而采用不同的参数估计方式。实际上,通过之前的介绍,我们也应该能够发现,朴素贝叶斯算法,主要就是计算P(xi | y) ,一旦确定P(xi | y) ,最终属于每个类别的概率,自然也就迎刃而解了。

常用的三种朴素贝叶斯为:

  • 高斯朴素贝叶斯。
  • 伯努利朴素贝叶斯。
  • 多项式朴素贝叶斯。
3.1.1 高斯朴素贝叶斯(连续变量&正态分布)


高斯朴素贝叶斯,适用于连续变量。
其假定各个特征xi在各个类别y下是服从正态分布。
算法内部使用正态分布的概率密度函数来计算概率P(xi | y),如下:

import numpy as np
import pandas as pd
from sklearn.naive_bayes import GaussianNB  #高斯朴素贝叶斯np.random.seed(0) # 设计一个随机种子
X = np.random.randint(0, 10, size=(6, 2)) #生成0-10之间的随机数,6行2列的形式(6个样本2个特征)
y = np.array([0, 0, 0, 1, 1, 1]) # 前3个样本是0类别,后三个样本是1类别
data = pd.DataFrame(np.concatenate([X, y.reshape(-1, 1)], axis=1), columns=["x1", "x2", "y"])
display(data)gnb = GaussianNB()
gnb.fit(X, y)
# 每个类别的先验概率。P(y)
print("概率:", gnb.class_prior_)
# 每个类别样本的数量。
print("样本数量:", gnb.class_count_)
# 每个类别的标签。
print("标签", gnb.classes_)
# 每个特征在每个类别下的均值。
print("均值:", gnb.theta_)
# 每个特征在每个类别下的方差。
print("标准差:", gnb.sigma_)# 测试集
X_test = np.array([[6, 3]])
print("预测结果:", gnb.predict(X_test))
print("预测结果概率:",gnb.predict_proba(X_test))

结果:

3.1.2 伯努利朴素贝叶斯(离散变量&二项分布)

设实验只有两个可能的结果:
伯努利朴素贝叶斯,适用于离散变量,其假设各个特征xi 在各个类别y下是服从n 重伯努利分布(二项分布)的,因为伯努利试验仅有两个结果,因此,算法会首先对特征值进行二值化处理(假设二值化的结果为1与0)。即,大于0的认为是1,小于等于0的认为是0。
P(xi | y)计算方式如下:

在训练集中,会进行如下的估计:


因为在数据集中,只有两种取值(1与0),因此,对于给定的类别与特征,只需要计算P(xi =1 | y)就可以了,而P(xi = 0 | y)的概率,用1减去P(xi =1 | y)即可得出。

from sklearn.naive_bayes import BernoulliNB   # 伯努利朴素贝叶斯np.random.seed(0)
X = np.random.randint(-5, 5, size=(6, 2))
y = np.array([0, 0, 0, 1, 1, 1])
data = pd.DataFrame(np.concatenate([X, y.reshape(-1, 1)], axis=1), columns=["x1", "x2", "y"])
display(data)
bnb = BernoulliNB()
bnb.fit(X, y)
# 每个特征在每个类别下发生(出现)的次数。因为伯努利分布只有两个值,
# 我们只需要计算出现的概率P(x=1|y),不出现的概率P(x=0|y)使用1减去P(x=1|y)即可。
print("数值1出现次数:", bnb.feature_count_)
# 每个类别样本所占的比重,即P(y)。注意,该值为概率取对数之后的结果,如果需要查看
# 原有的概率,需要使用指数还原。
print("类别占比p(y):", np.exp(bnb.class_log_prior_))
# 每个类别下,每个特征(值为1)所占的比例(概率),即P(x|y)。注意,该值为概率
#取对数之后的结果,如果需要查看原有的概率,需要使用指数还原。
print("特征概率:", np.exp(bnb.feature_log_prob_))

结果:


数值1出现的次数:当y类别为0的时候,x1和x2大于0的有两个,即[1,1];
类别y为1的时候,x1和x2大于0的也分别只有1个,所以[1,1]。
大于1 代表1发生的概率,没有大于1 就是0发生的概率。

特征概率:即P(x=1 | y)
P(x1=1 | y=0)
P(x1=2 | y=0)
P(x1=1 | y=1)
P(x1=2 | y=1)
我们来计算其中一个,y=0时,x1=1的概率。

那结果为什么是0.4呢,因为我们默认情况下有拉普拉斯平滑α,即:
(1+α) / (3+k*α) = (1+1) / (3+2) = 1/4 ,(k在伯努利朴素贝叶斯中固定为2)。
其他的都是一样的计算方式。

3.1.3 多项式朴素贝叶斯(离散变量&多项式分布)

多项式朴素贝叶斯,适用于离散变量,其假设各个特征在各个类别下是服从多项式分布的,故每个特征值不能是负数
计算数量个数。
P(xi | y)计算如下:

from sklearn.naive_bayes import MultinomialNB  # 多项式朴素贝叶斯np.random.seed(0)
X = np.random.randint(0, 4, size=(6, 2))
y = np.array([0, 0, 0, 1, 1, 1])
data = pd.DataFrame(np.concatenate([X, y.reshape(-1, 1)], axis=1), columns=["x1", "x2", "y"])
display(data)mnb = MultinomialNB()
mnb.fit(X, y)
# 每个类别的样本数量。
print("每个类别的样本数量:",mnb.class_count_)
# 每个特征在每个类别下发生(出现)的次数。
print("每个特征在每个类别下发生(出现)的次数:",mnb.feature_count_)
# 每个类别下,每个特征所占的比例(概率),即P(x|y)。注意,该值为概率
# 取对数之后的结果,如果需要查看原有的概率,需要使用指数还原。
print("每个特征所占的比例(概率):",np.exp(mnb.feature_log_prob_))

结果:


每个特征在每个类别下发生(出现)的次数:
当y=0时,x1出现1+3=4次;
当y=0时,x2出现3+3=6次;
当y=1时,x1出现3+1+1=5次;
当y=1时,x2出现3+3+2=8次。
即[4,6],[5,8]

每个类别下,每个特征所占的比例(概率),即P(x|y)。
我们举其中一个例子来说明:
当y=0时,x1=1的概率,即P(x1=1 | y=0):
当y=0时,所有特征发生了0+1+3+3+0+3=10次,x1出现0+1+3=4次,所以是4/10=0.4,但是结果是0.41666667,因为还有拉普拉斯平滑,即(4+α)/ (10 + αn) = (4+1)/ (10+12)=5/12=0.41666667。
其他概率计算方式一样。

练习:

如果对鸢尾花数据集进行分类,哪种朴素贝叶斯算法效果可能会更好?( A
A 高斯朴素贝叶斯
B 伯努利朴素贝叶斯
C 多项式朴素贝叶斯
D 差不多
鸢尾花数据集是连续性数据并且服从正态分布,所以选择高斯朴素贝叶斯更合适。

我么通过代码来检验下对于鸢尾花数据集来说哪一种方式会更好:

from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_splitX, y = load_iris(return_X_y=True)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=0)models = [("多项式朴素贝叶斯:", MultinomialNB()),
("高斯朴素贝叶斯:", GaussianNB()), ("伯努利朴素贝叶斯:", BernoulliNB())]
for name, m in models:m.fit(X_train, y_train)print(name, m.score(X_test, y_test))

结果:

可以看到,高斯朴素贝叶斯的效果是最好的。

2、总结

  • 概率基础的相关概念。
  • 全概率公式与贝叶斯公式。
  • 朴素贝叶斯算法原理。
  • 拉普拉斯平滑。

参考学习链接:
https://www.cnblogs.com/pinard/p/6069267.html
https://blog.csdn.net/qiu_zhi_liao/article/details/90671932

小白学习朴素贝叶斯——看即懂相关推荐

  1. 使用Sklearn学习朴素贝叶斯算法

    目录 1,sklearn中的贝叶斯分类器 1.1,高斯朴素贝叶斯GaussianNB 1.1.1,认识高斯朴素贝叶斯 1.1.2,参数说明 1.1.3,高斯朴素贝叶斯建模案例 1.1.4,探索高斯朴素 ...

  2. 无监督学习------分类学习-----朴素贝叶斯(navie bayes)

    朴素贝叶斯是一个实用性很强的分类模型,不过线性分类器和支持向量机分类器(基于线性假设的模型)不同,朴素贝叶斯的构造基础是贝叶斯理论 这个模型的基本数学假设是:各个维度上的特征被分类的条件概率之间是相互 ...

  3. sklearn学习-朴素贝叶斯(二)

    文章目录 一.概率类模型的评估指标 1.布里尔分数Brier Score 对数似然函数Log Loss 二. calibration_curve: 校准可靠性曲线 三.多项式朴素贝叶斯以及其变化 四. ...

  4. sklearn学习-朴素贝叶斯

    文章目录 一.概述 1.真正的概率分类器 2.sklearn中的朴素贝叶斯 二.不同分布下的贝叶斯 1.高斯朴素贝叶斯GaussianNB 2.探索贝叶斯:高斯朴素贝叶斯擅长的数据集 3.探索贝叶斯: ...

  5. Spark MLlib 源码学习---朴素贝叶斯模型(Naive Bayes)

    朴素贝叶斯是机器学习中比较常用的一种模型,尤其在文本分类的问题上是比较常用的baseline.朴素贝叶斯本身训练速度快,具有可并行化程度高,可解释性好的优点,但由于其对特征之间的独立性假设不是很符合某 ...

  6. 机器学习笔记 - 学习朴素贝叶斯概念及应用

    一.思想概述         贝叶斯分类算法是一大类分类算法的总称:贝叶斯分类算法以样本可能属于某类的概率来作为分类依据:朴素贝叶斯分类算法是贝叶斯分类算法中最简单的一种. 朴素贝叶斯分类器是一种用于 ...

  7. 机器学习之朴素贝叶斯学习笔记

    朴素贝叶斯 一.概述 朴素贝叶斯算法是有监督的学习算法,解决的是分类问题,如客户是否流失.是否值得投资.信用等级评定等多分类问题.该算法的优点在于简单易懂.学习效率高.在某些领域的分类问题中能够与决策 ...

  8. 学习笔记——Kaggle_Digit Recognizer (朴素贝叶斯 Python实现)

    本文是个人学习笔记,该篇主要学习朴素贝叶斯算法概念,并应用sklearn.naive_bayes算法包解决Kaggle入门级Digit Recognizer. 贝叶斯定理 朴素贝叶斯 Python 代 ...

  9. 《机器学习实战》学习笔记(四):基于概率论的分类方法 - 朴素贝叶斯

    欢迎关注WX公众号:[程序员管小亮] [机器学习]<机器学习实战>读书笔记及代码 总目录 https://blog.csdn.net/TeFuirnever/article/details ...

最新文章

  1. opencv4.4的下载与安装(1)
  2. django之模板语法
  3. NTU 课程笔记13:线性规划(对偶性)
  4. 6.关于QT中的内存管理,动态的制作,动态库的调用,静态库的制作
  5. 一个html多个html文件怎么打开网页,Firefox如何单窗口多页面浏览
  6. 介绍一个轻量级iOS安全框架:SSKeyChain
  7. docker run
  8. matlab中asix off_遗传算符MATLAB程序-入门必看
  9. Rust: 如何交换Vec类型中数据的位置?
  10. 使用PGP加密软件实现电子邮件的安全传输
  11. 互联网日报 | 6月13日 星期日 | 腾讯开展“饭圈乱象”专项整治;端午档单日放映场次刷新纪录;湖北取消除武汉外落户限制...
  12. 关于Python绘制正态分布图(概率密度分布)以及遇到的问题(label无法显示)
  13. 红蜘蛛5屏幕测试软件,红蜘蛛5校色仪怎么用?显示器校色及测试色域和色彩精准度详细教程(2)...
  14. 数据中心安全域的设计和划分
  15. 多旋翼无人机ROSC++开发例程(一):环境配置
  16. 阿里巴巴内部不再公开“P”序列职级
  17. 叮叮 算法数据结构(一)
  18. C++的一个指针占内存几个字节?
  19. Json 实现数据添加/更新 的页面效果
  20. JavaScript百炼成仙 后续章节

热门文章

  1. ACM(词汇+词组+句子)
  2. lisp 角平分线_证明冯奥贝尔定理的3种方法
  3. Java面向对象程序设计(第二版)袁绍欣 第九章课后习题答案
  4. 变压器的阻抗匹配作用
  5. 大厂林立,思必驰推可定制开发语音交互技术!
  6. linux启动redis进程,Linux安装Redis实现过程及报错解决方案
  7. Ubuntu 18.04 vscode安装网易云音乐插件
  8. 阵列信号DOA估计系列(一).概述
  9. php毕业设计题目课题选题之php购物商城系统(1)开题报告
  10. 基于JAVA的TCP网络QQ聊天工具系统