±´Ò¶Ë¹ÊµÑ鱨¸æ ÏÂÔØ±¾ÎÄ

HUNAN UNIVERSITY

È˹¤ÖÇÄÜʵÑ鱨¸æ

Ìâ Ä¿ ʵÑéÈý£º·ÖÀàË㷨ʵÑé

ѧÉúÐÕÃû ÄäÃû ѧÉúѧºÅ2013080702xx

רҵ°à¼¶ÖÇÄÜ¿ÆÑ§Óë¼¼Êõ1302°à Ö¸µ¼ÀÏʦ Ô¬½ø

Ò»£®ÊµÑéÄ¿µÄ

1.Á˽âÆÓËØ±´Ò¶Ë¹Ëã·¨µÄ»ù±¾Ô­Àí£» 2.Äܹ»Ê¹ÓÃÆÓËØ±´Ò¶Ë¹Ëã·¨¶ÔÊý¾Ý½øÐзÖÀà

3.Á˽â×îС´íÎó¸ÅÂʱ´Ò¶Ë¹·ÖÀàÆ÷ºÍ×îС·çÏÕ¸ÅÂʱ´Ò¶Ë¹·ÖÀàÆ÷ 4.ѧ»á¶ÔÓÚ·ÖÀàÆ÷µÄÐÔÄÜÆÀ¹À·½·¨

¶þ¡¢ÊµÑéµÄÓ²¼þ¡¢Èí¼þƽ̨

Ó²¼þ£º¼ÆËã»ú

Èí¼þ£º²Ù×÷ϵͳ£ºWINDOWS 10 Ó¦ÓÃÈí¼þ£ºC,Java»òÕßMatlab Ïà¹ØÖªÊ¶µã:

±´Ò¶Ë¹¶¨Àí£º

±íʾʼþBÒѾ­·¢ÉúµÄǰÌáÏ£¬Ê¼þA·¢ÉúµÄ¸ÅÂÊ£¬½Ð×öʼþB·¢ÉúÏÂʼþAµÄÌõ¼þ¸Å

ÂÊ£¬Æä»ù±¾Çó½â¹«Ê½Îª£º

±´Ò¶Ë¹¶¨Àí´òͨÁË´ÓP(A|B)»ñµÃP(B|A)µÄµÀ·¡£

Ö±½Ó¸ø³ö±´Ò¶Ë¹¶¨Àí£º

ÆÓËØ±´Ò¶Ë¹·ÖÀàÊÇÒ»ÖÖÊ®·Ö¼òµ¥µÄ·ÖÀàËã·¨£¬½ÐËüÆÓËØ±´Ò¶Ë¹·ÖÀàÊÇÒòΪÕâÖÖ·½·¨µÄ˼ÏëÕæµÄºÜÆÓËØ£¬ÆÓËØ±´Ò¶Ë¹µÄ˼Ïë»ù´¡ÊÇÕâÑùµÄ£º¶ÔÓÚ¸ø³öµÄ´ý·ÖÀàÏÇó½âÔÚ´ËÏî³öÏÖµÄÌõ¼þϸ÷¸öÀà±ð³öÏֵĸÅÂÊ£¬Äĸö×î´ó£¬¾ÍÈÏΪ´Ë´ý·ÖÀàÏîÊôÓÚÄĸöÀà±ð¡£

ÆÓËØ±´Ò¶Ë¹·ÖÀàµÄÕýʽ¶¨ÒåÈçÏ£º

1¡¢Éè

Ϊһ¸ö´ý·ÖÀàÏ¶øÃ¿¸öaΪxµÄÒ»¸öÌØÕ÷ÊôÐÔ¡£

¡£

¡£

£¬Ôò

¡£

2¡¢ÓÐÀà±ð¼¯ºÏ 3¡¢¼ÆËã 4¡¢Èç¹û

ÄÇôÏÖÔڵĹؼü¾ÍÊÇÈçºÎ¼ÆËãµÚ3²½Öеĸ÷¸öÌõ¼þ¸ÅÂÊ¡£ÎÒÃÇ¿ÉÒÔÕâô×ö£º 1¡¢ÕÒµ½Ò»¸öÒÑÖª·ÖÀàµÄ´ý·ÖÀàÏºÏ£¬Õâ¸ö¼¯ºÏ½Ð×öѵÁ·Ñù±¾¼¯¡£ 2¡¢Í³¼ÆµÃµ½ÔÚ¸÷Àà±ðϸ÷¸öÌØÕ÷ÊôÐÔµÄÌõ¼þ¸ÅÂʹÀ¼Æ¡£¼´

3¡¢Èç¹û¸÷¸öÌØÕ÷ÊôÐÔÊÇÌõ¼þ¶ÀÁ¢µÄ£¬Ôò¸ù¾Ý±´Ò¶Ë¹¶¨ÀíÓÐÈçÏÂÍÆµ¼£º

ÒòΪ·Öĸ¶ÔÓÚËùÓÐÀà±ðΪ³£Êý£¬ÒòΪÎÒÃÇÖ»Òª½«·Ö×Ó×î´ó»¯½Ô¿É¡£ÓÖÒòΪ¸÷ÌØÕ÷ÊôÐÔÊÇÌõ¼þ¶ÀÁ¢

µÄ£¬ËùÒÔÓУº

Õû¸öÆÓËØ±´Ò¶Ë¹·ÖÀà·ÖΪÈý¸ö½×¶Î£º

µÚÒ»½×¶Î: ×¼±¸¹¤×÷½×¶Î£¬Õâ¸ö½×¶ÎµÄÈÎÎñÊÇΪÆÓËØ±´Ò¶Ë¹·ÖÀà×ö±ØÒªµÄ×¼±¸£¬Ö÷Òª¹¤×÷ÊǸù¾Ý¾ßÌåÇé¿öÈ·¶¨ÌØÕ÷ÊôÐÔ£¬²¢¶Ôÿ¸öÌØÕ÷ÊôÐÔ½øÐÐÊʵ±»®·Ö£¬È»ºóÓÉÈ˹¤¶ÔÒ»²¿·Ö´ý·ÖÀàÏî½øÐзÖÀ࣬ÐγÉѵÁ·Ñù±¾¼¯ºÏ¡£ÕâÒ»½×¶ÎµÄÊäÈëÊÇËùÓдý·ÖÀàÊý¾Ý£¬Êä³öÊÇÌØÕ÷ÊôÐÔºÍѵÁ·Ñù±¾¡£ÕâÒ»½×¶ÎÊÇÕû¸öÆÓËØ±´Ò¶Ë¹·ÖÀàÖÐΨһÐèÒªÈ˹¤Íê³ÉµÄ½×¶Î£¬ÆäÖÊÁ¿¶ÔÕû¸ö¹ý³Ì½«ÓÐÖØÒªÓ°Ï죬·ÖÀàÆ÷µÄÖÊÁ¿ºÜ´ó³Ì¶ÈÉÏÓÉÌØÕ÷ÊôÐÔ¡¢ÌØÕ÷ÊôÐÔ»®·Ö¼°ÑµÁ·Ñù±¾ÖÊÁ¿¾ö¶¨¡£

µÚ¶þ½×¶Î: ·ÖÀàÆ÷ѵÁ·½×¶Î£¬Õâ¸ö½×¶ÎµÄÈÎÎñ¾ÍÊÇÉú³É·ÖÀàÆ÷£¬Ö÷Òª¹¤×÷ÊǼÆËãÿ¸öÀà±ðÔÚѵÁ·Ñù±¾ÖеijöÏÖÆµÂʼ°Ã¿¸öÌØÕ÷ÊôÐÔ»®·Ö¶Ôÿ¸öÀà±ðµÄÌõ¼þ¸ÅÂʹÀ¼Æ£¬²¢½«½á¹û¼Ç¼¡£ÆäÊäÈëÊÇÌØÕ÷ÊôÐÔºÍѵÁ·Ñù±¾£¬Êä³öÊÇ·ÖÀàÆ÷¡£ÕâÒ»½×¶ÎÊÇ»úеÐԽ׶Σ¬¸ù¾ÝÇ°ÃæÌÖÂ۵Ĺ«Ê½¿ÉÒÔÓɳÌÐò×Ô¶¯¼ÆËãÍê³É¡£

µÚÈý½×¶Î: Ó¦Óý׶Ρ£Õâ¸ö½×¶ÎµÄÈÎÎñÊÇʹÓ÷ÖÀàÆ÷¶Ô´ý·ÖÀàÏî½øÐзÖÀ࣬ÆäÊäÈëÊÇ·ÖÀàÆ÷ºÍ´ý·ÖÀàÏÊä³öÊÇ´ý·ÖÀàÏîÓëÀà±ðµÄÓ³Éä¹ØÏµ¡£ÕâÒ»½×¶ÎÒ²ÊÇ»úеÐԽ׶Σ¬ÓɳÌÐòÍê³É¡£

Èý¡¢ÊµÑéÄÚÈݼ°²½Öè

ʵÑéÄÚÈÝ£º

A.ÀûÓñ´Ò¶Ë¹Ëã·¨½øÐÐÊý¾Ý·ÖÀà²Ù×÷£¬²¢Í³¼ÆÆäÔ¤²âÕýÈ·ÂÊ,Êý¾Ý¼¯£ºÆû³µÆÀ¹ÀÊý¾Ý¼¯£¨learn×÷Ϊѧϰ¼¯£¬test×÷Ϊ²âÊÔ¼¯ºÏ£©

B.Ëæ»ú²úÉú10000×éÕýÑù±¾ºÍ20000¸ºÑù±¾¸ß˹·Ö²¼µÄÊý¾Ý¼¯ºÏ£¨Î¬ÊýÉèΪ¶þά£©£¬ÒªÇóÕýÑù±¾£º¾ùֵΪ[1;3]£¬·½²îΪ[2 0;0 2]£»¸ºÑù±¾£º¾ùֵΪ[10;20]£¬·½²îΪ[10 0;0 10].ÏÈÑé¸ÅÂʰ´Ñù±¾Á¿É趨Ϊ1/3ºÍ2/3.·Ö±ðÀûÓÃ×îС´íÎó¸ÅÂʱ´Ò¶Ë¹·ÖÀàÆ÷ºÍ×îС·çÏÕ¸ÅÂʱ´Ò¶Ë¹·ÖÀàÆ÷¶ÔÆä·ÖÀà¡££¨¼ÙÉè·çÏճ̶ÈÕýÑù±¾·Ö´í·çÏÕϵÊýΪ0.6£¬¸ºÑù±¾·Ö´í·çÏÕΪ0.4£¬¸ÃÉ趨½öÓÃÓÚ×îС·çÏÕ·ÖÎö£© Ïà¹Ø¸ÅÄî:

±´Ò¶Ë¹·¨Ôò,ÏÈÑé¸ÅÂÊ,ºóÑé¸ÅÂÊ,×î´óºóÑé¸ÅÂÊ

1.±´Ò¶Ë¹·¨Ôò

»úÆ÷ѧϰµÄÈÎÎñ£ºÔÚ¸ø¶¨ÑµÁ·Êý¾ÝDʱ£¬È·¶¨¼ÙÉè¿Õ¼äHÖеÄ×î¼Ñ¼ÙÉè¡£

×î¼Ñ¼ÙÉ裺һÖÖ·½·¨ÊǰÑËü¶¨ÒåΪÔÚ¸ø¶¨Êý¾ÝDÒÔ¼°HÖв»Í¬¼ÙÉèµÄÏÈÑé¸ÅÂʵÄÓйØÖªÊ¶ÏµÄ×î¿ÉÄܼÙÉè¡£±´Ò¶Ë¹ÀíÂÛÌṩÁËÒ»ÖÖ¼ÆËã¼ÙÉè¸ÅÂʵķ½·¨£¬»ùÓÚ¼ÙÉèµÄÏÈÑé¸ÅÂÊ¡¢¸ø¶¨¼ÙÉèϹ۲쵽²»Í¬Êý¾ÝµÄ¸ÅÂÊÒÔ¼°¹Û²ìµ½µÄÊý¾Ý±¾Éí¡£

2.ÏÈÑé¸ÅÂʺͺóÑé¸ÅÂÊ

ÓÃP(h)±íʾÔÚûÓÐѵÁ·Êý¾Ýǰ¼ÙÉèhÓµÓеijõʼ¸ÅÂÊ¡£P(h)±»³ÆÎªhµÄÏÈÑé¸ÅÂÊ¡£ÏÈÑé¸ÅÂÊ·´Ó³Á˹ØÓÚhÊÇÒ»ÕýÈ·¼ÙÉèµÄ»ú»áµÄ±³¾°ÖªÊ¶Èç¹ûûÓÐÕâÒ»ÏÈÑé֪ʶ£¬¿ÉÒÔ¼òµ¥µØ½«Ã¿Ò»ºòÑ¡¼ÙÉ踳ÓèÏàͬµÄÏÈÑé¸ÅÂÊ¡£ÀàËÆµØ£¬P(D)±íʾѵÁ·Êý¾ÝDµÄÏÈÑé¸ÅÂÊ£¬P(D|h)±íʾ¼ÙÉèh³ÉÁ¢Ê±DµÄ¸ÅÂÊ¡£»úÆ÷ѧϰÖУ¬ÎÒÃǹØÐĵÄÊÇP(h|D)£¬¼´¸ø¶¨DʱhµÄ³ÉÁ¢µÄ¸ÅÂÊ£¬³ÆÎªhµÄºóÑé¸ÅÂÊ¡£ 3.±´Ò¶Ë¹¹«Ê½

±´Ò¶Ë¹¹«Ê½ÌṩÁË´ÓÏÈÑé¸ÅÂÊP(h)¡¢P(D)ºÍP(D|h)¼ÆËãºóÑé¸ÅÂÊP(h|D)µÄ·½·¨ p(h|D)=P(D|H)*P(H)/P(D)

P(h|D)Ëæ×ÅP(h)ºÍP(D|h)µÄÔö³¤¶øÔö³¤£¬Ëæ×ÅP(D)µÄÔö³¤¶ø¼õÉÙ£¬¼´Èç¹ûD¶ÀÁ¢ÓÚhʱ±»¹Û²ìµ½µÄ¿ÉÄÜÐÔÔ½´ó£¬ÄÇôD¶ÔhµÄÖ§³Ö¶ÈԽС¡£ 4.¼«´óºóÑé¼ÙÉè

ѧϰÆ÷ÔÚºòÑ¡¼ÙÉ輯ºÏHÖÐѰÕÒ¸ø¶¨Êý¾ÝDʱ¿ÉÄÜÐÔ×î´óµÄ¼ÙÉèh£¬h±»³ÆÎª¼«´óºóÑé¼ÙÉ裨MAP£©È·¶¨MAPµÄ·½·¨ÊÇÓñ´Ò¶Ë¹¹«Ê½¼ÆËãÿ¸öºòÑ¡¼ÙÉèµÄºóÑé¸ÅÂÊ£¬¼ÆËãʽÈçÏÂ:

h_map=argmax P(h|D)=argmax (P(D|h)*P(h))/P(D)=argmax P(D|h)*p(h) (hÊôÓÚ¼¯ºÏH)

C.±àдһ¸ö±´Ò¶Ë¹·ÖÀàÆ÷¡£ÊäÈëΪ£º¾ùÖ¸ÏòÁ¿¡¢ÏÈÑé¸ÅÂÊ¡¢Ð­·½²î¾ØÕó¡¢ÊäÈëѧϰÊý¾ÝX,²âÊÔÊý¾ÝÀà±ðXLABEL,²âÊÔÊý¾ÝY.Êä³öΪY¶ÔÓ¦µÄÀà±ð¡££¨Ñ¡×ö£©¡£

ËÄ¡¢ÊµÑé²½Ö裺

1£®×ÐϸÔĶÁ²¢Á˽âʵÑéÊý¾Ý¼¯£»

2£®Ê¹ÓÃÈκÎÒ»ÖÖÊìϤµÄ¼ÆËã»úÓïÑÔ(±ÈÈçC,Java»òÕßmatlab)ʵÏÖÆÓËØ±´Ò¶Ë¹Ëã·¨£» 3£®ÀûÓÃÆÓËØ±´Ò¶Ë¹Ëã·¨ÔÚѵÁ·Êý¾ÝÉÏѧϰ·ÖÀàÆ÷,ѵÁ·Êý¾ÝµÄ´óС·Ö±ðÉèÖÃΪ£ºÇ°100¸öÊý¾Ý£¬Ç°200¸öÊý¾Ý£¬Ç°500¸öÊý¾Ý£¬Ç°700¸öÊý¾Ý£¬Ç°1000¸öÊý¾Ý£¬Ç°1350¸öÊý¾Ý£» 4£®ÀûÓòâÊÔÊý¾Ý¶ÔѧϰµÄ·ÖÀàÆ÷½øÐÐÐÔÄÜÆÀ¹À£» 5£®Í³¼Æ·ÖÎöʵÑé½á¹û²¢ÉϽ»ÊµÑ鱨¸æ£»

AÔ´´úÂë:

package Bayes;

import java.io.BufferedReader; importjava.io.FileInputStream; importjava.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; importjava.math.BigDecimal; import java.util.Vector;

importBayes.NaiveBayesTool.Property; publicclass NaiveBayesTool { /*

* ÉêÃ÷È«¾Ö±äÁ¿ // Ç°ÃæÊÇ×Ô¼ºµÄÊôÐÔ£¬ºóÃæÊÇvalueµÄÊôÐÔ * */

inttestTotal = 0;// ѵÁ·Ñù±¾ÊýÁ¿

intpredictTotal = 0;// ²âÊÔÑù±¾µÄÊý¾Ý intpredictSucess = 0;// Ô¤²â³É¹¦µÄÊýÁ¿ //´æ´¢ÊýÁ¿

publicint[][] buy=newint[4][4];//vhigh,high,med,low publicint[][] maint=newint[4][4];//vhigh,high,med,low publicint[][] door=newint[4][4];//2,3,4,5more publicint[][] person=newint[3][4];//2,4,more

publicint[][] lug_boot=newint[3][4];//small ,med,big publicint[][] safe=newint[3][4];//low,med,high

publicint[] ClassValues=newint[4];//unacc,acc, good,vgood

String[] ClassValueName = { \, \, \, \ }; //´æ´¢¸ÅÂÊ

float[] ClassValue_gl = newfloat[4];// unacc-0 acc-1 good-2 vgood-3

float[][] buy_Vlaue_gl = newfloat[4][4]; //Ç°ÃæÊÇ×Ô¼ºµÄÊôÐÔ£¬ºóÃæÊÇvalueµÄÊôÐÔ float[][] maint_Value_gl = newfloat[4][4]; float[][] door_Value_gl = newfloat[4][4]; float[][] person_Value_gl = newfloat[3][4]; float[][] lugboot_Value_gl = newfloat[3][4]; float[][] safe_Value_gl = newfloat[3][4]; /**

* Ö÷º¯Êý */

publicstaticvoid main(String[] args) throws IOException { NaiveBayesTool NBayes=new NaiveBayesTool(); NBayes.ReadFile(\);//»ñȡѵÁ·Ñù±¾

NBayes.Calculated_probability();//¼ÆËã¸ÅÂÊ NBayes.TestData();//µ¼Èë²âÊÔÑù±¾Êý¾Ý NBayes.show();//Êä³ö½á¹û }

/*Æû³µÊôÐÔÀà * */

publicclass Property{//Æû³µÓÐ6¸öÊôÐÔ£¬Ã¿¸öÊôÐÔ¶¼Óм¸ÖÖÀà±ð£¬¸ù¾ÝÕâ6¸öÊôÐÔÀ´ÅÐ¶ÏÆû³µµÄÐÔ¼Û±ÈClassvalueÈçºÎ£¬

public String buying;//vhigh,high,med,low public String maint;//vhigh,high,med,low public String doors;//2,3,4,5more public String persons;//2,4,more

public String lug_boot;//small ,med,big public String safety;// low,med,high

public String ClassValues;//unacc,acc, good,vgood

public String[] PredictResult = new String[5];// ¼Ç¼Ԥ²â½á¹û public Property(String b,String m,String d,String p,String l,String s,String c){

buying=b;maint=m;doors=d;

persons=p;lug_boot=l;safety=s; ClassValues=c; } };

VectorData=new Vector();//´æ´¢Êý¾Ý

VectorDataTest=new Vector();//´æ´¢²âÊÔÊý¾Ý /*

* Îļþ¶Áд»ñȡѵÁ·Ñù±¾ * */

publicvoid ReadFile(String filename) throws IOException {

BufferedReader br=new BufferedReader(new FileReader(filename)); String temp=null; temp=br.readLine();

String []str = null;

Property TempClass = null; while(temp!=null){

str=temp.split(\);

TempClass=new Property(str[0],str[1],str[2],str[3],str[4],str[5],str[6]); Statistics(TempClass);//ͳ¼Æ¸öÊý testTotal++;

temp=br.readLine(); } br.close(); } /*

* ͳ¼ÆÃ¿Ò»ÏîµÄ¸öÊývhigh,vhigh,2,2,small,low,unacc * */

publicvoid Statistics(Property car){ for(inti=0;i<4;i++){

if(car.ClassValues.equals(ClassValueName[i])){ ClassValues[i]++; //vhigh,high,med,low

if(car.buying.equals(\)) buy[0][i]++; elseif(car.buying.equals(\)) buy[1][i]++; elseif(car.buying.equals(\)) buy[2][i]++; elsebuy[3][i]++;

//vhigh,high,med,low

if(car.maint.equals(\)) maint[0][i]++; elseif(car.maint.equals(\)) maint[1][i]++; elseif(car.maint.equals(\)) maint[2][i]++; elsemaint[3][i]++; //2,3,4,5more

if(car.doors.equals(\)) door[0][i]++;

elseif(car.doors.equals(\)) door[1][i]++; elseif(car.doors.equals(\)) door[2][i]++; elsedoor[3][i]++; //2,4,more

if(car.persons.equals(\)) person[0][i]++;

elseif(car.persons.equals(\)) person[1][i]++; elseperson[2][i]++; //small ,med,big

if(car.lug_boot.equals(\)) lug_boot[0][i]++; elseif(car.lug_boot.equals(\)) lug_boot[1][i]++; elselug_boot[2][i]++; // low,med,high

if(car.safety.equals(\)) safe[0][i]++;

elseif(car.safety.equals(\)) safe[1][i]++; elsesafe[2][i]++; } } }/*

*¼ÆËã¸ÅÂÊ */

publicvoid Calculated_probability(){ for(inti=0;i

ClassValue_gl[i]=(float)ClassValues[i]/testTotal;

for(inti=0;i

for(intj=0;j

buy_Vlaue_gl[i][j]=(float)buy[i][j]/ClassValues[j];

maint_Value_gl[i][j]=(float)maint[i][j]/ClassValues[j]; door_Value_gl[i][j]=(float)door[i][j]/ClassValues[j]; }

for(inti=0;i

for(intj=0;j

person_Value_gl[i][j]=(float)person[i][j]/ClassValues[j]; lugboot_Value_gl[i][j]=(float)lug_boot[i][j]/ClassValues[j]; safe_Value_gl[i][j]=(float)safe[i][j]/ClassValues[j];

} } /*

* »ñÈ¡²âÊÔÊý¾Ý * */

publicvoid TestData() throws IOException {

BufferedReader br=new BufferedReader(new FileReader(\)); String temp;

temp=br.readLine(); String []str = null; Property Car = null; while(temp!=null){

str=temp.split(\);

Car=new Property(str[0],str[1],str[2],str[3],str[4],str[5],str[6]); predictTotal++;

Data.addElement(Car); calculate(Car);

temp=br.readLine(); } } /**

* ¶Ô·ÖÀàÆ÷½øÐÐÐÔÄܲâÊÔ£¬ÅÐ¶ÏÆä³É¹¦ÂÊΪ¶àÉÙ * @param car */

publicvoid calculate(Property car){

// unacc,acc,good,vgood, P(yi)--ClassValueTotal_gl ¡¢ P(x|yi)=low,vhigh,4,2,small,low,unaccµÚÒ»Ìõ floatitemGl;// ÿһÌõµÄ¸ÅÂÊ intb, m, d, p, l, s;

b = m = d = p = l = s = -1; floatMaxGl = 0;

if (car.buying.equals(\)) b = 0; elseif (car.buying.equals(\)) b = 1; elseif (car.buying.equals(\))b = 2; elseb = 3;

if (car.maint.equals(\)) m = 0; elseif (car.maint.equals(\)) m = 1; elseif (car.maint.equals(\))m = 2; elsem = 3;

if (car.doors.equals(\)) d = 0;

elseif (car.doors.equals(\)) d = 1; elseif (car.doors.equals(\))d = 2; elsed = 3;

if (car.persons.equals(\)) p = 0; elseif (car.persons.equals(\))p = 1; elsep = 2;

if (car.lug_boot.equals(\)) l = 0; elseif (car.lug_boot.equals(\)) l = 1;

elsel = 2;

if (car.safety.equals(\)) s = 0; elseif (car.safety.equals(\)) s= 1; elses = 2;

intt = 0;// ¼Ç¼×î´ó¸ÅÂʵÄϱê inti;

for (i = 0; i

itemGl = 0;

BigDecimal[] bigDecimal = {

new BigDecimal(Float.toString(ClassValue_gl[i])), new BigDecimal(Float.toString(buy_Vlaue_gl[b][i])), new BigDecimal(Float.toString(maint_Value_gl[m][i])), new BigDecimal(Float.toString(door_Value_gl[d][i])), new BigDecimal(Float.toString(person_Value_gl[p][i])), new BigDecimal(Float.toString(lugboot_Value_gl[l][i])), newBigDecimal(Float.toString(safe_Value_gl[s][i])), };

for (intj = 1; j

bigDecimal[0] = bigDecimal[0].multiply(bigDecimal[j]);//multiply³Ë itemGl = bigDecimal[0].floatValue(); car.PredictResult[i] = itemGl + \; if (MaxGl

// ÅжϽá¹ûÊÇ·ñÕýÈ·

if (car.ClassValues.equals(ClassValueName[t])) {// Ô¤²â½á¹ûºÍ¿ªÊ¼¸ø¶¨µÄ½á¹ûÏàµÈ

car.PredictResult[i] = \; predictSucess++; } else

car.PredictResult[i] = \; }

publicvoid show() {

for (inti =0; i

for (intj = 0; j

// ·ÖÀàÆ÷µÄ׼ȷÂÊ

floatt = (float) predictSucess / predictTotal; t=t*10000/100;

System.out.println(\·ÖÀàÆ÷µÄ׼ȷÂÊΪ£º\ + t+ \); }

}

ËÄ¡¢Ë¼¿¼Ìâ

1.ʵÑéAÖеķÖÀàÆ÷µÄÓÅȱµã¡£ ¿ÉÄÜ´æÔÚ0¸ÅÂÊÎÊÌâ

´æÔÚ׼ȷ¶ÈÎÊÌ⣬ÆÓËØ±´Ò¶Ë¹·ÖÀàÆ÷ÊÇ»ùÓÚÑù±¾ÊôÐÔÌõ¼þ¶ÀÁ¢µÄ¼ÙÉèµÄǰÌáϵÄ,µ«ÊÇʵ¼ÊÇé¿ö¿ÉÄܲ¢²»³ÉÁ¢£¬ÕâÑùÒ²¾Íȱʧ׼ȷÐÔÁË.

½â¾öÆÓËØ±´Ò¶Ë¹×¼È·ÐÔÎÊÌâÌá³öµÄÒ»ÖÖ·½·¨½Ð×ö£º±´Ò¶Ë¹ÍøÂ磨Bayesian Belief Networks £© 2.ÆÀ¼Û×îС´íÎó¸ÅÂʱ´Ò¶Ë¹·ÖÀàÆ÷ºÍ×îС·çÏÕ¸ÅÂʱ´Ò¶Ë¹·ÖÀàÆ÷

»ùÓÚ×îС´íÎóÂʵı´Ò¶Ë¹¾ö²ß ʵÖÊ:ͨ¹ý¹Û²ìx°Ñ״̬µÄÏÈÑé¸ÅÂÊP(wi)ת»¯ÎªºóÑé¸ÅÂÊ Åбð´íÎóÂʵÄÎÊÌâ »ùÓÚ×îС·çÏյı´Ò¶Ë¹¾ö²ß¿¼Âǵ½¸÷ÖÖ´íÎóÕճɵÄËðʧ²»Í¬¶øÌá³öµÄÒ»ÖÖ¾ö²ß¹æÔò ×îС·çÏյı´Ò¶Ë¹¾ö²ßµÄ¼ÆËã·½·¨£º 1)¸ù¾Ý±´Ò¶Ë¹¹«Ê½£¬¼ÆËã³öºóÑé¸ÅÂÊ 2)ÀûÓúóÑé¸ÅÂʺ;ö²ß±í£¬¼ÆËã³öÌõ¼þ·çÏÕ

3)±È½Ï2ÖеļÆËã½á¹û£¬ÕÒ³öʹÌõ¼þ·çÏÕ×îСµÄ¾ö²ßAk£¬ÔòËü¾ÍÊÇ×îС·çÏյı´Ò¶Ë¹¾ö²ß Á½ÕßÖ®¼äµÄ¹ØÏµ£º»ùÓÚ×îС´íÎóÂʵľö²ßÊÇ»ùÓÚ×îС·çÏÕ¾ö²ßµÄÒ»¸öÌØÀý

3.¼ÆËãʵÑéBÖÐҶ˹·ÖÀàÆ÷ºÍ×îС·çÏÕ¸ÅÂʱ´Ò¶Ë¹·ÖÀàÆ÷µÄ·ÖÀàÁÙ½çÖµ[x1 x2]£¬±È½Ï²î±ð£¬²¢Í³¼ÆÁ½ÖÖÕýÈ·ÂÊ¡£(ͬÉÏ)

4. Ìá³öÒ»ÖÖÌá¸ß·ÖÀàÆ÷ÐÔÄܵķ½·¨²¢Í¨¹ýʵÑéÑéÖ¤¡£ Adaboost£º»ùÓÚ´íÎóÌáÉý·ÖÀàÆ÷µÄÐÔÄÜ

AdaboostÊÇÒ»ÖÖµü´úËã·¨£¬ÆäºËÐÄ˼ÏëÊÇÕë¶Ôͬһ¸öѵÁ·¼¯ÑµÁ·²»Í¬µÄ·ÖÀàÆ÷£¬¼´Èõ·ÖÀàÆ÷£¬È»ºó°ÑÕâЩÈõ·ÖÀàÆ÷¼¯ºÏÆðÀ´£¬¹¹ÔìÒ»¸ö¸üÇ¿µÄ×îÖÕ·ÖÀàÆ÷£¬±ÈÆðÈõ·ÖÀàÆ÷£¬Õâ¸ö¡°Ç¿¡±·ÖÀàÆ÷µÄ´íÎóÂÊ»áµÍºÜ¶à¡£

AdaboostËã·¨±¾ÉíÊǸıäÊý¾Ý·Ö²¼ÊµÏֵģ¬Ëü¸ù¾Ýÿ´ÎѵÁ·¼¯Ö®ÖеÄÿ¸öÑù±¾µÄ·ÖÀàÊÇ·ñÕýÈ·£¬ÒÔ¼°ÉϴεÄ×ÜÌå·ÖÀàµÄ׼ȷÂÊ£¬À´È·¶¨Ã¿¸öÑù±¾µÄȨֵ¡£½«ÐÞ¸ÄȨֵµÄÐÂÊý¾ÝË͸øÏ²ã·ÖÀàÆ÷½øÐÐѵÁ·£¬È»ºó½«Ã¿´ÎѵÁ·µÃµ½µÄ·ÖÀàÆ÷ÈÚºÏÆðÀ´£¬×÷Ϊ×îºóµÄ¾ö²ß·ÖÀàÆ÷¡£ÒÔϸø³ö AdaboostËã·¨µÄÔËÐйý³Ì£º

1. ѵÁ·Êý¾ÝÖеÄÿ¸öÑù±¾£¬²¢¸³ÓèÆäÒ»¸öÈ¨ÖØ£¬ÕâÐ©È¨ÖØ¹¹³ÉÏòÁ¿D£¬Ò»¿ªÊ¼Ê±È¨ÖØD³õʼ»¯Îª

ÏàµÈµÄÖµ£»

2. ÏÈÔÚѵÁ·Ñù±¾ÉÏѵÁ·µÃµ½µÚÒ»¸öÈõ·ÖÀàÆ÷²¢¼ÆËã·ÖÀàÆ÷µÄ´íÎóÂÊ £»

3. ÔÚͬһÊý¾Ý¼¯ÉÏÔÙ´ÎѵÁ·Èõ·ÖÀàÆ÷£¬ÔÚ·ÖÀàÆ÷µÄ¶þ´ÎѵÁ·ÖУ¬»áÖØÐµ÷Õûÿ¸öÑù±¾µÄÈ¨ÖØ£¬Æä

ÖеÚÒ»´Î·ÖÀàÕýÈ·µÄÑù±¾µÄÈ¨ÖØ½«»á½µµÍ£¬¶ø·ÖÀà´íÎóµÄÑù±¾È¨Öؽ«»áÌá¸ß £»

4. ΪÁË´ÓËùÓÐÈõ·ÖÀàÆ÷Öеõ½×îÖյķÖÀà½á¹û£¬AdaboostΪÿ¸ö·ÖÀàÆ÷¶¼·ÖÅäÁËÒ»¸öÈ¨ÖØÖµ

alpha£¬ÕâÒ»×éÖµÊÇ»ùÓÚÿ¸öÈõ·ÖÀàÆ÷µÄ´íÎóÂʽøÐмÆËãµÄ¡£ ÆäÖУ¬´íÎóÂÊÓÉÒÔϹ«Ê½¶¨Ò壺