贝叶斯算法
- 格式:docx
- 大小:421.89 KB
- 文档页数:14
贝叶斯优化算法实例引言:贝叶斯优化算法是一种通过迭代优化来寻找最优解的方法。
它在许多领域中都有广泛的应用,如超参数调优、实验设计、机器学习等。
本文将以一个实例来介绍贝叶斯优化算法的原理和应用。
一、问题描述:假设我们有一个函数f(x),我们想找到使得f(x)取得最大值的x。
但是,f(x)的计算非常耗时,我们希望尽量减少f(x)的计算次数。
这时,贝叶斯优化算法就能派上用场了。
二、贝叶斯优化算法原理:贝叶斯优化算法的核心思想是通过不断的试验和更新来逼近最优解。
它将优化问题转化为一个概率推断的过程,利用已有的观测数据来构建一个概率模型,并根据模型来选择下一个试验点。
具体而言,贝叶斯优化算法通过构建先验模型和后验模型来进行优化,其中先验模型是对目标函数的初始估计,而后验模型则是通过不断观测数据的更新得到的。
三、贝叶斯优化算法实例解析:为了更好地理解贝叶斯优化算法,我们以一个简单的函数优化问题为例进行解析。
假设我们要优化的函数是f(x) = (6x-2)^2 * sin(12x-4),其中x的取值范围是[0, 1]。
我们的目标是找到使得f(x)取得最大值的x。
我们需要选择一个适当的先验模型。
在这个例子中,我们选择高斯过程作为先验模型。
高斯过程是一种常用的非参数贝叶斯模型,能够通过已有的数据来进行预测。
然后,我们根据先验模型选择初始试验点。
在这个例子中,我们选择在[0, 1]范围内均匀取10个点作为初始试验点。
接下来,我们通过计算这些试验点的函数值来更新后验模型。
根据后验模型,我们可以计算出在给定观测数据下,函数f(x)的概率分布。
在得到后验模型后,我们需要使用一定的策略来选择下一个试验点。
常用的策略有最大化后验概率、最大化期望改善等。
在这个例子中,我们选择最大化后验概率来选择下一个试验点。
重复以上步骤,直到达到停止条件。
停止条件可以是达到最大迭代次数或者满足一定的收敛条件。
我们得到了使得f(x)取得最大值的x。
- 贝叶斯近似算法介绍全文共四篇示例,供读者参考第一篇示例:贝叶斯近似算法(Bayesian Approximation Algorithm)是一种基于贝叶斯统计推断原理的近似算法,通常用于解决模型复杂、数据量大的问题。
在机器学习领域中,贝叶斯方法是一种常见且有效的方法,它不仅可以用于分类、回归等监督学习任务,还可以应用于聚类、降维、推荐系统等无监督学习任务。
贝叶斯近似算法的核心思想是基于贝叶斯定理进行概率推断,通过对参数的后验分布进行近似推断,从而得到参数的估计结果。
与传统的最大似然估计方法相比,贝叶斯方法能够更好地利用先验知识,对参数的不确定性进行更合理的建模,同时还能够避免过拟合的问题。
在实际应用中,由于后验分布的计算通常是非常困难甚至不可行的,因此需要借助于贝叶斯近似算法来进行推断。
常见的贝叶斯近似算法包括马尔科夫链蒙特卡洛(MCMC)方法、变分推断方法、拉普拉斯近似方法等。
马尔可夫链蒙特卡洛方法是一种基于随机模拟的推断方法,通过构建马尔可夫链来模拟参数的后验分布。
通过多次迭代采样,最终得到参数的后验分布的近似值。
但是MCMC方法的计算复杂度较高,收敛速度较慢,在处理大规模数据时可能会面临挑战。
变分推断方法是另一种常见的贝叶斯近似算法,它通过最优化一个参数化的分布来近似真实的后验分布。
变分推断方法通常会引入一些近似假设,例如独立性假设、指数族假设等,从而简化推断的计算复杂度。
变分推断方法的优点是计算效率高,但是可能会引入一定的偏差。
拉普拉斯近似方法是一种基于高斯分布的近似推断方法,通过在后验分布的峰值处进行局部近似,得到参数的估计结果。
拉普拉斯近似方法通常适用于后验分布近似是单峰分布的情况,当后验分布是多峰分布时可能会出现不准确的情况。
贝叶斯近似算法是一种在处理复杂、大规模数据时非常有效的推断方法。
通过合理地选择适当的近似算法,结合先验知识和数据信息,可以得到更加准确和稳健的模型参数估计结果。
贝叶斯分类算法介绍贝叶斯分类算法是一种在机器学习领域应用广泛的算法,它的名字来自于18世纪英国数学家贝叶斯。
该算法是基于贝叶斯定理而发展出来的,主要用于处理分类问题。
1. 贝叶斯分类算法的原理在理解贝叶斯分类算法前,需要先了解贝叶斯定理。
贝叶斯定理是关于随机事件A和B的条件概率的一则公式,即P(A|B) =P(B|A)*P(A)/P(B)。
其中,P(A|B)表示在事件B发生的前提下事件A发生的概率,P(B|A)表示在事件A发生的前提下事件B发生的概率,P(A)和P(B)分别表示事件A和B发生的概率。
贝叶斯分类算法基于以上原理,通过根据已知的分类样本学习出一个条件概率模型,然后使用该模型来对未知的样本进行分类。
具体来说,就是将需要分类的样本进行各个特征的判断,然后求出该样本可能属于各个类别的概率,选择概率最大的类别作为分类结果。
2. 贝叶斯分类算法的应用贝叶斯分类算法在实际应用中的表现非常出色,尤其是在文本分类、垃圾邮件过滤等方面。
在文本分类中,贝叶斯分类算法可以通过学习已有的样本数据来判断任意一个文本属于哪一个分类。
例如,我们可以通过学习已有的样本数据来创建一份“体育文章”和“政治文章”的分类模型,然后用该模型来对新发布的文章进行分类,以达到自动分类文章的效果。
在垃圾邮件过滤方面,贝叶斯分类算法同样表现优秀。
我们可以通过已知的垃圾邮件和非垃圾邮件的训练数据集,构建出一个分类模型,然后用该模型来对新收到的邮件进行分类,只有当其被分类为非垃圾邮件时才会被传递给用户,以避免用户接收到大量垃圾邮件的骚扰。
3. 贝叶斯分类算法的优点和缺点贝叶斯分类算法相较于其他分类算法,具有一些明显的优点。
首先,该算法可以利用先验知识并通过不断学习来提高分类准确度。
其次,贝叶斯分类算法对于数据样本的大小不敏感,能够适应各种规模的数据样本。
此外,该算法在处理文本分类等问题时表现优秀,并且可以很好地处理多分类问题。
当然,贝叶斯分类算法的缺点也不可避免。
多项式贝叶斯算法的原理和过程一、什么是多项式贝叶斯算法多项式贝叶斯算法(Multinomial Naive Bayes)是一种基于贝叶斯定理和多项分布的分类算法。
它假设特征之间相互独立且符合多项分布,在文本分类等任务中被广泛应用。
本文将介绍多项式贝叶斯算法的原理和过程,帮助读者更好地理解该算法的工作方式。
二、贝叶斯定理概述贝叶斯定理是概率论中的重要定理,它描述了在给定某个条件下,另一个条件的概率如何计算。
贝叶斯定理的数学表达式如下:P(A|B) = (P(B|A) * P(A)) / P(B)其中,P(A|B)表示在事件B已经发生的情况下事件A发生的概率,P(B|A)表示在事件A已经发生的情况下事件B发生的概率,P(A)和P(B)分别表示事件A和事件B的概率。
三、多项分布多项分布(Multinomial Distribution)是一种在离散随机变量上应用的概率分布,它描述了试验中多个可能的结果分别出现的概率。
在多项式贝叶斯算法中,特征被看作是多项分布的结果。
四、多项式贝叶斯算法的原理多项式贝叶斯算法的原理基于贝叶斯定理和多项分布,主要包括以下几个步骤:1. 数据预处理在应用多项式贝叶斯算法之前,需要对数据进行预处理。
常见的预处理操作包括去除停用词、分词、词干提取等。
2. 特征提取特征提取是多项式贝叶斯算法的核心步骤。
在文本分类任务中,常见的特征提取方法包括词袋模型(Bag of Words)和TF-IDF(Term Frequency-Inverse Document Frequency)。
2.1 词袋模型词袋模型是一种简单的特征提取方法,它将文本表示为一个词汇表中单词的集合,忽略了单词之间的顺序。
词袋模型可以使用向量表示,其中向量的每个维度表示一个单词,值表示该单词在文本中的出现次数。
2.2 TF-IDFTF-IDF是一种常用的特征提取和文本加权方法。
它综合考虑了一个单词在文本中的词频(Term Frequency)和在整个语料库中的逆文档频率(Inverse Document Frequency)。
贝叶斯一、贝叶斯公式贝叶斯定理是以英国数学家贝叶斯命名,用来解决两个条件概率之间的关系问题。
已知某条件概率,如何得到两个事件交换后的概率,也就是在已知P(A|B)的情况下如何求得P(B|A)。
这里先解释什么是条件概率:P(B|A)表示事件B已经发生的前提下,事件A发生的概率,叫做事件B发生下事件A的条件概率。
其基本求解公式为:。
贝叶斯定理之所以有用,是因为我们在生活中经常遇到这种情况:我们可以很容易直接得出P (A|B),P(B|A)则很难直接得出,但我们更关心P(B|A),贝叶斯定理就为我们打通从P(A|B)获得P(B|A)的道路.贝叶斯定理:P(A)、P(B)是”先验概率”(Prior probability).先验概率是指我们主观通过事件发生次数对概率的判断。
P(A|B)是已知B发生后A的条件概率,叫做似然函数(likelihood)。
似然函数是通过事件已经发生的概率推算事件可能性的概率。
P(B|A)是已知A发生后B的条件概率,是我们要求的值,叫做后验概率。
P(A|B)/P(A)是调整因子:调整因子是似然函数与先验概率的比值,这个比值相当于一个权重,用来调整后验概率的值,使后验概率更接近真实概率.因此,贝叶斯定理可以理解为通过先验概率和调整因子来获得后验概率二、分类问题已知集合:和,确定映射规则y=f(x),使得任意x i有且仅有一个y j使得y j=f(x i)成立.其中C叫做类别集合,其中每一个元素是一个类别,而I叫做项集合,其中每一个元素是一个待分类项,f叫做分类器.分类算法的任务就是构造分类器f.这里要着重强调,分类问题往往采用经验性方法构造映射规则,即一般情况下的分类问题缺少足够的信息来构造100%正确的映射规则,而是通过对经验数据的学习从而实现一定概率意义上正确的分类,因此所训练出的分类器并不是一定能将每个待分类项准确映射到其分类,分类器的质量与分类器构造方法、待分类数据的特性以及训练样本数量等诸多因素有关。
贝叶斯优化算法高斯过程贝叶斯优化算法和高斯过程在机器学习中被广泛应用,用于优化复杂函数的参数。
本文将介绍贝叶斯优化算法和高斯过程的基本原理、应用场景以及其优点和局限性。
一、贝叶斯优化算法的原理贝叶斯优化算法是一种基于贝叶斯统计和序列模型的优化方法。
它通过建立一个先验模型和一个观测模型来推断待优化函数的最优解。
具体来说,它通过不断地选择下一个样本点进行评估来逐步优化函数的参数,直到找到全局最优解或达到一定的停止准则。
二、高斯过程的原理高斯过程是一种概率模型,用于对随机变量的概率分布进行建模。
它假设任意有限个变量的线性组合服从多元高斯分布。
在贝叶斯优化算法中,高斯过程被用来建立待优化函数的先验模型。
通过观测已有的样本点,可以利用高斯过程进行预测,从而选择下一个最有可能是最优解的样本点进行评估。
三、贝叶斯优化算法的应用场景贝叶斯优化算法在很多领域都有广泛的应用。
例如,在超参数优化中,可以使用贝叶斯优化算法来选择最优的超参数组合,从而提高模型的性能。
在自动化机器学习中,贝叶斯优化算法可以自动选择合适的模型和算法,并进行参数调优。
此外,贝叶斯优化算法还可以应用于网络流量优化、物理实验设计等领域。
四、高斯过程在贝叶斯优化中的优点高斯过程作为一种非参数模型,具有很强的灵活性和适应性。
它可以根据观测数据自适应地调整模型的复杂度,并能够提供对未知函数的预测和不确定性的估计。
同时,高斯过程还具有数学上的优良性质,如可微性和闭式解等,使得贝叶斯优化算法更加高效和稳定。
五、贝叶斯优化算法的局限性虽然贝叶斯优化算法在很多问题上表现出色,但它也存在一些局限性。
首先,贝叶斯优化算法对待优化函数的光滑性和凸性有一定的要求。
当函数具有峰值或存在多个局部最优解时,贝叶斯优化算法可能无法找到全局最优解。
其次,贝叶斯优化算法在高维空间中的表现较差,因为样本点的评估成本很高,导致算法的收敛速度较慢。
六、总结贝叶斯优化算法和高斯过程是一对强力组合,在机器学习中被广泛应用于优化复杂函数的参数。
机器学习中的贝叶斯网络算法机器学习是近年来科技发展的热门话题,其中贝叶斯网络算法具有极高的实用价值和广泛应用前景。
本文将对贝叶斯网络算法在机器学习中的作用和原理进行探讨,并介绍它的优点与不足以及未来的应用前景。
一、贝叶斯网络算法的概述贝叶斯网络是一种基于概率模型的图论模型,其主要作用是分析变量之间的关系,并通过这些关系进行预测和推断。
贝叶斯网络算法的核心思想是利用贝叶斯定理,将目标变量的概率转化成条件概率,再通过多个条件概率的组合,计算出整个模型中所有变量之间的关系。
这种方法可以极大地减少变量之间的不确定性,从而提高预测准确度。
二、贝叶斯网络算法的原理贝叶斯网络算法的核心原理是基于概率模型的条件概率计算方法,即通过已知条件推算目标变量的概率分布。
例如,在一个“糖尿病预测”系统中,如果我们已经收集到了患者的年龄、体重、血糖、胰岛素等指标,那么我们就可以通过构建一个贝叶斯网络,来预测患者是否有糖尿病的可能性。
贝叶斯网络的构建首先需要确定节点之间的依赖关系,也就是变量之间的条件概率,然后通过概率计算和图论理论,得到完整的网络结构。
三、贝叶斯网络算法的优点相比于其他机器学习算法,贝叶斯网络算法具有以下优点:1. 鲁棒性强:贝叶斯网络算法对数据集的噪声点和缺失值比较鲁棒,不容易受到外界干扰。
2. 可解释性高:贝叶斯网络算法可以清晰地表达变量之间的关系,并且可以通过调整概率关系来进行预测和推断。
3. 高效率:贝叶斯网络算法的计算时间相对较短,特别是在大规模数据集上,计算速度明显快于其他算法。
四、贝叶斯网络算法的不足之处然而贝叶斯网络算法并不是完美的,在实际应用中也存在着一些问题:1. 数据依赖:贝叶斯网络的构建需要依赖于大量的数据集和相关变量,如果数据集本身存在错误或者不一致性,就会导致贝叶斯网络的误差和缺陷。
2. 参数选择:模型的精度和效率取决于参数的选择,但是参数的选择需要依靠数据集的经验,这样容易造成选择偏差和模型失真。
贝叶斯算法简介一、什么是贝叶斯算法贝叶斯算法是一种基于贝叶斯定理的统计学方法,用于计算给定某个条件下另一个条件的概率。
该算法通过将先验概率与数据的观测结果相结合,得出后验概率,进而进行分类、预测等任务。
贝叶斯算法具有较强的理论基础和广泛的应用领域,例如文本分类、垃圾邮件过滤、信息检索等。
二、贝叶斯定理的基本原理贝叶斯算法的核心是贝叶斯定理,该定理描述了两个事件之间的条件概率关系。
假设有事件A和事件B,贝叶斯定理可以表示为:P(A|B) = (P(B|A) * P(A)) / P(B)其中,P(A|B)表示在事件B已经发生的条件下事件A发生的概率,P(B|A)表示在事件A已经发生的条件下事件B发生的概率,P(A)和P(B)分别表示事件A和事件B的先验概率。
三、贝叶斯算法的应用贝叶斯算法在许多领域都有广泛的应用,以下是其中一些典型的应用场景:1. 文本分类文本分类是贝叶斯算法的典型应用之一。
通过使用贝叶斯算法,可以根据已知的文本特征,将文本分类为不同的类别。
在文本分类中,先验概率可以通过统计已知样本数据中的文本分布来估计。
2. 垃圾邮件过滤垃圾邮件过滤是贝叶斯算法的另一个重要应用。
通过使用贝叶斯算法,可以根据已知的垃圾邮件和非垃圾邮件样本,计算出标记新邮件为垃圾邮件的概率。
具体而言,可以统计已知样本中包含垃圾邮件特征的概率,以及邮件包含这些特征的条件下是垃圾邮件的概率。
3. 信息检索贝叶斯算法在信息检索中也有广泛应用。
通过使用贝叶斯算法,可以根据查询词和文档之间的关联性概率,计算出给定查询词的条件下,相关文档的概率。
在信息检索中,先验概率可以根据已知文档的分类信息来估计。
四、贝叶斯算法的优缺点贝叶斯算法具有一些优点和缺点,以下是其主要的优缺点:优点1.贝叶斯算法在处理小样本数据时表现较好,能够有效利用有限的数据进行分类和推断。
2.贝叶斯算法具有较强的可解释性,可以通过先验概率和后验概率来解释分类结果。
贝叶斯一、贝叶斯公式贝叶斯定理是以英国数学家贝叶斯命名,用来解决两个条件概率之间的关系问题。
已知某条件概率,如何得到两个事件交换后的概率,也就是在已知P(A|B)的情况下如何求得P(B|A)。
这里先解释什么是条件概率:P(B|A)表示事件B已经发生的前提下,事件A发生的概率,叫做事件B发生下事件A的条件概率。
其基本求解公式为:。
贝叶斯定理之所以有用,是因为我们在生活中经常遇到这种情况:我们可以很容易直接得出P(A|B),P(B|A)则很难直接得出,但我们更关心P(B|A),贝叶斯定理就为我们打通从P(A|B)获得P(B|A)的道路。
贝叶斯定理:P(A)、P(B)是”先验概率”(Prior probability)。
先验概率是指我们主观通过事件发生次数对概率的判断。
P(A|B)是已知B发生后A的条件概率,叫做似然函数(likelihood)。
似然函数是通过事件已经发生的概率推算事件可能性的概率。
P(B|A)是已知A发生后B的条件概率,是我们要求的值,叫做后验概率。
P(A|B)/P(A)是调整因子:调整因子是似然函数与先验概率的比值,这个比值相当于一个权重,用来调整后验概率的值,使后验概率更接近真实概率。
因此,贝叶斯定理可以理解为通过先验概率和调整因子来获得后验概率二、分类问题已知集合:和,确定映射规则y=f(x),使得任意x i有且仅有一个y j使得y j=f(x i)成立。
其中C叫做类别集合,其中每一个元素是一个类别,而I叫做项集合,其中每一个元素是一个待分类项,f叫做分类器。
分类算法的任务就是构造分类器f。
这里要着重强调,分类问题往往采用经验性方法构造映射规则,即一般情况下的分类问题缺少足够的信息来构造100%正确的映射规则,而是通过对经验数据的学习从而实现一定概率意义上正确的分类,因此所训练出的分类器并不是一定能将每个待分类项准确映射到其分类,分类器的质量与分类器构造方法、待分类数据的特性以及训练样本数量等诸多因素有关。
例如,医生对病人进行诊断就是一个典型的分类过程,任何一个医生都无法直接看到病人的病情,只能观察病人表现出的症状和各种化验检测数据来推断病情,这时医生就好比一个分类器,而这个医生诊断的准确率,与他当初受到的教育方式(构造方法)、病人的症状是否突出(待分类数据的特性)以及医生的经验多少(训练样本数量)都有密切关系。
三、朴素贝叶斯1.4.1、朴素贝叶斯分类的原理与流程朴素贝叶斯分类是一种十分简单的分类算法,叫它朴素贝叶斯分类是因为这种方法的思想真的很朴素,朴素贝叶斯的思想基础是这样的:对于给出的待分类项,求解在此项出现的条件下各个类别出现的概率,哪个最大,就认为此待分类项属于哪个类别。
通俗来说,就好比这么个道理,你在街上看到一个黑人,我问你你猜这哥们哪里来的,你十有八九猜非洲。
为什么呢?因为黑人中非洲人的比率最高,当然人家也可能是美洲人或亚洲人,但在没有其它可用信息下,我们会选择条件概率最大的类别,这就是朴素贝叶斯的思想基础。
朴素贝叶斯分类的正式定义如下:1、设为一个待分类项,而每个a为x的一个特征属性。
2、有类别集合。
3、计算。
4、如果,则。
那么现在的关键就是如何计算第3步中的各个条件概率。
我们可以这么做:1、找到一个已知分类的待分类项集合,这个集合叫做训练样本集。
2、统计得到在各类别下各个特征属性的条件概率估计。
即。
3、如果各个特征属性是条件独立的,则根据贝叶斯定理有如下推导:因为分母对于所有类别为常数,因为我们只要将分子最大化皆可。
又因为各特征属性是条件独立的,所以有:根据上述分析,朴素贝叶斯分类的流程可以由下图表示(暂时不考虑验证):可以看到,整个朴素贝叶斯分类分为三个阶段:第一阶段——准备工作阶段,这个阶段的任务是为朴素贝叶斯分类做必要的准备,主要工作是根据具体情况确定特征属性,并对每个特征属性进行适当划分,然后由人工对一部分待分类项进行分类,形成训练样本集合。
这一阶段的输入是所有待分类数据,输出是特征属性和训练样本。
这一阶段是整个朴素贝叶斯分类中唯一需要人工完成的阶段,其质量对整个过程将有重要影响,分类器的质量很大程度上由特征属性、特征属性划分及训练样本质量决定。
第二阶段——分类器训练阶段,这个阶段的任务就是生成分类器,主要工作是计算每个类别在训练样本中的出现频率及每个特征属性划分对每个类别的条件概率估计,并将结果记录。
其输入是特征属性和训练样本,输出是分类器。
这一阶段是机械性阶段,根据前面讨论的公式可以由程序自动计算完成。
第三阶段——应用阶段。
这个阶段的任务是使用分类器对待分类项进行分类,其输入是分类器和待分类项,输出是待分类项与类别的映射关系。
这一阶段也是机械性阶段,由程序完成。
1.4.2、估计类别下特征属性划分的条件概率及Laplace校准这一节讨论P(a|y)的估计。
由上文看出,计算各个划分的条件概率P(a|y)是朴素贝叶斯分类的关键性步骤,当特征属性为离散值时,只要很方便的统计训练样本中各个划分在每个类别中出现的频率即可用来估计P(a|y),下面重点讨论特征属性是连续值的情况。
当特征属性为连续值时,通常假定其值服从高斯分布(也称正态分布)。
即:而因此只要计算出训练样本中各个类别中此特征项划分的各均值和标准差,代入上述公式即可得到需要的估计值。
均值与标准差的计算在此不再赘述。
另一个需要讨论的问题就是当P(a|y)=0怎么办,当某个类别下某个特征项划分没有出现时,就是产生这种现象,这会令分类器质量大大降低。
为了解决这个问题,我们引入Laplace校准,它的思想非常简单,就是对没类别下所有划分的计数加1,这样如果训练样本集数量充分大时,并不会对结果产生影响,并且解决了上述频率为0的尴尬局面。
1.4.3、朴素贝叶斯分类实例:检测SNS社区中不真实账号下面讨论一个使用朴素贝叶斯分类解决实际问题的例子,为了简单起见,对例子中的数据做了适当的简化。
这个问题是这样的,对于SNS社区来说,不真实账号(使用虚假身份或用户的小号)是一个普遍存在的问题,作为SNS社区的运营商,希望可以检测出这些不真实账号,从而在一些运营分析报告中避免这些账号的干扰,亦可以加强对SNS社区的了解与监管。
如果通过纯人工检测,需要耗费大量的人力,效率也十分低下,如能引入自动检测机制,必将大大提升工作效率。
这个问题说白了,就是要将社区中所有账号在真实账号和不真实账号两个类别上进行分类,下面我们一步一步实现这个过程。
首先设C=0表示真实账号,C=1表示不真实账号。
1、确定特征属性及划分这一步要找出可以帮助我们区分真实账号与不真实账号的特征属性,在实际应用中,特征属性的数量是很多的,划分也会比较细致,但这里为了简单起见,我们用少量的特征属性以及较粗的划分,并对数据做了修改。
我们选择三个特征属性:a1:日志数量/注册天数,a2:好友数量/注册天数,a3:是否使用真实头像。
在SNS社区中这三项都是可以直接从数据库里得到或计算出来的。
下面给出划分:a1:{a<=0.05, 0.05<a<0.2, a>=0.2},a1:{a<=0.1, 0.1<a<0.8, a>=0.8},a3:{a=0(不是),a=1(是)}。
2、获取训练样本这里使用运维人员曾经人工检测过的1万个账号作为训练样本。
3、计算训练样本中每个类别的频率用训练样本中真实账号和不真实账号数量分别除以一万,得到:4、计算每个类别条件下各个特征属性划分的频率5、使用分类器进行鉴别下面我们使用上面训练得到的分类器鉴别一个账号,这个账号使用非真实头像,日志数量与注册天数的比率为0.1,好友数与注册天数的比率为0.2。
可以看到,虽然这个用户没有使用真实头像,但是通过分类器的鉴别,更倾向于将此账号归入真实账号类别。
这个例子也展示了当特征属性充分多时,朴素贝叶斯分类对个别属性的抗干扰性。
1.5、分类器的评价虽然后续还会提到其它分类算法,不过这里我想先提一下如何评价分类器的质量。
首先要定义,分类器的正确率指分类器正确分类的项目占所有被分类项目的比率。
通常使用回归测试来评估分类器的准确率,最简单的方法是用构造完成的分类器对训练数据进行分类,然后根据结果给出正确率评估。
但这不是一个好方法,因为使用训练数据作为检测数据有可能因为过分拟合而导致结果过于乐观,所以一种更好的方法是在构造初期将训练数据一分为二,用一部分构造分类器,然后用另一部分检测分类器的准确率。
2.1在上一篇文章中我们讨论了朴素贝叶斯分类。
朴素贝叶斯分类有一个限制条件,就是特征属性必须有条件独立或基本独立(实际上在现实应用中几乎不可能做到完全独立)。
当这个条件成立时,朴素贝叶斯分类法的准确率是最高的,但不幸的是,现实中各个特征属性间往往并不条件独立,而是具有较强的相关性,这样就限制了朴素贝叶斯分类的能力。
这一篇文章中,我们接着上一篇文章的例子,讨论贝叶斯分类中更高级、应用范围更广的一种算法——贝叶斯网络(又称贝叶斯信念网络或信念网络)。
2.2上一篇文章我们使用朴素贝叶斯分类实现了SNS社区中不真实账号的检测。
在那个解决方案中,我做了如下假设:i、真实账号比非真实账号平均具有更大的日志密度、各大的好友密度以及更多的使用真实头像。
ii、日志密度、好友密度和是否使用真实头像在账号真实性给定的条件下是独立的。
但是,上述第二条假设很可能并不成立。
一般来说,好友密度除了与账号是否真实有关,还与是否有真实头像有关,因为真实的头像会吸引更多人加其为好友。
因此,我们为了获取更准确的分类,可以将假设修改如下:i、真实账号比非真实账号平均具有更大的日志密度、各大的好友密度以及更多的使用真实头像。
ii、日志密度与好友密度、日志密度与是否使用真实头像在账号真实性给定的条件下是独立的。
iii、使用真实头像的用户比使用非真实头像的用户平均有更大的好友密度。
上述假设更接近实际情况,但问题随之也来了,由于特征属性间存在依赖关系,使得朴素贝叶斯分类不适用了。
既然这样,我去寻找另外的解决方案。
下图表示特征属性之间的关联:上图是一个有向无环图,其中每个节点代表一个随机变量,而弧则表示两个随机变量之间的联系,表示指向结点影响被指向结点。
不过仅有这个图的话,只能定性给出随机变量间的关系,如果要定量,还需要一些数据,这些数据就是每个节点对其直接前驱节点的条件概率,而没有前驱节点的节点则使用先验概率表示。
例如,通过对训练数据集的统计,得到下表(R表示账号真实性,H 表示头像真实性):纵向表头表示条件变量,横向表头表示随机变量。
上表为真实账号和非真实账号的概率,而下表为头像真实性对于账号真实性的概率。
这两张表分别为“账号是否真实”和“头像是否真实”的条件概率表。