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