【机器学习】朴素贝叶斯-02
心得体会
1交叉验证:从训练的数据里随机抽取作为测试集
# 4-6朴素贝叶斯过滤垃圾邮件 #朴素贝叶斯交叉验证 def textParse(bigString): import re listOfTokens=re.split('\\W+',bigString) return [tok.lower() for tok in listOfTokens if len(tok)>2] def spamTest(): docList=[] classList=[] fullText=[] #存入数据 for i in range(1,26): wordList=textParse(open('E:/Python/《机器学习实战》代码/Ch04/spam/%d.txt'%i).read()) docList.append(wordList) fullText.append(wordList) classList.append(1) wordList=textParse(open('E:/Python/《机器学习实战》代码/Ch04/ham/%d.txt'%i).read()) docList.append(wordList) fullText.append(wordList) classList.append(0) # 随机建立测训练集 vocabList=createVocabList(docList) #生成单词向量 trainingSet=list(range(50)) testSet=[] for i in range(10): randIndex=int(random.uniform(0,len(trainingSet)))#生成trainingSet范围内的随机数 testSet.append(trainingSet[randIndex])#将该训练数据加入训练集 del(trainingSet[randIndex])#将training中该数据删除,以免重复使用同一数据 trainMat=[] trainClasses=[] for docIndex in trainingSet: trainMat.append(setOfWords2Vec(vocabList,docList[docIndex]))#将训练数据变成单词向量 trainClasses.append(classList[docIndex])#保存该训练集的类型 p0V,p1V,pSpam=trainNBO(array(trainMat),array(trainClasses))#生成每个位置的权重 #对测试集分类 errorCount=0 for docIndex in testSet: wordVector=setOfWords2Vec(vocabList,docList[docIndex]) if classifyNB(array(wordVector),p0V,p1V,pSpam)!=classList[docIndex]:#分类结果如果不一样error+1 errorCount+=1 print("the error rate is :",float(errorCount)/len(testSet)) spamTest()
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
2019-07-09 【Java笔记】【Java核心技术卷1】chapter3 D5运算符
2019-07-09 【Java笔记】【Java核心技术卷1】chapter3 D3数据类型
2019-07-09 【Java笔记】【Java核心技术卷1】chapter3 D4变量
2019-07-09 【Java笔记】【Java核心技术卷1】chapter3 D2注释
2019-07-09 【Java笔记】【Java核心技术卷1】chapter3 D1JavaStandard