版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第8章贝叶斯分类器朴素贝叶斯与贝叶斯网络贝叶斯定理概率推理与更新朴素贝叶斯高效分类器实现贝叶斯网络概率图模型MachineLearning·BayesianClassifiers章节概览
本章内容8.1朴素贝叶斯分类器8.1.1贝叶斯定理与条件独立假设8.1.2高斯朴素贝叶斯与伯努利朴素贝叶斯8.2贝叶斯网络8.2.1贝叶斯网络的定义与构建8.2.2结构学习与参数估计8.2.3贝叶斯网络应用示例
学习目标掌握核心理论贝叶斯定理与条件独立假设理解分类原理朴素贝叶斯分类器的建模方法掌握概率图模型贝叶斯网络的结构与参数学习实践应用能力使用Python实现贝叶斯分类器1.贝叶斯定理的基本概念8.1.1贝叶斯定理与条件独立假设
贝叶斯定理核心公式描述在已知某些观察结果的情况下如何更新事件发生的概率
公式术语解释后验概率P(A|B)在观察到事件B发生的情况下,事件A发生的概率•通过贝叶斯定理最终要计算的结果似然函数P(B|A)在事件A已发生的前提下,事件B发生的概率•观察到的证据在某种假设下出现的可能性先验概率P(A)在没有任何新信息时,事件A发生的初始可能性•反映观察数据前对事件A的判断边际概率P(B)事件B发生的总体概率,与事件A是否发生无关•通过所有可能情况的总和计算得到
贝叶斯定理的核心思想核心思想:利用观察到的证据(事件B)更新对假设(事件A)的信心1确定先验概率初始判断P(A)观察数据前的判断2结合新证据考虑证据强度P(B|A)量化证据支持强度3归一化处理确保结果符合概率规则最终得到后验概率核心价值贝叶斯定理提供了一种系统化的方法来整合先验知识与观测数据,使我们能够在不确定性环境下进行理性推理和概率更新例8.1疾病检测问题
问题描述假设某种疾病(事件A)的发病率为1%,现有一个测试能检测这种疾病。如果患病者测试结果为阳性的概率为99%
而未患病者也有5%的可能性出现测试结果阳性
已知条件疾病先验概率P(A)=0.01患病者阳性概率(真阳性率)P(B|A)=0.99未患病概率P(Ā)=0.99未患病者阳性概率(假阳性率)P(B|Ā)=0.05求解目标当某人的测试结果为阳性(B发生)时,计算此人实际患病的概率,即后验概率P(A|B)例8.1计算过程
步骤1:计算边际概率P(B)全概率公式代入已知条件P(B)=0.0594
步骤2:计算后验概率P(A|B)贝叶斯定理代入已知条件P(A|B)≈0.167实际患病的概率仅为16.7%
2.条件独立假设
假设定义朴素贝叶斯的关键假设在给定类别C的条件下,特征之间相互独立
数学表达式
核心要点将复杂的多变量联合概率分解为简单的单变量条件概率乘积大大降低计算复杂度,使模型在实际应用中可行
假设的作用简化概率计算复杂计算P(X₁,X₂,...,Xₙ|C)简化计算P(X₁|C)×P(X₂|C)×...×P(Xₙ|C)
实际意义1每个特征独立地影响分类结果2无需考虑特征之间的复杂交互关系3模型训练和预测速度显著提升
条件独立假设的优势
核心优势计算复杂度显著降低将多变量联合概率分解为单变量条件概率乘积复杂度从O(2ⁿ)降至O(n)高维特征空间适用即使特征数量很大,计算仍然高效可行文本分类、图像识别等高维场景训练与预测速度快只需统计各特征的条件概率,无需复杂优化实时预测、在线学习场景首选
对比分析无独立假设问题需要估计所有特征的联合概率分布计算量:2ⁿ个参数(n个二元特征)有独立假设优势只需估计每个特征的边际概率分布计算量:n个参数(n个二元特征)3.贝叶斯定理与条件独立假设的结合
公式推导1应用贝叶斯定理2引入条件独立假设3简化后验概率计算忽略常数项P(X),简化为正比关系
分类决策规则决策准则选择后验概率最大的类别作为预测结果
实际计算步骤1计算每个类别的先验概率P(Cₖ)2计算每个特征的条件概率P(Xᵢ|Cₖ)3计算各类别的后验概率选择后验概率最大的类别
4.条件独立假设的局限性
主要局限性现实特征往往相关实际数据中特征之间通常存在依赖关系,独立假设难以完全成立可能导致性能下降忽略特征相关性会影响模型对数据真实结构的建模能力
典型相关特征示例身高与体重商品价格与销量温度与湿度
缓解方法贝叶斯网络显式建模特征之间的依赖关系,构建有向无环图表示变量间的因果关系处理复杂依赖结构特征选择通过降维或特征选择,减少高度相关特征的数量降低特征间相关性扩展方法条件依赖朴素贝叶斯(CDBN)、树增强朴素贝叶斯等部分考虑特征相关性1.高斯朴素贝叶斯概述8.1.2高斯朴素贝叶斯与伯努利朴素贝叶斯
基本定义GaussianNaiveBayes朴素贝叶斯分类器的变体,适用于连续型数据,假设特征在给定类别下服从高斯分布(正态分布)
核心特点适用于连续型数值特征假设特征服从高斯分布只需估计均值和方差保持条件独立假设
适用场景医学诊断通过血糖值、血压等连续变量预测疾病工业测量根据温度、压力等物理参数分类产品状态传感器数据分析分析高维连续数据进行分类预测核心思想利用高斯分布对每个特征进行建模,计算条件概率,结合贝叶斯定理进行分类决策高斯朴素贝叶斯的理论基础
贝叶斯定理应用后验概率计算给定类别Cₖ,样本X的后验概率正比于先验概率与似然函数的乘积
公式含义P(Cₖ)类别Cₖ的先验概率P(X|Cₖ)似然函数:给定类别Cₖ,样本X出现的概率∝正比关系:忽略归一化常数P(X)
条件独立假设似然函数分解给定类别Cₖ,特征X₁,X₂,...,Xₙ相互独立,联合概率可分解为各特征条件概率的乘积
关键优势将复杂的多变量联合概率简化为单变量条件概率乘积显著降低计算复杂度,使模型高效可行适用于高维特征空间的分类任务
高斯分布的假设
高斯分布公式概率密度函数
核心假设每个特征在给定类别下服从正态分布只需估计均值和方差两个参数概率密度函数连续且可微
参数说明
类别Cₖ下第i个特征的均值通过训练数据中类别Cₖ的样本估计
类别Cₖ下第i个特征的方差度量特征值在均值周围的离散程度
高斯分布的参数估计
参数估计方法均值估计类别Cₖ下第i个特征的样本均值方差估计类别Cₖ下第i个特征的样本方差Nₖ表示类别Cₖ的样本数量,N表示总样本数量
先验概率计算先验概率类别Cₖ在训练数据中出现的频率
估计过程1统计每个类别的样本数量2计算各类别的先验概率3计算每个类别下各特征的均值和方差参数估计是最大似然估计(MLE)的一种形式,通过训练数据的统计量来估计分布参数
先验概率计算
计算公式先验概率公式
类别Cₖ的样本数N总样本数量
计算步骤1统计训练数据中每个类别的样本数量2计算各类别样本数量占总样本的比例3该比例即为各类别的先验概率
计算示例具体计算假设训练集中有100个样本:类别A30类别B50类别C20P(A)=30/100=0.30P(B)=50/100=0.50P(C)=20/100=0.20
在分类中的作用反映各类别在数据中的自然分布影响后验概率的基准值类别不平衡时的关键因素
后验概率计算与决策规则
后验概率计算后验概率公式
计算步骤1计算各类别的先验概率P(Cₖ)2计算每个特征的条件概率P(Xᵢ|Cₖ)3将先验概率与条件概率相乘得到后验概率4比较各类别的后验概率
分类决策规则最优类别选择选择后验概率最大的类别作为预测结果
决策过程计算每个类别的后验概率比较所有类别的后验概率值选择具有最大后验概率的类别输出预测类别标签注意:后验概率计算中省略了归一化常数P(X),因为对所有类别来说它是相同的,不影响决策结果
高斯朴素贝叶斯的优缺点
优点计算高效只需计算均值和方差,训练时间复杂度低适合高维数据在维度较高的情况下仍能表现良好训练速度快无需迭代优化,直接统计即可完成训练鲁棒性强即使条件独立假设不完全成立,仍能提供有竞争力的性能
缺点依赖高斯分布假设如果特征不服从高斯分布,模型性能可能下降对异常值敏感异常值会显著影响均值和方差的估计忽略特征相关性假设特征条件独立,无法捕获特征之间的实际相关性数据预处理建议•检查和处理异常值•进行标准化或归一化•验证特征分布是否接近高斯高斯朴素贝叶斯的应用场景医学诊断通过连续变量预测疾病风险血糖值预测糖尿病风险血压评估心血管疾病工业测量根据物理参数分类产品状态温度监测设备运行状态压力分类产品质量等级传感器数据分析高维连续数据的智能分类加速度陀螺仪位置数据材料科学基于分子描述符预测性质利用原子计数等特征预测分子极化率等级,实现快速筛选与性质预测高斯朴素贝叶斯Python实现代码实现
#导入必要的库
fromsklearn.datasetsimportload_irisfromsklearn.model_selectionimporttrain_test_splitfromsklearn.naive_bayesimportGaussianNBfromsklearn.metricsimportaccuracy_score#加载数据
data=load_iris()X,y=data.data,data.target#划分训练集和测试集
X_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0.3,random_state=42)#创建高斯朴素贝叶斯模型
gnb=GaussianNB()#训练模型
gnb.fit(X_train,y_train)#预测
y_pred=gnb.predict(X_test)#输出准确率
print("Accuracy:",accuracy_score(y_test,y_pred))
关键步骤说明1数据加载加载鸢尾花数据集,包含4个特征和3个类别2数据划分训练集70%,测试集30%,随机种子确保可重复性3模型训练GaussianNB自动计算各类别的均值和方差4性能评估使用准确率评估模型预测性能高斯朴素贝叶斯Python实现代码实现
#创建高斯朴素贝叶斯模型
gnb=GaussianNB()#训练模型
gnb.fit(X_train,y_train)#预测测试集y_pred=gnb.predict(X_test)#输出准确率
print("Accuracy:",accuracy_score(y_test,y_pred))#查看模型参数
print("各类别均值:",gnb.theta_)print("各类别方差:",gnb.sigma_)#预测概率
y_prob=gnb.predict_proba(X_test)print("预测概率:",y_prob[:3])
关键代码解析GaussianNB()创建高斯朴素贝叶斯分类器实例fit(X_train,y_train)训练模型,计算各类别的均值和方差predict(X_test)对测试集进行分类预测模型属性theta_:各类别每个特征的均值sigma_:各类别每个特征的方差2.伯努利朴素贝叶斯
基本定义BernoulliNaiveBayes专门用于处理二元特征的朴素贝叶斯分类器变体,特征只包含"是/否"或"0/1"值
核心特点适用于二元特征数据(0/1表示)假设特征服从伯努利分布基于词袋模型处理文本分类简单高效,适合大规模稀疏数据
应用场景垃圾邮件检测判断邮件是否为垃圾邮件文本分类新闻分类、情感分析、主题识别文档检索根据查询结果匹配文档相关性医学诊断基于症状的二分类诊断伯努利朴素贝叶斯的理论基础
贝叶斯定理应用后验概率公式给定样本X,计算其属于类别Cₖ的后验概率
公式组成1P(Cₖ):类别Cₖ的先验概率2P(X|Cₖ):给定类别Cₖ时样本X出现的概率3∝:正比关系,省略归一化常数
特征独立假设似然函数分解在给定类别Cₖ的条件下,各特征Xᵢ相互独立
二元特征建模每个特征Xᵢ取值为0或1,表示"不出现"或"出现"适用于文本分类、特征选择等二元场景
伯努利分布
概率质量函数伯努利分布公式当Xᵢ=1时,概率为pᵢ;当Xᵢ=0时,概率为(1-pᵢ)
参数说明pᵢ特征Xᵢ在类别Cₖ中出现的概率Xᵢ二元特征值,取值为0或1
计算示例当Xᵢ=1时特征出现的概率即为pᵢ当Xᵢ=0时特征不出现的概率为(1-pᵢ)关键特性伯努利分布是最简单的离散概率分布,仅用一个参数p即可完全描述二元事件的概率特征
伯努利朴素贝叶斯概率模型
后验概率公式后验概率计算结合先验概率与所有特征的条件概率
公式组成部分1P(y):类别y的先验概率2pᵢ:特征Xᵢ在类别y中出现的概率3∏:对所有n个特征求乘积
分类决策规则最优类别选择选择后验概率最大的类别作为预测结果参数估计方法先验概率:P(y)=Nₖ/N条件概率:pᵢ=统计特征Xᵢ在类别y中出现的频率
伯努利朴素贝叶斯二元化数据
根据贝叶斯定理有
伯努利朴素贝叶斯的应用场景
主要应用领域文本分类垃圾邮件检测、情感分析、新闻分类文档检索根据查询结果匹配文档相关性医学诊断基于症状的二元数据分类诊断特征选择识别最具区分性的特征集合
方法优势简单高效适用于大规模稀疏数据场景,计算速度快可解释性强概率模型清晰,易于理解分类决策过程内存占用小只需存储概率参数,适合高维特征数据小样本适应在小数据集上仍能保持良好性能伯努利朴素贝叶斯Python实现
代码示例
#导入必要的库
fromsklearn.feature_extraction.textimportCountVectorizerfromsklearn.naive_bayesimportBernoulliNB#样本文本数据
documents=["Freemoneynow!!!","Hi,howareyou?","Winafreelotteryticket","Importantmeetingtomorrow","Claimyourfreeprize","Let'scatchuplater"
]#文本特征提取:二值化
vectorizer=CountVectorizer(binary=True)X=vectorizer.fit_transform(documents)#打印词汇表和特征矩阵
print("词汇表:",vectorizer.get_feature_names_out())print("二元特征矩阵:\n",X.toarray())
关键步骤说明1导入库使用CountVectorizer进行文本特征提取2文本数据准备文本样本及对应标签(垃圾邮件/正常邮件)3二值化转换binary=True将特征转化为二元值(0/1)4输出结果查看词汇表和转换后的特征矩阵伯努利朴素贝叶斯Python实现
代码示例
#划分训练集和测试集
X_train,X_test,y_train,y_test=train_test_split(X,labels,test_size=0.3,random_state=42)#初始化并训练伯努利朴素贝叶斯模型
bnb=BernoulliNB()bnb.fit(X_train,y_train)#进行预测
y_pred=bnb.predict(X_test)#评估模型
print("分类准确率:",accuracy_score(y_test,y_pred))print("分类报告:\n",classification_report(y_test,y_pred))#示例测试
test_samples=["Getyourfreegiftnow","Meetingisscheduledtomorrow"]test_features=vectorizer.transform(test_samples)test_predictions=bnb.predict(test_features)print("测试结果:",test_predictions)
关键步骤说明1数据划分将数据集划分为训练集和测试集2模型训练使用训练集拟合BernoulliNB模型3模型评估计算准确率和详细的分类报告4新样本预测对新文本样本进行分类预测1.贝叶斯网络概述8.2.1贝叶斯网络的定义与构建
什么是贝叶斯网络?概率图模型贝叶斯网络是一种用于表示随机变量之间条件独立性和联合概率分布的概率图模型
核心组成有向无环图(DAG)节点表示随机变量,边表示因果关系条件概率表(CPT)每个节点的概率分布由父节点决定
关键特性直观表达通过图形直观展示变量间的因果关系简化建模利用条件独立性分解复杂联合概率分布高效推断基于概率推理进行决策和预测知识融合结合领域知识与数据构建模型贝叶斯网络的定义
有向无环图(DAG)定义有向无环图是贝叶斯网络的结构基础,由节点和有向边组成,且图中不存在环路节点(Nodes)表示随机变量可以是离散或连续变量有向边(Edges)表示变量间的因果关系箭头方向表示依赖方向
条件概率表(CPT)定义每个节点的概率分布由其父节点的条件概率表决定,用于量化变量间的依赖强度父节点(Parents)指向该节点的所有节点,表示直接影响该变量的因素概率值在给定父节点取值下的条件概率所有概率值之和为12.联合概率分布推导
链式规则展开1基本形式2链式规则展开
核心概念联合概率所有随机变量同时取特定值的概率条件概率在某些变量已知的条件下,其他变量取值的概率链式规则将联合概率分解为一系列条件概率的乘积注意:链式规则为贝叶斯网络的联合概率分解提供了理论基础
联合概率分布推导
条件独立性原理关键思想在贝叶斯网络中,每个变量仅依赖于其父节点,与其他非子节点变量条件独立数学表达
核心优势简化复杂概率大幅减少需要估计的参数数量提高计算效率避免计算所有变量的联合概率反映因果关系直观表达变量间的依赖结构节省存储空间仅需存储局部条件概率表
联合概率分布推导
最终分解公式联合概率分布分解联合概率分布可分解为各变量条件概率的乘积核心优势:将复杂的全局概率分解为局部条件概率,大幅降低计算复杂度
公式意义局部性原理每个变量只依赖于其直接父节点,而非所有前驱变量简化计算避免计算高维联合概率,仅需估计局部条件概率表网络结构DAG结构编码了变量间的条件独立关系参数高效大幅减少需要估计的参数数量,提高模型效率
3.贝叶斯网络构建
构建过程1定义随机变量识别问题中的所有随机变量示例:疾病诊断→症状、疾病2确定依赖关系分析变量间的因果关系或依赖关系示例:疾病→症状(因果关系)
DAG构建3构建有向无环图(DAG)将变量表示为节点,依赖关系表示为有向边节点:表示随机变量有向边:表示因果关系无环性:图中不存在环路注意:DAG结构决定了条件独立关系,是贝叶斯网络的核心3.贝叶斯网络构建
条件概率表(CPT)4制定条件概率表为每个节点定义在其父节点取值下的条件概率统计历史数据或专家经验估计确保概率值之和为1CPT规模取决于父节点数量和状态数示例:若症状节点有1个父节点(疾病),疾病有2种状态,则症状节点的CPT需要指定P(症状|疾病=患病)和P(症状|疾病=未患病)
网络验证5验证网络合理性检查网络结构是否符合领域知识,并验证概率值DAG无环性检查与领域专家确认因果关系使用历史数据验证概率准确性必要时调整网络结构或参数关键:验证是确保贝叶斯网络可靠性的重要步骤,良好的验证能提高模型在实际应用中的可信度例8.2感冒诊断问题
问题描述希望通过"是否咳嗽"和"是否发烧"两个症状,诊断某人是否患有感冒。构建一个简单的贝叶斯网络来表示变量之间的依赖关系,并推断某人患感冒的概率。
关键变量X₁是否患有感冒X₂是否咳嗽X₃是否发烧
医学背景因果关系基于医学知识,"咳嗽"和"发烧"都由"感冒"引起感冒咳嗽感冒发烧贝叶斯网络优势能够直观地表示症状与疾病之间的因果关系,并通过概率推断计算患病的可能性例8.2定义随机变量与依赖关系
随机变量定义X₁是否患有感冒取值:[是,否]X₂是否咳嗽取值:[是,否]X₃是否发烧取值:[是,否]
依赖关系医学知识指导基于医学知识,"咳嗽"和"发烧"都由"感冒"引起依赖关系图示感冒(X₁)咳嗽(X₂)感冒(X₁)发烧(X₃)关键点:X₂和X₃都依赖于X₁,但X₂和X₃之间无直接依赖关系(条件独立)例8.2构建有向无环图(DAG)
有向无环图结构感冒(X₁)咳嗽(X₂)发烧(X₃)
DAG组成要素节点(Nodes)•感冒节点:根节点,无父节点•咳嗽节点:感冒的子节点•发烧节点:感冒的子节点有向边(Edges)•感冒→咳嗽(因果关系)•感冒→发烧(因果关系)无环性验证该DAG无环路,满足贝叶斯网络的基本要求例8.2条件概率表-感冒先验概率
先验概率表X₁(感冒)P(X₁)是(患病)0.1否(健康)0.9概率总和=0.1+0.9=1.0
参数说明先验概率先验概率表示在没有任何症状信息时,个体患感冒的概率临床背景假设感冒发病率为10%,即每100人中约有10人患感冒数学表达
例8.2条件概率表-咳嗽、发烧条件概率
咳嗽的条件概率表X₁(感冒)X₂=是X₂=否是0.80.2否0.30.7感冒患者中80%会咳嗽,20%不咳嗽
发烧的条件概率表X₁(感冒)X₃=是X₃=否是0.70.3否0.20.8感冒患者中70%会发烧,30%不发烧例8.2联合概率分布推导
联合概率分解1贝叶斯网络链式规则2代入感冒诊断场景感冒且咳嗽且发烧的概率:
概率计算患病情况P(感冒)=0.1P(咳嗽|感冒)=0.8P(发烧|感冒)=0.7结果=0.056未患病情况P(未感冒)=0.9P(咳嗽|未感冒)=0.3P(发烧|未感冒)=0.2结果=0.054
例8.2后验概率计算
计算过程1应用贝叶斯定理2代入已知概率3计算最终结果约50.9%
结果解读关键发现当某人同时出现咳嗽和发烧症状时,患感冒的概率约为50.9%
结果分析后验概率显著高于先验概率(10%)症状提供了重要的诊断信息贝叶斯推断有效地更新了概率估计临床意义即使出现典型症状,也需要综合考虑其他因素进行诊断
贝叶斯网络的优缺点
优点直观表达因果关系通过有向无环图直观展示变量间的因果依赖关系高效推断能力利用条件独立性进行高效的概率推断和决策融合领域知识可结合专家知识与数据驱动方法构建模型
缺点结构学习复杂在依赖关系不明确时需要大量计算或专家知识不支持循环依赖无法处理变量间的循环因果关系对数据质量敏感噪声数据或缺失数据会影响模型性能1.贝叶斯网络的结构学习8.2.2结构学习与参数估计
什么是结构学习?结构学习是从数据中发现和确定贝叶斯网络拓扑结构的过程,确定变量之间的依赖关系
核心目标确定哪些变量之间存在依赖关系确定依赖关系的方向(有向边)构建最优的有向无环图(DAG)
三种主要方法1得分搜索方法使用评分函数评估网络结构质量2约束搜索方法通过统计检验发现条件独立性3混合方法结合得分搜索与约束搜索的优点得分搜索方法
BIC准则贝叶斯信息准则
参数说明L模型的最大似然函数值k模型的参数数量n数据点的数量(样本量)
AIC准则赤池信息准则
准则解读较小的BIC/AIC值表示更好的模型平衡了拟合优度与模型复杂度BIC对复杂模型的惩罚更强
得分搜索方法的特点
核心思想评分函数评估使用BIC、AIC等评分函数量化网络结构质量贪婪搜索策略在可能的结构空间中逐步寻找最优网络平衡权衡机制平衡数据拟合优度与模型复杂度
搜索流程1初始化网络结构2计算当前结构的得分3生成候选结构(增删边)4选择得分最高的候选结构5迭代直到收敛或达到最优约束搜索方法
PC算法核心思想PC算法通过对数据进行统计检验来发现变量之间的条件独立性,并根据这些条件独立性来构建贝叶斯网络结构构建完全连接图初始时所有变量两两连接,形成完全图逐步去除边通过条件独立性检验,逐步删除不符合条件的边确定网络结构最终得到符合条件独立性约束的网络结构
算法流程详解1初始化阶段对所有变量进行成对测试,构建完全连接的无向图2边删除阶段检验变量间的条件独立性,删除不满足条件的边3定向阶段确定有向边的方向,构建最终的有向无环图注意:PC算法是约束搜索方法中的经典代表,广泛应用于贝叶斯网络的结构学习混合方法(MMHC算法)
MMHC算法核心思想MMHC算法将约束搜索与得分搜索相结合,分两阶段完成结构学习1MMPC阶段使用PC算法寻找每个节点的候选父节点集合2爬山搜索阶段在候选父节点集合上使用得分方法优化结构
算法优势提高搜索效率缩小搜索空间,减少不必要的结构评估提高结构质量结合两种方法的优点,找到更优的网络结构平衡效率与精度在计算效率和结构准确性之间取得良好平衡注意:MMHC是目前最流行的混合结构学习方法之一2.贝叶斯网络的参数估计
什么是参数估计?核心定义参数估计是根据数据估计每个节点的条件概率分布(CPD)
估计目标计算每个节点在给定父节点条件下的条件概率为每个节点构建完整的条件概率表(CPT)使贝叶斯网络能够进行概率推断和预测
主要方法1最大似然估计(MLE)通过最大化似然函数估计参数2贝叶斯估计引入先验分布,结合数据进行参数估计3连续变量的参数估计估计连续变量的均值和方差最大似然估计(MLE)
核心思想基本原理通过最大化似然函数来估计贝叶斯网络的参数估计步骤1构造似然函数L(θ|D)2对似然函数求导并令其为零3求解得到参数的最大似然估计值
贝叶斯网络中的应用离散变量通过统计频率估计条件概率P(X|Parents(X))=统计X在给定Parents(X)取值下出现的频率示例假设节点X的父节点为Y,统计样本中X和Y的频率:N(X=1,Y=1)=30N(Y=1)=100P(X=1|Y=1)=30/100=0.3贝叶斯估计
贝叶斯公式公式组成θ贝叶斯网络的参数D观测数据P(θ)先验分布P(D|θ)似然函数
特点与优势核心思想引入先验分布,将先验知识与观测数据结合,得到后验分布主要优势处理不确定性:有效处理参数估计中的不确定性小样本稳健:数据量较小时表现更稳健融入先验:结合领域知识提高估计精度可以使用MCMC等方法对后验分布进行采样,进而估计条件概率
连续变量的参数估计
参数估计任务核心任务如果贝叶斯网络中的节点是连续变量(如符合正态分布的随机变量),参数估计通常涉及估计均值和方差
估计参数μ均值-分布的中心位置σ²方差-分布的离散程度
估计方法高斯分布估计假设条件分布是高斯分布,使用样本均值和样本方差估计参数适用:分布形式已知计算简单高效核密度估计(KDE)用于估计连续变量的概率分布,尤其是当假设分布形式不明确时适用:分布形式未知更加灵活
选择建议:根据数据特点选择合适的估计方法,高斯分布适用于参数已知情况,核密度估计适用于复杂分布贝叶斯网络Python实现
代码实现
#导入必要的库
frompgmpy.modelsimportBayesianNetworkfrompgmpy.factors.discreteimportTabularCPDfrompgmpy.inferenceimportVariableElimination#定义贝叶斯网络结构(A->B,A->C)
model=BayesianNetwork([('A','B'),('A','C')])#定义条件概率分布(CPDs)
#A的概率分布
cpd_A=TabularCPD(variable='A',variable_card=2,values=[[0.7],[0.3]])#B的条件概率分布
cpd_B=TabularCPD(variable='B',variable_card=2,values=[[0.9,0.4],[0.1,0.6]],evidence=['A'],evidence_card=[2])#C的条件概率分布
cpd_C=TabularCPD(variable='C',variable_card=2,values=[[0.8,0.2],[0.2,0.8]],evidence=['A'],evidence_card=[2])#将CPDs添加到模型中
model.add_cpds(cpd_A,cpd_B,cpd_C)#使用变量消元法进行推断
inference=VariableElimination(model)result=inference.query(variables=['B'],evidence={'A':1})
关键步骤1定义网络结构使用BayesianNetwork定义有向边2定义条件概率表使用TabularCPD定义各节点的CPT3验证模型使用check_model()验证模型正确性4概率推断使用VariableElimination进行推断提示:pgmpy库提供了完整的贝叶斯网络功能,包括结构学习、参数估计和概率推断8.2.3贝叶斯网络应用示例
材料科学中的应用应用背景贝叶斯网络通过有向无环图结构刻画变量之间的条件依赖关系,在材料科学中具有重要应用价值核心价值可解释性强:理解变量间的因果依赖关系小特征可用:在数据有限时依然表现稳健
应用案例1分子极化率等级预测对比高斯朴素贝叶斯与贝叶斯网络在分子分类任务中的表现2分子热稳定性等级预测通过原子计数预测分子热稳定性等级,揭示化学规律两个案例均使用QM9数据集,包含约13.4万个稳定的小有机分子1.分子极化率等级预测-高斯朴素贝叶斯
任务描述QM9数据集约13.4万个稳定的小有机分子,包含丰富的物理化学性质数据分类任务判断分子是否含氧原子(二分类问题)输入特征C原子数H原子数O原子数N原子数F原子数总原子数
应用流程1数据准备从SDF文件解析分子结构,提取原子计数特征2模型训练使用高斯朴素贝叶斯学习原子组成与含氧状态的关系3模型评估计算准确率、混淆矩阵,分析学习到的参数4结果分析揭示含氧分子与原子组成的化学规律高斯朴素贝叶斯实验结果
性能指标准确率Accuracy87.24%
混淆矩阵预测:无氧预测:含氧实际:无氧334正确预测0误判实际:含氧0误判1666正确预测
学习到的特征均值化学规律发现含氧分子平均含8.07个氢原子(少于无氧分子的8.66个),氮原子更多,反映了氧原子替代氢原子、小分子更易含氧的化学规律特征无氧分子含氧分子差异C(碳)5.775.08↓H(氢)8.668.07↓显著O(氧)0.001.58↑标志N(氮)1.471.88↑显著F(氟)0.040.00↓总原子数15.9315.61↓分子极化率等级预测-贝叶斯网络
方法对比高斯朴素贝叶斯假设特征条件独立无法捕获特征间相关性计算简单、训练快速贝叶斯网络显式建模特征依赖关系更真实反映原子组成关联提升可解释性与预测能力
贝叶斯网络优势可解释性强通过有向无环图直观展示变量间的因果关系预测能力提升考虑特征间的真实依赖关系,提高分类准确性揭示化学规律发现原子组成与分子性质之间的内在关联贝叶斯网络在材料科学中具有广泛应用价值,能够同时提供预测能力和可解释性贝叶斯网络实验结果
性能对比准确率对比高斯朴素贝叶斯79.18%贝叶斯网络87.24%准确率提升+8.06%关键发现贝叶斯网络通过显式建模原子组成之间的依赖关系,有效提升了分类性能
网络结构分析学习到的依赖关系总原子数→各原子计数原子计数→含氧状态C、H、O、N、F之间的相关性揭示的化学规律杂原子减少稳定性饱和增加稳定性基线建模价值通过"简单模型+简单特征"即可快速建立基线,为复杂模型提供参考分子热稳定性等级预测任务描述
任务目标热稳定性预测分子热稳定性是评估材料在高温环境下性能保持能力的关键指标,直接影响材料在能源存储、高温催化、航空航天等领域的应用潜力输入特征原子计数(C、H、O、N、F)及总原子数输出目标热稳定性等级(低/
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 课本里的非遗文化|木雕艺术与雕刻拓展教案
- 贵溪市三县岭林场招聘社区网格员备考题库附答案详解
- 郑州市登封市招聘社区网格员备考题库附答案详解
- 2026年郑州理工职业学院单招职业适应性考试题库带答案详解
- 潘集区田集街道招聘社区网格员考试试题附答案详解
- 泸西县招聘社区网格员备考题库附答案详解
- 2026年辽宁理工职业大学单招综合素质考试题库及完整答案详解1套
- 缙云县城北乡招聘社区网格员真题附答案详解
- 珙县罗渡苗族乡招聘社区网格员真题附答案详解
- 玉龙县黄山镇招聘社区网格员真题附答案详解
- 2026年智能制造评估师考试试题及答案
- 后张法预应力T梁台座施工工艺
- 闭店安全检查制度
- 三支一扶讲座课件
- 雨课堂学堂在线学堂云《足球裁判法(东北大学 )》单元测试考核答案
- 建筑工地安全员培训资料与手册
- GB/T 46194-2025道路车辆信息安全工程
- 建筑工程项目全生命周期资料管理
- 湛江一中自主招生考试试卷及答案
- 北京市海淀区某中学2024-2025学年七年级下学期期末数学试题(解析版)
- 日本小学生安全培训课件
评论
0/150
提交评论