NaiveBayes(朴素贝叶斯算法)[分类算法]

王朝学院·作者佚名  2016-08-27  
宽屏版  字体:  |  |  | 超大  

Naïve Bayes(朴素贝叶斯)分类算法的实现(1) 简介:

(2) 算法描述:

(3)

1<?php2/*3*Naive Bayes朴素贝叶斯算法(分类算法的实现)4*/56/*7*把.txt中的内容读到数组中保存8*$filename:文件名称9*/10//--------------------------------------------------------------------11functiongetFileContent($filename)12{13$array=array(null);14$content=file_get_contents($filename);15$result=explode("\r\n",$content);16//PRint_r(count($result));17for($j=0;$j<count($result);$j++)18{19//print_r($result[$j]."<br>");20$con=explode(" ",$result[$j]);21array_push($array,$con);22}23array_splice($array,0,1);24return$array;25}26//--------------------------------------------------------------------272829/*30*NaiveBayes朴素贝叶斯算法31*$test:测试文本;$train:训练文本;$flagsyes:yes;$flagsno:no32*/33//--------------------------------------------------------------------34functionNaiveBayes($test,$train,$flagsyes,$flagsno)35{36$count_yes= 0;37$num=count($train[0]);38for($i=1;$i<count($train);$i++)39{40if($train[$i][$num-1]==$flagsyes)$count_yes++;41}42$p_yes=$count_yes/ (count($train)-1);43$p_no= 1-$p_yes;4445$count_no=count($train)-1 -$count_yes;464748for($i=1;$i<count($test)-1;$i++)49{50$testnumyes= 0;51$testnumno= 0;52for($j=1;$j<count($train);$j++)53{54if(($train[$j][$i]==$test[$i])&&($train[$j][count($test)-1]==$flagsyes))$testnumyes++;55elseif(($train[$j][$i]==$test[$i])&&($train[$j][count($test)-1]==$flagsno))$testnumno++;56}5758$array_yes[$i] =$testnumyes/$count_yes;59$array_no[$i] =$testnumno/$count_no;60/*61print_r($testnumyes."<br>");62print_r($testnumno."<br>");63print_r($count_yes."<br>");64print_r($count_no."<br>");65print_r($array_no[$i]."<br>");66*/67}6869$py=1;70$pn=1;71for($i=1;$i<count($test)-1;$i++){72$py*=$array_yes[$i];73$pn*=$array_no[$i];74}7576$py*=$p_yes;77$pn*=$p_no;7879if($py>$pn)return$flagsyes;80elsereturn$flagsno;8182/*print_r($py."<br>");83print_r($pn."<br>");84*/8586}87//--------------------------------------------------------------------8889$train= getFileContent("train.txt");90$test= getFileContent("test.txt");9192for($i=1;$i<count($test);$i++)93{94$test[$i][count($test[0])-1] = NaiveBayes($test[$i],$train,Y,N);95}9697/*98*将数组中的内容读到.txt中99*/100//--------------------------------------------------------------------101$fp=fopen('result.txt','wb');102for($i=0;$i<count($test);$i++)103{104$temp=NULL;105for($j=0;$j<count($test[$i]);$j++)106{107$temp=$test[$i][$j]."\t";108fwrite($fp,$temp);109}110fwrite($fp,"\r\n");111}112fclose($fp);113//--------------------------------------------------------------------114115/*116*打印输出117*/118//--------------------------------------------------------------------119echo"<pre>";120print_r($test);121echo"</pre>";122//--------------------------------------------------------------------123?>

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有