基于贝叶斯概率模型的机器学习

更新时间:2023-04-21 11:15:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

基于贝叶斯概率模型的机器学习

(应用于水华预测)

姓 名:白正彪

学 院:自动化学院

学 号: 2010203147

机器学习总结及朴素贝叶斯在水华预

警中的应用

一 机器学习总结

机器学习(Machine Learning)是研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。他是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域,他主要使用归纳、综合而不是演译。学习能力是智能行为的一个非常重要的特征,但至今对学习的机理尚不清晰。人们曾对机器学习给出各种定义。H.A.Simon认为,学习是系统所作的适应性变化,使得系统在下一次完成同样或类似的任务时更为有效。R.s.Michalski认为,学习是构造或修改对于所经历事物的表示。从事专家系统研制的人们则认为学习是知识的获取。这些观点各有侧重,第一种观点强调学习的外部行为效果,第二种则强调学习的内部过程,而第三种主要是从知识工程的实用性角度出发的。

机器学习在人工智能的研究中具有十分重要的地位。一个不具有学习能力的智能系统难以称得上是个真正的智能系统,不过以往的智能系统都普遍缺少学习的能力。例如,他们遇见错误时不能自我校正;不会通过经验改善自身的性能;不会自动获取和发现所需要的知识。他们的推理仅限于演绎而缺少归纳,因此至

多只能够证实已存在事实、定理,而不能发现新的定理、定律和规则等。随着人工智能的深入发展,这些局限性表现得愈加突出。正是在这种情形下,机器学习逐渐成为人工智能研究的核心之

一。他的应用已遍及人工智能的各个分支,如专家系统、自动推理、自然语言理解、模式识别、计算机视觉、智能机器人等领域。其中尤其典型的是专家系统中的知识获取瓶颈问题,人们一直在努力试图采用机器学习的方法加以克服。

机器学习的研究是根据生理学、认知科学等对人类学习机理的了解,建立人类学习过程的计算模型或认识模型,发展各种学习理论和学习方法,研究通用的学习算法并进行理论上的分析,建立面向任务的具有特定应用的学习系统。这些研究目标相互影响相互促进。

分类

– 朴素贝叶斯(Native Bayes)

– Fisher线性判别

– 支持向量机(support vector machine, SVM)

– K近邻(k nearest neighbors, kNN)

聚类

– K均值(K means)

机器学习的应用

多媒体处理

– 人脸识别、指纹识别

– 视频跟踪

– 哼唱找歌

自然语言处理

– 机器翻译

– 信息检索(google, baidu)

– 中文输入法

生物信息处理

– 基因挖掘

– 大分子功能预测

– 基因调控关系

网络安全

– 垃圾邮件过滤

– 敏感图片识别

– 病毒检测

二 基于朴素贝叶斯概率模型的水华预测及仿真

在对不同的水体状态和外界环境对近期会发生水华现象之概率估计的影响因子不同的研究基础上,建立了基于bayes分类器的概率预测模型。以概率的形式提供给决策者和风险函数的引入也是符合实际或必要的;而且此模型克服了神经网络模型的不可解释性以及决策树模型对缺失数据的敏感性和过度拟合问题,充分利用先验信息和历史数据推理预测水华的爆发;仿真结果也

验证了此模型具有稳定的预测效率。

所谓水华(water blooms),就是淡水水体中藻类大量繁殖的一种自然生态现象,是水体富营养化的一种特征,主要由于生活及工农业生产中含有大量氮、磷的废污水进入水体后,蓝藻、绿藻、硅藻等藻类成为水体中的优势种群,大量繁殖后使水体呈现蓝色或绿色的一种现象;也是叶绿素a急剧增长的过程。淡水中“水华”造成的危害是:水中溶氧大量减少、鱼类等生物大量死亡、饮用水源受到污染,藻毒素通过食物链影响人类的健康;还会带来水污染甚至是空气污染;使与水产相关的经济链遭受损失。

湖泊的富营养化是水华现象发生的主要因素,主要指标是水中的总含氮量(N)和总含磷量(P)。当水中的氮、磷等有营养盐浓度大量增加后,为藻类快速繁殖提供了有利的条件,加上适度的水体温度(T)、外界光照强度(S)、溶解氧浓度(DO)和水的PH值等外部条件,致使藻类爆发性生长,聚集漂浮到水面上,从而形成水华。国外的学者应用决策树和分段非线性统计回归方法,也有国内的学者采用神经网络或其改进方法成功预测了水中的叶绿素a浓度的变化趋势,都取得了较大的成效。水华的爆发概率不仅与外界环境因素和水体物质成分有关,而且随地域和季节的不同而发生变化,这些不确定因素使得用常规方法建立准确的预测模型变得相对困难;而贝叶斯概率模型正是通过对样本学习,在新的测试样本输入下,以概率的形式得到推理结果并提供

给决策者。决策者根据客观的推理结果做出相应的预防措施,如增大水体流速、洒粘土和投放鱼类等。概率的大小或增减趋势也反映了水华爆发的时间积累信息(这段时间对预测结果肯定或否定的贡献值)。

朴素贝叶斯分类器(Naïve Bayes Classifer)

一般而言,贝叶斯求解的是最大后验概率,由果推因;反过来说,在存在一定因果关系的基础上,由因推果(由存在的证据推算某类结果的概率)的贝叶斯模型在理论上也成立。朴素贝叶斯模型发源于古典数学理论,有着坚实的数学基础,此模型所需估计的参数很少,算法的实现也比较简单。理论上,朴素贝叶斯模型与其他分类方法相比具有最小的误差率。

贝叶斯公式:

p(B|A)P(A)p(A|B) (1) p(B)

p(A|B)表示在B事件发生的条件下,A事件发生的概率; P(A),p(B)分别表示A、B事件发生的概率;

假定目标函数 f : X Y; 向量X=<x1,x2…xn>

根据公式(1)

YMAP argmaxP(yj|x1,x2...xn)

yj Y

YMAP argmax

yj Y

yj YP(x1,x2...xn|yj)P(yj)P(x1,x2...xn) argmaxP(x1,x2...xn|yj)P(yj)

YMAP表示f(X)取得最大值时的yj,即按照贝叶斯原理推理得到yj类。

朴素贝叶斯分类器默认x1,x2…xn之间相互独立

故: P(x1,x2...xn|yj) P(xi|yj)

i

YMAP argmaxP(yj) P(xi|yj) (2) y Yji

argmaxlogP(yj) logP(xi|yj)

yj Yi

argmin logP(yj) logP(xi|yj)

yj Yi

在本文中,X=<x1,x2…x6> 是包含传感器测得的水质总含氮量

(N)、总含磷量(P) 、水体温度(T)、外界光照强度(S)、溶解氧浓度(DO)和PH六种信息的向量,具体的元素值是传感器的测得数据经过卡尔曼滤波或其他滤波器处理的输出值。通常情况下,水体的富营养化是由人类活动引起的,如低水平的制造业产生的工业废水,现代化农业生产中大量流失的农药、化肥,未经处理的城镇生活污水,高密度水产养殖遗留的剩余饵料,以及在航运、旅游等水上活动产生的一些污染物等;外界条件也是可

以认为是相互独立的,故可以认为X的属性是相互独立的,满足朴素贝叶斯的假设条件。 另外,还把预测结果Y分为二类:y1代表近期会发生水华现象,y2代表近期不会发生水华现象。 P(yj|x1,x2,x3,x4,x5,x6)表示在测得一组向量X=<x1,x2…x6>的条件先yj事件发生的概率,YMAP 是在向量X=<x1,x2…x6>的条件下y1和y2之中发生概率较大的那个事件,也是此模型的输出,辅助决策者做出决策(是否采取人工干预措施预防水华的爆发)。P(yj)是yj(j 1,2)事件发生的先验概率,之所以称为"先验"是因为它不考虑任何X方面的因素,它可以来自决策者的经验也可以是从样本数据中学习过程。P(xi|yj)是条件概率密度,代表yj发生的条件下向量X中第i个属性发生的概率密度,是在样本学习中估计的概率密度。

仿真样本的设计:水华爆发的条件水体温度(25-30)跟季节有很大的关系,光强4000-4500 lx,河水PH8.2最高达到8.4是水华生长最快,氮磷比7 :1 ,DO (水中的溶氧量)有升高的趋势随后减小。此模型的泛化能力和适应性,只需根据当地的实际条件的实际样本进行训练再结合统计先验概率或人的经验估计 训练样本的设计:

测试样本

推理结果以概率的形式表示出来:

有上述数据可知,第一个测试样本(现场采集的数据)通过贝叶斯推理属于第二类的概率是0.7499,而第二个样本属于第二类的概率是0.9560,即系统根据两个样本预测不会发生水华的概率分别是0.7499和0.9560。同理会发生水华的概率分别是0.2501和0.0440,即第一个样本发生水华的概率大些。决策者根据这些辅助结果做出相应的应对措施。

总结和展望:

这是数据统计的分类方法,缺点是:当数据训练集越大时,

处理得越精确,但是数据训练集小的话,分类就不是很准确了。优点是;理论比较简单,可操作性比较强,在大多数的情况下都可行,分类准确性比较好。

附件.Matlab程序

clear;clc;

yangben=[

1 3.37 2.24 2.67 7.53 1.68 0.38

1 1.21 2.52 3.15 4.23 0.63 0.06

1 3.24 2.04 4.55 8.16 1.25 0.42

2 2.44 2.09 36.05 5.44 28.72 6.25

2 2.20 2.32 35.94 5.03 28.78 6.36

2 2.12 1.90 36.80 5.70 28.93 6.18

2 2.96 3.27 34.55 5.48 28.67 6.61

2 2.25 1.80 36.43 5.33 28.95 5.83

2 2.19 1.87 36.69 5.55 28.98 6.23

2 1.97 1.22 37.61 5.06 31.46 4.25

2 2.64 1.41 35.73 5.03 32.21 2.54

3 2.17 1.22 32.1 6.41 28.93 0.15

3 1.81 1.05 31.03 3.89 28.78 1.22

3 1.49 0.83 31.06 3.85 29.01 0.52

3 2.15 1 30.61 5.47 28.07 0.22

3 0.36 0.17 51.05 23.45 28.06 0.07

3 0.12 0.10 62.31 40.91 17.37 0.66

3 0.22 0.11 53.17 21.88 28.64 0.09

3 2.33 1.64 33.95 7.66 29.54 0.72

3 0.93 0.41 11.71 6.49 1.6 4.96

];

g=3;

[m,n]=size(yangben);

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

for i=1:g

groupNum(i)=0;

group(i)=0;

for j=1:m

if yangben(j,1)==i

group(i)=group(i)+1;

end

end

if i==1

groupNum(i)=group(i);

else

groupNum(i)=groupNum(i-1)+group(i);

end

end

group; %计算分类个数数组

groupNum; %各类的分界线

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%计算总平均值

% for j=1:n-1

% TotalMean(j)=0;

% for i=1:m

% TotalMean(j)=TotalMean(j)+yangben(i,j+1);

% end

% TotalMean(j)=TotalMean(j)/m;

% end

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

GroupMean=[] ;

for i=1:g

if i==1

low=1;

up=groupNum(i);

else

low=groupNum(i-1)+1;

up=groupNum(i);

end

matrix=yangben(low:up,:);%KNIFE 改过 (low:up,:)

MatrixMean=mean(matrix); %各分类组平均值

GroupMean=[GroupMean;MatrixMean];

for u=low:up

for v=2:n

C(u,v-1)=yangben(u,v)-MatrixMean(v);

end

end

end

C

GroupMean

V=C'*C/(m-g); %协方差矩阵

V_inv=inv(V); %对矩阵V求逆

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

GroupMean=GroupMean(:,2:n);

Q1=GroupMean*V_inv

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

for i=1:g

mat=GroupMean(i,:);

Q2(i)=log(group(i)/m)-0.5*mat*V_inv*mat';

end

Q2

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

b=[

5.38 2.44 2.77 8.53 1.58 0.48

1.11 1.62 3.05 4.29 0.29 0.08

3.24 2.04 4.55 8.16 1.25 0.42

3.12 1.78 3.47 7.41 0.74 0.22

3.22 1.91 3.87 7.69 0.97 0.34

1.91 1.68 34.6 6.03 27.47 4.69

2.77 1.84 34.74 5.58 29.36 4.44

2.5 1.55 37.47 5.45 30.71 5.36

2 1.09 35.2 4.59 30.27 3.43

2.62 2.25 35.56 5.68 28.96 5.79

3.23 2.93 32.86 5.43 27.6 5.37

2.44 2.09 36.05 5.44 28.72 6.25

2.20 2.32 35.94 5.03 28.78 6.36

2.12 1.90 36.80 5.70 28.93 6.18

2.96 3.27 34.55 5.48 28.67 6.61

2.25 1.80 36.43 5.33 28.95 5.83

2.19 1.87 36.69 5.55 28.98 6.23

1.97 1.22 37.61 5.06 31.46 4.25

2.64 1.41 35.73 5.03 32.21 2.54

0.14 0.19 69.64 41.52 13.73 0.05

0.14 0.16 18.68 16.45 0.58 0.31

0.21 0.4 78.97 42.36 27.18 0

0.3 0.2 77.93 38.32 36.05 0.64

0.32 0.29 56.87 21.26 36.2 0.02

0.1 0.16 50.53 16.45 30.38 2.29

0.06 0.22 50.48 13.46 31.05 1.78

0.19 0.09 35.69 6.5 28.34 0.77

0.26 0.24 35.41 6.88 28.37 0.66

0.13 0.15 40.05 10.43 28.36 1.54

1.26 0.39 35.16 7.97 24.85 3.99

0.88 0.53 38.46 7.76 26.24 5.87

1.27 0.57 37.06 7.84 27.26 3.8

0.22 0.22 43.18 11.88 28.93 2.81 0.15 0.13 53.09 15.67 35.11 0.08

1.28 0.61 34.37 0.39 28.94 1.92 0.33 0.6 37.65 6.38 30.05 0.97 0.49 0.31 53.97 15.4 32.87 3.69

2.17 1.22 32.1 6.41 28.93 0.15

1.81 1.05 31.03 3.89 28.78 1.22

1.49 0.83 31.06 3.85 29.01 0.52

2.15 1 30.61 5.47 28.07 0.22 0.36 0.17 51.05 23.45 28.06 0.07 0.12 0.10 62.31 40.91 17.37 0.66 0.22 0.11 53.17 21.88 28.64 0.09

2.33 1.64 33.95 7.66 29.54 0.72 0.93 0.41 11.71 6.49 1.6 4.96

]; % 判别的样本

[u,v]=size(b);

result=[];

for i=1:u

x=b(i,:);

yy=Q1*x'+Q2';

result=[result yy];

end

res=result' %计算的待判数据对各标准数据的线性计算值

[rows,cols]=size(result);

for i=1:cols

iljj=0;

mlljj=result(:,i);

for j=1:rows

iljj=iljj+exp(result(j,i)-max(mlljj)); end

for j=1:rows

PostPro(j,i)=exp(result(j,i)-max(mlljj))/iljj; end

end

H=PostPro' %后验概率

本文来源:https://www.bwwdw.com/article/xrhq.html

Top