机器学习实战_初识朴素贝叶斯算法_理解其python代码(二)
来源:互联网 发布:linux 查看时区 编辑:程序博客网 时间:2024/05/16 15:05
python 基础:
中间还有pickle二进制读取文件部分的error这个可以参见:机器学习实战初识决策树(ID3)算法理解其python代码(二)的第四部分
append: Appends object at end.:
x = [1, 2, 3]x.append([4, 5])print (x)[1, 2, 3, [4, 5]]
extend: Extends list by appending elements from the iterable.:
x = [1, 2, 3]x.extend([4, 5])print (x)[1, 2, 3, 4, 5]
测试算法:
import randomimport refrom numpy import arrayimport LoadDataimport bayesdef textParse(bigString):#接收大字符串,解析处理后返回字符串列表(去掉少于两个字符的字符串,并将所有字符串转换为小写) listOfTokens = re.compile('\\W*') listOfTokens = listOfTokens.split(bigString)#compile()split(r'\W*',bigString)#正则表达式re模块,详见之前的文章 return [tok.lower() for tok in listOfTokens if len(tok)>0]#列表解析'''这里出现错误最多的也还是Py2.x和Py3.x的不同导致的问题'''def spamTest(): docList = [] classList = [] fullText = [] #读取25*2个文本 for i in range(1,26): wordList = textParse(open('email/spam/%d.txt' % i,'rb').read().decode('GBK','ignore') )#1,UnicodeDecodeError: 'gbk' codec can't decode byte 0xae in position 199: illegal multibyte sequence #加上后面的后綴,因为有可能文件中存在类似“�”非法字符。 docList.append(wordList) fullText.extend(wordList) classList.append(1) wordList = textParse(open('email/ham/%d.txt' % i,'rb').read().decode('GBK','ignore') )#UnicodeDecodeError: 'gbk' codec can't decode byte 0xae in position 199: illegal multibyte sequence #这里还是Pickle的二进制问题,所以要加上‘rb’,其他nicodeDecodeError同上 #注意append和extend的区别 docList.append(wordList) fullText.extend(wordList) classList.append(0) vocabList = LoadData.createVocabList(docList)#得到参考用的词典 #随机构建训练集 trainingSet = list(range(50)) testSet = [] for i in range(10):#得到随机测试集 randIndex = int(random.uniform(0,len(trainingSet))) testSet.append(trainingSet[randIndex]) del(trainingSet[randIndex])#TypeError: 'range' object doesn't support item deletion,因为是python3中range不返回数组对象,而是返回range对象,所以trainingSet = list(range(50))而不是range(50) trainMat = [];trainClasses = [] for docIndex in trainingSet: trainMat.append(LoadData.setOfWords2Vec(vocabList,docList[docIndex])) trainClasses.append(classList[docIndex]) p0V,p1V,pSpam = bayes.trainNB0(array(trainMat),array(trainClasses))#计算相应的概率 errorCount = 0 for docIndex in testSet: wordVector = LoadData.setOfWords2Vec(vocabList,docList[docIndex]) if bayes.classifyNB(array(wordVector),p0V,p1V,pSpam) != classList[docIndex]:#判断文本的类别 errorCount+=1 print('the error rate is :',float(errorCount)/len(testSet))
阅读全文
0 0
- 机器学习实战_初识朴素贝叶斯算法_理解其python代码(二)
- 机器学习实战_初识朴素贝叶斯算法_理解其python代码(一)
- 机器学习实战_初识决策树(ID3)算法_理解其python代码(二)
- 机器学习实战_初识决策树算法_理解其python代码(一)
- 机器学习实战_初识kNN算法_理解其python代码
- 机器学习_算法_朴素贝叶斯
- 补:机器学习实战_初识决策树(ID3)算法的绘制树形图的代码
- 朴素贝叶斯算法解析-机器学习实战(python)
- 机器学习实战+第四章_朴素贝叶斯
- 【朴素贝叶斯】实战朴素贝叶斯_代码实现_训练算法
- 【朴素贝叶斯】实战朴素贝叶斯_代码实现_预测
- 机器学习_朴素贝叶斯算法识别手写数字
- <机器学习实战>--朴素贝叶斯实战(二)
- 【机器学习实战二:朴素贝叶斯算法之过滤垃圾邮件】
- 【机器学习实战二:朴素贝叶斯算法之过滤垃圾邮件】
- 机器学习总结3_朴素贝叶斯
- 机器学习_统计模型之(三)朴素贝叶斯
- 机器学习系列(9)_机器学习算法一览(附Python和R代码)
- 利用Video.js与jquery.danmu.js实现一个弹幕播放器
- HDU 2082 找单词 (母函数模板)
- httplib2---python下的http请求终结者(转)
- [k8s]pod调度-不完整版本-及dashboard原理
- 测试技术网站分享
- 机器学习实战_初识朴素贝叶斯算法_理解其python代码(二)
- Out of bag error in Random Forest
- MUI-最接近原生App体验的前端框架学习记录
- 类型(System.Web.UI.HtmlControls.HtmlIframe)与控件类型(System.Web.UI.HtmlControls.HtmlGenericControl)不兼容
- Android初级获取联系人电话号码
- 算法小技巧
- ORA-12988: 无法删除属于 SYS 的表中的列
- lintcode -- 背包问题
- 笨小熊(南阳理工oj 题目62)