发布时间:2023-10-22 18:30
我们知道,对于人类来说学习通常是指通过经验获得知识从而导致可度量的行为变化。也就是说我们通过经验获得了知识,然后这些知识又对我们未来的行为产生了影响。而机器学习则是让机器来进行学习,因此我们也可以认为机器学习同样是让机器通过经验(在计算机中表现为数据)获得知识(知识即为我们的模型),然后基于这些知识(模型)来对我们未来的行为产生影响(即不同的模型在接收到未来的新数据可能会得到不同的label)。对于人类来说最重要的是正确知识的获取,这对于机器来说也是一样的,最重要的是获得合适的模型。对于人类来说,知识是通过总结经验来得到的,那么对于机器来说,我们如何来总结已有的数据来得到模型是整个机器学习的核心问题。
在这里我们假设已有的数据为 X ,根据数据学习得到的模型产生的行为变化(lable)我们可以定义为 Y ,那么我们希望学习到的模型即可用一下公式来表达
通过上面的描述我们知道机器学习的目标是得到一个模型使得其产生的行为(label)是我们所想看到的结果。那么我们如何来学习该模型呢?这里基于是否直接对 P(Y|X) 建模有两种策略:
通过上面对两种建模策略的描述我们知道贝叶斯分类器算法的建模策略是第二种,即生成式模型。那么我们如何来对联合分布 P(x,y) 来建模呢?我们依据贝叶斯公式知道 P(x,y)=P(y)P(x|y) ,在这里我们称 P(y) 为标签 y 的先验概率, P(x|y) 是样本 x 相对于标签 y 的条件概率(似然)。这样就把如何计算 P(x,y) 问题转换为了如何计算标签的先验概率 P(y) 和似然 P(x|y) 。
在上面对贝叶斯分类器的描述中,我们可以看到无论使用极大似然方法还是频率统计的方法,其类条件概率 P(x|y) 都是所有特征上的联合概率,这在有限的样本下是很难估计的。
朴素贝叶斯方法通过假设所有的特征都是独立的,这样我们就可以避免计算特征上的联合概率,从而将计算后验概率变为了:
前面提到的朴素贝叶斯分类器,有一个很重要的前提就是我们需要假设所有属性之间是独立不相关的,这对于实际工程中来说是几乎不可能的。因此我们就像如果假设只有部分的特征之间是相关的,这样我们既考虑了属性之间的相关性又不需要计算所有特征的联合概率。半朴素贝叶斯就是基于这样的想法来设计的,在半朴素贝叶斯中,我们假设每个特征最多可以再依赖一个额外的特征,这种假设我们称之为”独依赖估计(ODE)“,即只依赖一个额外特征。
在这种假设下,我们的模型可以写成如下格式:
对于所有的半朴素贝叶斯分类器来说,其似然和先验都是基于频率统计的方法来计算的。
mysql语句审核_mysql yearning-sql审核平台
拓端tecdat|视频:R语言中的Stan概率编程MCMC采样的贝叶斯模型
爬虫(14) - Scrapy-Redis分布式爬虫(1) | 详解
用python进行精细中文分句(基于正则表达式),HarvestText:文本挖掘和预处理工具
docker win10专业版下 WSL 2 或 hyper-v 安装Docker Desktop
PyTorch Bug 记录:one of the variables needed for gradient computation has been modified by an inplace