人工智能主观贝叶斯分析实验
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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编程的不适应,最终经过努力还是完成了实验。收获很大。