人工智能主观贝叶斯分析实验

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

人工智能实验报告

西安交大

一、实验目的

(1)学习了解java编程语言,掌握基本的算法实现;

(2)深入理解贝叶斯理论和不确定性推理理论;

(3)学习运用主观贝叶斯公式进行不确定推理的原理和过程

二、实验题目

用java语言实现运用主观贝叶斯公式进行不确定性推理的过程:根据初始证据E的概率P(E)及LS、LN的值,把H的先验概率P(H)更新为后验概率P(H/E)或者P(H/﹁E)。要求如下:

(1)充分考虑各种证据情况:证据肯定存在、证据肯定不存在、观察与证据无关、其他情况;

(2)考虑EH公式和CP公式两种计算后验概率的方法;

(3)给出EH公式的分段线性插值图;

三、实验原理

1、知识的不确定性

在主观贝叶斯方法中,只是是如下形式的产生式规则表示:

IF E THEN (LS,LN) H (P(H))

LS是充分性度量。其定义为:

LS=P(E|H)/P(E|?H)。

LN是必要性度量,其定义为:

LN=P(?E|H)/P(?E|?H)=(1-P(E|H))/(1-P(E|?H))。

2、证据不确定时的计算公式

四、实验代码

import .*;

import

import

import

import .*;

public class bayes extends JFrame implements ActionListener{

JPanel panel=new JPanel();

JLabel ph=new JLabel("P(H)");

JTextField PH=new JTextField("",3);

JLabel pe=new JLabel("P(E)");

JTextField PE=new JTextField("",3);

JLabel ls=new JLabel("LS");

JTextField LS=new JTextField("",3);

JLabel ln=new JLabel("LN");

JTextField LN=new JTextField("",3);

Button compute=new Button("COMPUTE");

static double t_ph;

static double t_pe;

static double t_ln;

static double t_ls;

static double ph_e; //P(E/S)=0 时 PHS static double phe; //P(E/S)=1 时 PHS public bayes()

{

setLayout(new BorderLayout());

(new FlowLayout());

(ph);

(PH);

(pe);

(PE);

(ln);

(LN);

(ls);

(LS);

(panel);

(this);

(compute,;

}

public static void main(String [] args)

{

bayes a=new bayes();

(400,250);

(true);

(EXIT_ON_CLOSE);

}

@Override

public void actionPerformed(ActionEvent arg0) { // TODO Auto-generated method stub

t_ph=new Double());

t_pe=new Double());

t_ls=new Double());

t_ln=new Double());

ph_e=t_ln*t_ph/((t_ln-1)*t_ph+1);

phe=t_ls*t_ph/((t_ls-1)*t_ph+1);

display c=new display();

}

}

class draw extends JPanel{

public void paint(Graphics g)

{

(g);

(50, 350, 350, 350);

(50, 50, 50, 350 );

(50, 350-(int)*300), 50+(int)*300),350-(int)*300));

(50+(int)*300),350-(int)*300),350,350-(int)*300));

}

}

class display extends JFrame{

public display()

{

draw b=new draw();

(b);

;

(true);

(400,400);

}

}

五、实验结果

输入初始值:

图像结果显示:

六、实验总结

由于本次实验是第一次使用java语言进行编程,在领略到java语言的方便与强大功能的同时,也有有很多不尽如人意的地方。编写程序时遇到种种困难,对于java编程的不适应,最终经过努力还是完成了实验。收获很大。

相关文档
最新文档