03 朴素贝叶斯方法
一、概述
1、基本原理
朴素贝叶斯法(navie Bayes)法式基于贝叶斯定理与特征条件独立假设的分类方法。朴素贝叶斯法是一种基于属性集和类变量的概率关系建模方法。对于给定的训练数据集,首先基于特征条件独立假设学习输入和输出的联合概率分布,然后基于此模型,对给定的输入x,利用贝叶斯定理求出后验概率,将最大后验概率的类作为x的类别,由此求得输出y。
本文介绍朴素贝叶斯分类器的由来。首先介绍贝叶斯定理,它是一种把类的先验知识与从数据中收集的新证据相结合的统计原理;然后解释贝叶斯定理在分类问题中的应用,接下来介绍两种参数估计方法;最后我们梳理一下朴素贝叶斯分类器的实现过程。
朴素贝叶斯法是一种简单高效的方法,学习和预测的效率都很高,是一种常用的方法。
二、朴素贝叶斯法的学习与分类
1、符号
输入空间:X∈Rn\mathcal{X} \in R^nX∈Rn,为n维向量的集合。
输出空间*Y={c1,c2,⋯,cK}\mathcal{Y} = \{c_1,c_2,\cdots,c_K\}Y={c1,c2,⋯,cK}
输入为特征向量:x∈Xx\in \mathcal{X}x∈X:
输出为类的标签:y∈Yy \in \mathcal{Y}y∈Y
X:定义在输入空间X\mathcal{X}X上的随机向量
Y:定义在输出空间Y\mathcal{Y}Y上的随机变量
P(X,Y):联合概率分布<先验概率分布&条件概率分布>
T:训练数据集<由P(X,Y)P(X,Y)P(X,Y)独立同分布产生>
xi=(xi(1),xi(2),⋯,xi(n))T,xi(j)是第i个样本的第j个特征xi(n)∈{aj1,aj2,⋯,ajSi},ajl是第j个特征可能取的第l个值j=1,2,⋯,n;l=1,2,⋯,Sj;yi∈{c1,c2,⋯,cK};x为实例\begin{aligned} & x_i = (x_i^{(1)},x_i^{(2)},\cdots,x_i^{(n)})^T\quad ,\quad x_i^{(j)}是第i个样本的第j个特征\\ & x_i^{(n)} \in \{a_{j1},a_{j2},\cdots,a_{jS_i}\}\quad ,\quad a_{j\mathcal{l}}是第j个特征可能取的第\mathcal{l}个值\\ & j = 1,2,\cdots,n;\quad \mathcal{l} = 1,2,\cdots,S_j;\quad y_i \in \{c_1,c_2,\cdots,c_K\};\quad x为实例 \end{aligned} xi=(xi(1),xi(2),⋯,xi(n))T,xi(j)是第i个样本的第j个特征xi(n)∈{aj1,aj2,⋯,ajSi},ajl是第j个特征可能取的第l个值j=1,2,⋯,n;l=1,2,⋯,Sj;yi∈{c1,c2,⋯,cK};x为实例
2、贝叶斯定理
先讲一些基础的概率知识和定义:
(1)联合概率分布
假设XXX,YYY是一对随机变量,他们的联合概率P(X,Y)是指X取值x且Y取值yP(X,Y)是指X取值x且Y取值yP(X,Y)是指X取值x且Y取值y的概率。先验概率是指一组随机变量取某一特定值的概率,条件概率是指一随机变量在另一随机变量取值已知的情况下取某一特定值的概率。例如,先验概率是值Y取值y的概率;条件概率P(X=x∣Y=y)P(X=x|Y=y)P(X=x∣Y=y)是指YYY取yyy的条件下,XXX取值xxx的概率:
- 先验概率分布
P(Y=ck)(1)P(Y = c_k) \tag{1} P(Y=ck)(1)
- 条件概率分布
P(X=x∣Y=ck)=P(X(1)=x(1),⋯,X(n)=x(n)∣Y=ck)(2)P(X = x|Y = c_k) = P(X^{(1)} = x^{(1)},\cdots,X^{(n)} = x^{(n)}|Y=c_k) \tag{2} P(X=x∣Y=ck)=P(X(1)=x(1),⋯,X(n)=x(n)∣Y=ck)(2)
联合概率分布满足下列条件:
P(X,Y)=P(Y∣X)P(X)=P(Y)P(X∣Y)(3)P(X,Y) = P(Y|X)P(X) = P(Y)P(X|Y) \tag{3} P(X,Y)=P(Y∣X)P(X)=P(Y)P(X∣Y)(3)
(2)贝叶斯定理
调整公式(3)的最后两个表达式得到贝叶斯定理:
P(Y∣X)=P(X,Y)P(X)=P(Y)(P(X∣Y)P(X)P(Y=ck∣X=x)=P(X=x∣Y=ck)P(Y=ck)∑KP(X=x∣Y=ck)P(Y=ck)(4)\begin{aligned} &P(Y|X) = \frac{P(X,Y)}{P(X)}= \frac{P(Y)(P(X|Y)} {P(X)} \\ &P(Y=c_k|X=x) = \frac{P(X=x|Y=c_k)P(Y=c_k)}{\sum\limits_{K}P(X=x|Y=c_k)P(Y=c_k)} \tag{4} \end{aligned} P(Y∣X)=P(X)P(X,Y)=P(X)P(Y)(P(X∣Y)P(Y=ck∣X=x)=K∑P(X=x∣Y=ck)P(Y=ck)P(X=x∣Y=ck)P(Y=ck)(4)
3、特征条件独立假设
P(X=x∣Y=ck)=∏j=1nP(X(j)=x(j)∣Y=ck)(5)P(X = x|Y = c_k) = \prod_{j=1}^nP(X^{(j)} = x^{(j)}|Y=c_k) \tag{5} P(X=x∣Y=ck)=j=1∏nP(X(j)=x(j)∣Y=ck)(5)
4、朴素贝叶斯法的学习
基于特征独立假的贝叶斯定理就是我们需要的朴素贝叶斯,其基本公式由贝叶斯定理(4)和条件独立假设(5)联合得到朴素贝叶斯基本公式:
P(Y=ck∣X=x)=P(Y=ck)∏jP(X(j)=x(j)∣Y=ck)∑KP(Y=ck)∏jP(X(j)=x(j)∣Y=ck),k=1,2,⋯,K(6)P(Y=c_k|X=x) = \frac{P(Y=c_k)\prod\limits_{j}P(X^{(j)}=x^{(j)}|Y=c_k)}{\sum\limits_{K}P(Y=c_k)\prod\limits_{j}P(X^{(j)}=x^{(j)}|Y=c_k)}\quad,\quad k=1,2,\cdots,K \tag{6} P(Y=ck∣X=x)=K∑P(Y=ck)j∏P(X(j)=x(j)∣Y=ck)P(Y=ck)j∏P(X(j)=x(j)∣Y=ck),k=1,2,⋯,K(6)
朴素贝叶法用P(Y∣X)P(Y|X)P(Y∣X)以概率的方式捕捉X和Y之间的关系。P(Y∣X)P(Y|X)P(Y∣X)又被称为后验概率,与之对应的P(Y)P(Y)P(Y)称为Y的先验概率。
5、朴素贝叶斯分类器
朴素贝叶斯法是基于联合概率模型,对给定的输入x,利用贝叶斯原理将最大后验概率的类别作为输出y:
y=f(x)=argmaxckP(Y=ck)∏jP(X(j)=x(j)∣Y=ck)∑KP(Y=ck)∏jP(X(j)=x(j)∣Y=ck),k=1,2,⋯,Ky=argmaxckP(Y=ck)∏jP(X(j)=x(j)∣Y=ck)(7)\begin{aligned} &y = f(x) =\arg \max_{c_k}\frac{P(Y=c_k)\prod\limits_{j}P(X^{(j)}=x^{(j)}|Y=c_k)}{\sum\limits_{K}P(Y=c_k)\prod\limits_{j}P(X^{(j)}=x^{(j)}|Y=c_k)}\quad,\quad k=1,2,\cdots,K\\ &y =\arg \max_{c_k}P(Y=c_k)\prod\limits_{j}P(X^{(j)}=x^{(j)}|Y=c_k) \end{aligned} \tag{7} y=f(x)=argckmaxK∑P(Y=ck)j∏P(X(j)=x(j)∣Y=ck)P(Y=ck)j∏P(X(j)=x(j)∣Y=ck),k=1,2,⋯,Ky=argckmaxP(Y=ck)j∏P(X(j)=x(j)∣Y=ck)(7)
⚠️注:
由于上式中的分母∑KP(Y=ck)∏jP(X(j)=x(j)∣Y=ck)\sum\limits_{K}P(Y=c_k)\prod\limits_{j}P(X^{(j)}=x^{(j)}|Y=c_k)K∑P(Y=ck)j∏P(X(j)=x(j)∣Y=ck)对所有的ckc_kck都是一样的,所以整体最大化相当于分子最大化。
朴素贝叶斯法是通过训练数据集学习联合概率分布P(X,Y)P(X,Y)P(X,Y)的。具体来说,就是学习先验概率分布和条件概率分布。
三、朴素贝叶斯法的参数估计算法
1、极大似然估计算法
(1)先验概率的极大似然估计
P(Y=ck)=∑i=1NI(yi=ck)N,k=1,2,⋯,K(8)P(Y = c_k) = \frac{\sum\limits_{i = 1}^NI(y_i = c_k)}{N}\quad ,\quad k = 1,2,\cdots,K \tag{8} P(Y=ck)=Ni=1∑NI(yi=ck),k=1,2,⋯,K(8)
(2)条件概率的极大似然估计
P(X(j)=x(j)∣Y=ck)=∑i=1NI(xi(j)=ajl,yi=ck)∑i=1NI(yi=ck))j=1,2,⋯,n;l=1,2,⋯,Sj;k=1,2,⋯,K(9)\begin{aligned} &P(X^{(j)}=x^{(j)}|Y=c_k) =\frac{\sum\limits_{i = 1}^NI(x_i^{(j)} = a_{jl},y_i=c_k)}{\sum\limits_{i = 1}^NI(y_i = c_k))}\\ &j = 1,2,\cdots,n;\quad l = 1,2,\cdots,S_j;\quad k=1,2,\cdots,K \end{aligned} \tag{9} P(X(j)=x(j)∣Y=ck)=i=1∑NI(yi=ck))i=1∑NI(xi(j)=ajl,yi=ck)j=1,2,⋯,n;l=1,2,⋯,Sj;k=1,2,⋯,K(9)
2、贝叶斯估计算法
(1)先验概率的贝叶斯估计
P(Y=ck)=∑i=1NI(yi=ck)+λN+Kλk=1,2,⋯,K;λ>0(10)\begin{aligned} &P(Y = c_k) = \frac{\sum\limits_{i = 1}^NI(y_i = c_k)+\lambda}{N+K\lambda}\\ &k = 1,2,\cdots,K;\quad \lambda>0 \end{aligned}\tag{10} P(Y=ck)=N+Kλi=1∑NI(yi=ck)+λk=1,2,⋯,K;λ>0(10)
(2)条件概率的贝叶斯估计
P(X(j)=x(j)∣Y=ck)=∑i=1NI(xi(j)=ajl,yi=ck)+λ∑i=1NI(yi=ck))+Sjλj=1,2,⋯,n;l=1,2,⋯,Sj;k=1,2,⋯,K;λ>0(11)\begin{aligned} &P(X^{(j)}=x^{(j)}|Y=c_k) =\frac{\sum\limits_{i = 1}^NI(x_i^{(j)} = a_{jl},y_i=c_k)+\lambda}{\sum\limits_{i = 1}^NI(y_i = c_k))+S_j\lambda}\\ &j = 1,2,\cdots,n;\quad l = 1,2,\cdots,S_j;\quad k=1,2,\cdots,K;\quad \lambda>0 \end{aligned}\tag{11} P(X(j)=x(j)∣Y=ck)=i=1∑NI(yi=ck))+Sjλi=1∑NI(xi(j)=ajl,yi=ck)+λj=1,2,⋯,n;l=1,2,⋯,Sj;k=1,2,⋯,K;λ>0(11)
(3)拉普拉斯平滑
我们常使贝叶斯估计的参数λ=1\lambda = 1λ=1,此时称为拉普拉斯平滑。
四、实现过程
1、通过训练数据集学习联合概率分布
(1)先验概率和条件概率的极大似然估计
P(Y=ck)=∑i=1NI(yi=ck)NP(X(j)=x(j)∣Y=ck)=∑i=1NI(xi(j)=ajl,yi=ck)∑i=1NI(yi=ck))j=1,2,⋯,n;l=1,2,⋯,Sj;k=1,2,⋯,K\begin{aligned} &P(Y = c_k) = \frac{\sum\limits_{i = 1}^NI(y_i = c_k)}{N}\\ &P(X^{(j)}=x^{(j)}|Y=c_k) =\frac{\sum\limits_{i = 1}^NI(x_i^{(j)} = a_{jl},y_i=c_k)}{\sum\limits_{i = 1}^NI(y_i = c_k))}\\ &j = 1,2,\cdots,n;\quad l = 1,2,\cdots,S_j;\quad k=1,2,\cdots,K \end{aligned} P(Y=ck)=Ni=1∑NI(yi=ck)P(X(j)=x(j)∣Y=ck)=i=1∑NI(yi=ck))i=1∑NI(xi(j)=ajl,yi=ck)j=1,2,⋯,n;l=1,2,⋯,Sj;k=1,2,⋯,K
(2)先验概率和条件概率的拉普拉斯平滑估计
Pλ(Y=ck)=∑i=1NI(yi=ck)+λN+KλPλ(X(j)=x(j)∣Y=ck)=∑i=1NI(xi(j)=ajl,yi=ck)+λ∑i=1NI(yi=ck))+Sjλj=1,2,⋯,n;l=1,2,⋯,Sj;k=1,2,⋯,K;λ>0\begin{aligned} &P_\lambda(Y = c_k) = \frac{\sum\limits_{i = 1}^NI(y_i = c_k)+\lambda}{N+K\lambda}\\ &P_\lambda(X^{(j)}=x^{(j)}|Y=c_k) =\frac{\sum\limits_{i = 1}^NI(x_i^{(j)} = a_{jl},y_i=c_k)+\lambda}{\sum\limits_{i = 1}^NI(y_i = c_k))+S_j\lambda}\\ &j = 1,2,\cdots,n;\quad l = 1,2,\cdots,S_j;\quad k=1,2,\cdots,K;\quad \lambda>0 \end{aligned} Pλ(Y=ck)=N+Kλi=1∑NI(yi=ck)+λPλ(X(j)=x(j)∣Y=ck)=i=1∑NI(yi=ck))+Sjλi=1∑NI(xi(j)=ajl,yi=ck)+λj=1,2,⋯,n;l=1,2,⋯,Sj;k=1,2,⋯,K;λ>0
2、计算给定输入x的后验概率
P(Y=ck)∏jnP(X(j)=x(j)∣Y=ck),k=1,2,⋯,KP(Y=c_k)\prod\limits_{j}^nP(X^{(j)}=x^{(j)}|Y=c_k)\quad ,\quad k=1,2,\cdots,K P(Y=ck)j∏nP(X(j)=x(j)∣Y=ck),k=1,2,⋯,K
3、确定给定输入的类别–最大后验概率的类别
y=argmaxckP(Y=ck)∏jP(X(j)=x(j)∣Y=ck)y =\arg \max_{c_k}P(Y=c_k)\prod\limits_{j}P(X^{(j)}=x^{(j)}|Y=c_k) y=argckmaxP(Y=ck)j∏P(X(j)=x(j)∣Y=ck)
*五、后验概率最大化的含义
朴素贝叶斯法将实例分到后验概率最大的类中,这等价于期望风险最小化。
1、0-1损失函数
L(Y,F(X))={1,Y≠f(X)0,Y=f(X)(12)L(Y,F(X)) = \left\{ \begin{array}{lr} 1 & , \quad Y \neq f(X)\\ 0 & , \quad Y = f(X) \end{array} \right. \tag{12} L(Y,F(X))={10,Y=f(X),Y=f(X)(12)
⚠️注:F(X)F(X)F(X)时分类决策函数
2、期望风险函数
Rexp(f)=E[L(Y,F(X))](13)R_{exp}(f) = E[L(Y,F(X))] \tag{13} Rexp(f)=E[L(Y,F(X))](13)
3、条件期望
Rexp(f)=EX∑k=1K[L(ck,f(X))]P(ck∣X)(14)R_{exp}(f) =E_X\sum\limits_{k=1}^K[L(c_k,f(X))]P(c_k|X) \tag{14} Rexp(f)=EXk=1∑K[L(ck,f(X))]P(ck∣X)(14)
4、期望风险最小化
(1)期望风险最小化准则:对X=xX=xX=x逐个极小化
f(x)=argminy∈Y∑k=1KL(ck,y)P(ck∣X=x)=argminy∈Y∑k=1KP(y≠ck∣X=x)=argminy∈Y(1−P(y=ck∣X=x))=argminy∈YP(y=ck∣X=x)(15)\begin{aligned} f(x)&= \arg \min _{y \in \mathcal{Y}}\sum\limits_{k=1}^KL(c_k,y)P(c_k|X=x)\\ &= \arg \min _{y \in \mathcal{Y}}\sum\limits_{k=1}^KP(y\neq c_k|X=x)\\ &= \arg \min _{y \in \mathcal{Y}}(1-P(y=c_k|X=x))\\ &= \arg \min _{y \in \mathcal{Y}}P(y=c_k|X=x) \end{aligned} \tag{15} f(x)=argy∈Ymink=1∑KL(ck,y)P(ck∣X=x)=argy∈Ymink=1∑KP(y=ck∣X=x)=argy∈Ymin(1−P(y=ck∣X=x))=argy∈YminP(y=ck∣X=x)(15)
(2)后验概率最大化准则
根据期望风险最小化准则得到朴素贝叶斯法采用的后验概率最大化准则:
f(x)=argminy∈ckP(ck∣X=x)(16)f(x)= \arg \min _{y \in \mathcal{c_k}}P(c_k|X=x) \tag{16} f(x)=argy∈ckminP(ck∣X=x)(16)
六、小结
1、朴素贝叶斯法式典型的生成学习方法,生成学习方法由训练数据学习联合概率分布P(X,Y)P(X,Y)P(X,Y),然后求得后验概率分布P(X|Y)P(X|Y)P(X|Y)。具体来说,利用训练数据学习P(X|Y)P(X|Y)P(X|Y)和P(X)P(X)P(X)的估计,得到联合概率分布:
P(X,Y)=P(Y)P(X|Y)P(X,Y) = P(Y)P(X|Y) P(X,Y)=P(Y)P(X|Y)
概率估计方法可以是极大似然估计或者是贝叶斯估计。
2、朴素贝叶斯法的基本假设是特征条件独立:
P(X=x|Y=ck)=P(X(1)=x(1),⋯,X(n)=x(n)∣Y=ck)=∏j=1nP(X(j)=x(j)∣Y=ck)\begin{aligned} P(X = x|Y = c_k) &= P(X^{(1)} = x^{(1)},\cdots ,X^{(n)} = x^{(n)}|Y = c_k) \\ &=\prod_{j=1}^n{P(X^{(j)} = x^{(j)}|Y = c_k}) \end{aligned} P(X=x|Y=ck)=P(X(1)=x(1),⋯,X(n)=x(n)∣Y=ck)=j=1∏nP(X(j)=x(j)∣Y=ck)
这是一个较强的假设。由于这一假设,模型包含的条件概率的数量大为减少,朴素贝叶斯法的学习与预测被大大简化。因而朴素贝叶斯法高效且易于实现。缺点是分类的性能不一定很高,但在短文本分类中表现优秀。
3、朴素贝叶斯法利用贝叶斯定理与学到的联合概率模型进行分类预测:
P(Y∣X)=P(X,Y)P(X)=P(Y)(P(X∣Y)∑YP(Y)P(X∣Y)\begin{aligned} P(Y|X) &= \frac{P(X,Y)}{P(X)}\\ &= \frac{P(Y)(P(X|Y)} {\sum\limits_{Y}P(Y)P(X|Y)} \end{aligned} P(Y∣X)=P(X)P(X,Y)=Y∑P(Y)P(X∣Y)P(Y)(P(X∣Y)
4、将给定的输入x分到后验概率最大的类y:
y=argmaxckP(Y=ck)∏j=1nP(X(j)=x(j)∣Y=ck)y =\arg \max_{c_k} P(Y = c_k)\prod_{j=1}^nP(X^{(j)} = x^{(j)}|Y = c_k) y=argckmaxP(Y=ck)j=1∏nP(X(j)=x(j)∣Y=ck)
后验概率最大等价于0-1损失函数时的期望风险最小化。
5、朴素贝叶斯法的假设是:输入变量(特征)条件独立。如果输入变量之间存在依存关系,那么模型就变成了贝叶斯网络。
03 朴素贝叶斯方法相关推荐
- 朴素贝叶斯方法(Naive Bayes)原理和实现
模型概述 朴素贝叶斯方法,是指 朴素:特征条件独立 贝叶斯:基于贝叶斯定理 根据贝叶斯定理,对一个分类问题,给定样本特征x,样本属于类别y的概率是 p(y|x)=p(x|y)p(y)p(x)..... ...
- 机器学习之朴素贝叶斯方法(Naive Bayes)原理和实现
目录 一.贝叶斯理论 二.实战朴素贝叶斯 实战朴素贝叶斯1 实战朴素贝叶斯3 三.scikit-learn中朴素贝叶斯的分类算法的适用 四.贝叶斯算法的优缺点 一.贝叶斯理论 贝叶斯模型 现在我们来看 ...
- 机器学习笔记:朴素贝叶斯方法(Naive Bayes)原理和实现
本文主要描述了朴素贝叶斯分类方法,包括模型导出和学习描述.实例部分总结了<machine learning in action>一书中展示的一个该方法用于句子感情色彩分类的程序.1 方法概 ...
- 朴素贝叶斯方法(Naive Bayes)
本文主要描述了朴素贝叶斯分类方法,包括模型导出和学习描述.实例部分总结了<machine learning in action>一书中展示的一个该方法用于句子感情色彩分类的程序.1 方法概 ...
- 机器学习(三)——朴素贝叶斯方法、SVM(1)
http://antkillerfarm.github.io/ 高斯判别分析(续) 将上面三个分布的概率密度函数代入第二节公式7,可求得argmaxyp(y|x)\arg\max_yp(y\vert ...
- 判别模型、生成模型与朴素贝叶斯方法
1.判别模型与生成模型 上篇报告中提到的回归模型是判别模型,也就是根据特征值来求结果的概率.形式化表示为,在参数确定的情况下,求解条件概率.通俗的解释为在给定特征后预测结果出现的概率. 比如说要确定一 ...
- java naive方法_朴素贝叶斯方法(Naive Bayes Method)
朴素贝叶斯是一种很简单的分类方法,之所以称之为朴素,是因为它有着非常强的前提条件-其所有特征都是相互独立的,是一种典型的生成学习算法.所谓生成学习算法,是指由训练数据学习联合概率分布P(X,Y),然后 ...
- 概率校准calibration_curve,用Isotonic regression,得出calibration_curve的好坏,用交叉熵检验,和方差,及使用朴素贝叶斯方法
calibration_curve 运行完得出的分类结果是不是满足独立同分布,分类概率prob,可以用最大似然假设?那么概率校准calibration_curve,用Isotonic regressi ...
- 鸢尾花python贝叶斯分类_机器学习之鸢尾花-朴素贝叶斯方法
在所有的机器学习分类算法中,朴素贝叶斯和其他绝大多数的分类算法都不同. 对于大多数的分类算法,比如决策树,KNN,逻辑回归,支持向量机等,他们都是判别方法,也就是直接学习出特征输出Y和特征X之间的关系 ...
最新文章
- codevs1258 关路灯(☆区间dp)
- SAP BADI应用
- python面试常见问题-10个Python面试常问的问题
- 013:ADS semihosting与硬件重定向(转)
- CCNA学习心得(一)
- 算法之排序算法-shell排序(移位法)
- 文件字节输入流 java
- 多层LSTM的坑:如何定义多层LSTM?
- 反射进行.newInstance()方法,报错Caused by: java.lang.NoSuchMethodException:XXXX.<init>()
- html自动保存excel,如何在Excel中将Excel Sheet保存为HTML?
- labview与C数据类型的对应关系
- 2011年八大赚钱爆发点
- 中国联通沃支付echop支付插件
- AmazeUI 图标的示例代码
- AJAX技术和AXIO
- 阿里P7级别面试经验总结,面试心得体会
- 如何解决企业税务压力?这些企业税收优惠政策您要了解
- YYLabel的几个实用小技巧
- 用阿里云托管服务器怎么托管_云托管使企业更具竞争力的8个原因
- 将SVG文件转换为XML文件
热门文章
- 【80后回忆】经典电视剧集
- 博士之死背后异化的师生关系
- ERROR: cannot launch node of type [robot_state_publisher/state_publisher]: Cannot locate node of typ
- 超市信息管理程序c语言购物车,c语言购物车代码
- 进程间通信之面包师问题
- x2检验(chi-square test)/ 卡方检验
- 第11章两个相关样本的t检验
- 如何用python 炒股赚钱_教程 | 如何用Python和机器学习炒股赚钱?
- 计算机辅助在医学中的应用,计算机在医学领域的应用
- MRAM学习笔记——4.SOT-hall器件的测试