版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
朴素算法的应以定理为基础,故统称为分类。朴素算法(NaiveBayesian)朴朴 分类器基于一个简单的假定:给定目标值时属性之间相互条件独立P(Category|)=P(|Category)*P(Category)/TreeModel)和朴 模型(NaiveBayesianModel,NBC)。决策树模型通
在属性个数比较多或者属性之间相关性较大时,NBC外中已经得到公认,在机器学书中也提到过算法对于属性的识别情况决定决策树对于文本分类识别,要看具体情况。在属性相关性较小时,NBC会走在对身旁的朋友说“这个人一看就很有钱”之类的话,其实这就是一种分既然是分类算法,那么分类的数学描述又是什么呢从数学角度来说,分类问题可做如下定义:已知集合yf(x),y=f(xx有且仅有一个x,使得成立。其中C叫做类别集合,其中每一个元素是一个类别,而I叫做项集合(特征集合),其中每一个元素是一个待分类项,f分类器f。同的分类算法,对应着不同的思想。4、NaiveBayes(朴素)算朴素算法是算法里面一种比较简单的分类算法,用到了一个比较重要的定理,用一句简单的话概括就是条件概率的相互转换推导要介绍朴素算法,那就得先介绍分类算法,分类算法是统计分类算法的一种,他是一类利用概率统计知识进行的一种分类算法。而朴素算法就是里面算法中最简单的一个算法。为什么叫做朴素,因为他里面的各个类条件是独立的,所以一会在后面的计算中会起到很多方便的作用。、朴素算法原首先在这里用到了一个概
P(B|A)的意思是在A的情况下,发生B的概率,可以理解为概率论中式就可以计算P(A|B)的概率,只要通过上述的转换。上面的资源地址上已经对朴素算法的原理描述的非常清楚了,我在他的朴素分类的正式定义如下1、设为一个待分类项,而每个a为x的一个特征属性x={"Youth","Medium","Yes","Fair"}42、有类别集合。(在后面的类别中只有 类yes,no,C={yes,no})3、计算。(在后面的计算的任务就是计算在X事件的条件下,yes和no的发生概率,P(Yes|X,P(No|X)))4、如果, 。(计算yiX下,那个分类类型概率高就属于哪个分类,在这里比的就是P(Yes|X,P(No|X))。3123、如果各个特征属性是条件独立的,则根据定理有如下推导 朴素算法的代码实现:输入的训练集数据input.txt:、朴素算法的而因此只要计算出训练样本中各个类别中此特征项划分的各均值和标准差,代入上述即可得到需要的估计值。均值与标准差的计1、为了避免统计概率中出现概率为0的情况,在这里引入了Lace校准,它的思1。立文本数#
defloadDataList():classVec=[0,1,0,1,0,1]11;returnpostingList文本数据的#defvocabSet= indataSet:vocabSet=vocabSet|set( #两个集合的并集return这里利用集合的性质对数据集提取不同的单词,函数createVocabList()返回值是列词汇集转化成数值中的哪些单词组成表示成:0该对象没有这个词,1该对象有这个词。#根据类别对词进行划分数值型的类别returnVec=[0]*len(vocabList)forwordinifwordinvocabList:else:print"theword:%sisnotinmyVocabulary!"%word9returnreturnVecvocabList是词汇集,inputSet1、朴素分类器的训练函postingList列表数据,属性集是词汇集,类标号是00响条件概率的大小排序,也就不会影响朴素的使用。求中的先验概率pAbusive,条件概率p0Vect、函数中所求的概率值是变形值,不影响的思想:选择具有最高概率的决deftrainNB0(trainMatrix,trainCategory):numTrainDocs=len(trainMatrix);#numWordslen(trainMatrix[0]);#样本中所有词的集合个数pAbusivesum(trainCategory)float(numTrainDocs);#对类别只有两种的先验概率计算#p0Num=ones(numWords);p1Num=ones(numWords);#21#p0Denom=p1Denom=foriinrange(numTrainDocs):#遍历所有对象iftrainCategory[i]1:#类别类型的判断p1Num+=#
p1Denomsum(trainMatrix[i]);#对不同类别出现次数的计算p0Num+=#p0Denomsum(trainMatrix[i]);#对不同类别出现次数的计算p1Vect=log(p1Num/#条件概率,p0Vect=log(p0Num/#条件概率,、朴素的分类函的类别作为朴素预测结果值。#p1=sum(vec2Classify*p1Vec)+log(pClass1);#对未知对象的单词的每一项的条件概率相加(对数相加为条件概率的相乘p0sum(vec2Classify*p0Veclog(1.0-pClass1#后面加上的一项是先验概率ifp1>p0:returnelsereturn、测试样本的预通过朴素算法给出两个未知类别的对象预测其类别。#对性语言的测deflistOposts,listClasses=#训练样本的数据,listOposts为样本,listClassesmyVocabListcreateVocabList(listOposts)#trainMat=#forpostinDocinlistOposts:p0V,p1V,pAb=trainNB0(array(trainMat),array(listClasses));#testEntry'love','my','dalmation','love'];#未知类别的对象printtestEntry'classifiedasclassifyNB(thisDocp0V,p1V,pAb);#对未知对象的预测其类别testEntrystupid','garbage'];#未知类别的对象#对未知对象的单词转化为数值printtestEntry'classifiedasclassifyNB(thisDocp0Vp1VpAb#对未知对象的预测其类别这里给出朴素算法最经典的应用实例对邮件的过滤识别由于邮件邮件文件解#deftextParse(bigString):importre4;listOfTokensre.split(r'\w*'bigString);#利用正则语言对邮件文本进行解析returntok.lowerfortokinlistOfTokensiflen(tok)2];#25lower()
6.2邮件测试函代码如下#完整的邮件测试函defdocList=[];classList=[];fullText=[];foriinrange(1,26):wordList=textParse(open('/spam/%d.txt'%i).read());###fullText.extend(wordList);classList.append(0);##样本生成的词汇集#trainingSet=range(50);testSet=[];foriinrandIndex=int(random.uniform(0,len(trainingSet)));testSet.append(trainingSet[randIndex]);#trainMat=[];trainClasses=[];fordocIndexintrainingSet: docList[docIndex]));trainClasses.append(classList[docIndex]);p0Vp1VpSpamtrainNB0(array(trainMatarray(trainClasses));#训练样本的先验概率及条件概率errorCount=0#fordocIndexin#测试对象的词的数值转化ifclassifyNB(array(wordVector)p0Vp1VpSpam)classList[docIndex#预测的类别与真实类别的对比errorCount+=1print'theerrorrateisfloaterrorCountlen(testSet);#测试样本的出错率17uniform()random[x,y)范
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 冀少版八年级生物上册第四单元复习提升课件
- 人教版五年级下册分数的计算练习题
- 电路初探单元复习教案
- 安全教案 三年级
- 《陋室铭》教学反思
- 太阳能电站改造简易施工合同
- 苏教版一年级语文下册全册教案
- 咨询公司噪声污染治理实施方案
- 烟草产品库存调配方案
- 游戏开发项目协议
- 物联网产业贷款合同
- 制造业数字化转型蓝图规划及顶层设计框架
- 2023年福建陆军第七十三集团军医院招聘考试真题
- 中国法律史-第一次平时作业-国开-参考资料
- MOOC 战略推演:企业致胜七步法-中南大学 中国大学慕课答案
- 某尾矿库应急预案
- 1.2数据的计算第一课时教案教科版高中信息技术必修1
- 2022-2023学年北京市第四中学七年级上学期期中考试地理试卷含详解
- 2021-2022学年河北省唐山市一中高二年级上册期中考试数学试题
- 海派旗袍(30年代旗袍)
- 人教版小学数学三年级下册电子课本-课件
评论
0/150
提交评论