朴素贝叶斯matlab实现.docx

朴素贝叶斯matlab实现.docx

ID:58655350

大小:15.92 KB

页数:7页

时间:2020-10-16

朴素贝叶斯matlab实现.docx_第1页
朴素贝叶斯matlab实现.docx_第2页
朴素贝叶斯matlab实现.docx_第3页
朴素贝叶斯matlab实现.docx_第4页
朴素贝叶斯matlab实现.docx_第5页
资源描述:

《朴素贝叶斯matlab实现.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、clcclearclosealldata=importdata('data.txt');wholeData=data.data;%交叉验证选取训练集和测试集cv=cvpartition(size(wholeData,1),'holdout',0.04);%0.04表明测试数据集占总数据集的比例cvpartition(n,'holdout',p)创建一个随机分区,用于在n个观测值上进行保持验证。该分区将观察分为训练集和测试(或保持)集。参数p必须是标量,当0

2、值。p的默认值是0.1trainData=wholeData(training(cv),:);testData=wholeData(test(cv),:);label=data.textdata;attributeNumber=size(trainData,2);size(A,2):获取矩阵A的列数。attributeValueNumber=5;%将分类标签转化为数据(因为在分类数据集中有3个类别,分别是R、B、L所以将类别转换为数字)sampleNumber=size(label,1);labelData=zeros(sampleNumber,1);fori=1:sampleNum

3、ber(测试集的行数)iflabel{i,1}=='R'labelData(i,1)=1;elseiflabel{i,1}=='B'labelData(i,1)=2;elselabelData(i,1)=3;endendtrainLabel=labelData(training(cv),:);trainSampleNumber=size(trainLabel,1);testLabel=labelData(test(cv),:);%计算每个分类的样本的概率labelProbability=tabulate(trainLabel);tabulate函数的功能是创建向量X信息数据频率表。其

4、函数使用格式:tbl= tabulate(x)创建的TBL(数据频率表)的结构:第一列:x的唯一值第二列:每个值的实例数量第三列:每个值的百分比%P_yi,计算P(yi)P_y1=labelProbability(1,3)/100;(第一行,第三个元素)P_y2=labelProbability(2,3)/100;P_y3=labelProbability(3,3)/100;count_1=zeros(attributeNumber,attributeValueNumber);%count_1(i,j):y=1情况下,第i个属性取j值的数量统计count_2=zeros(attrib

5、uteNumber,attributeValueNumber);%count_1(i,j):y=2情况下,第i个属性取j值的数量统计count_3=zeros(attributeNumber,attributeValueNumber);%count_1(i,j):y=3情况下,第i个属性取j值的数量统计%统计每一个特征的每个取值的数量forjj=1:3forj=1:trainSampleNumberforii=1:attributeNumberfork=1:attributeValueNumberifjj==1iftrainLabel(j,1)==1&&trainData(j,ii)

6、==kcount_1(ii,k)=count_1(ii,k)+1;endelseifjj==2iftrainLabel(j,1)==2&&trainData(j,ii)==kcount_2(ii,k)=count_2(ii,k)+1;endelseiftrainLabel(j,1)==3&&trainData(j,ii)==kcount_3(ii,k)=count_3(ii,k)+1;endendendendendend%计算第i个属性取j值的概率,P_a_y1是分类为y=1前提下取值,其他依次类推。P_a_y1=count_1./labelProbability(1,2);P_a_

7、y2=count_2./labelProbability(2,2);P_a_y3=count_3./labelProbability(3,2);%使用测试集进行数据测试labelPredictNumber=zeros(3,1);predictLabel=zeros(size(testData,1),1);forkk=1:size(testData,1)testDataTemp=testData(kk,:);Pxy1=1;Pxy2=1;Pxy3=1;%计算P

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。