《人工智能化主观贝叶斯分析实验.doc》由会员分享,可在线阅读,更多相关《人工智能化主观贝叶斯分析实验.doc(5页珍藏版)》请在课桌文档上搜索。
1、 人工智能实验报告某交大一、实验目的(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、知识的不确定性在主观
2、贝叶斯方法中,只是是如下形式的产生式规则表示:IFETHEN(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 java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;importjava.util.Scanner;import javax.swing.*;publicclassbayesexten
3、ds JFrame implements ActionListenerJPanel 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);Butto
4、n pute=new Button(PUTE);staticdoublet_ph;staticdoublet_pe;staticdoublet_ln;staticdoublet_ls;staticdoubleph_e; /P(E/S)=0 时 PHSstaticdoublephe; /P(E/S)=1 时 PHSpublic bayes()setLayout(new BorderLayout();panel.setLayout(new FlowLayout();panel.add(ph);panel.add(PH);panel.add(pe);panel.add(PE);panel.add(l
5、n);panel.add(LN);panel.add(ls);panel.add(LS);this.add(panel);pute.addActionListener(this);this.add(pute,BorderLayout.SOUTH);publicstaticvoid main(String args)bayes a=new bayes();a.setSize(400,250);a.setVisible(true);a.setDefaultCloseOperation(EXIT_ON_CLOSE);Overridepublicvoid actionPerformed(ActionE
6、vent arg0) / TODO Auto-generated method stubt_ph=new Double(PH.getText();t_pe=new Double(PE.getText();t_ls=new Double(LS.getText();t_ln=new Double(LN.getText();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 drawextends JPanelpublicvoid paint(Graphics g)s
7、uper.paint(g);g.drawLine(50, 350, 350, 350);g.drawLine(50, 50, 50, 350 );g.drawLine(50, 350-(int)(bayes.ph_e*300), 50+(int)(bayes.t_pe*300),350-(int)(bayes.t_ph*300);g.drawLine(50+(int)(bayes.t_pe*300),350-(int)(bayes.t_ph*300),350,350-(int)(bayes.phe*300);classdisplayextends JFramepublic display()draw b=new draw();this.add(b);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setVisible(true);this.setSize(400,400);五、实验结果输入初始值:图像结果显示:六、实验总结由于本次实验是第一次使用java语言进行编程,在领略到java语言的方便与强大功能的同时,也有有很多不尽如人意的地方。编写程序时遇到种种困难,对于java编程的不适应,最终经过努力还是完成了实验。收获很大。5 / 5