资源描述:
《朴素贝叶斯python代码实现》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、朴素贝叶斯优点:在数据较少的情况下仍然有效,可以处理多类别问题缺点:对于输入数据的准备方式较为敏感适用数据类型:标称型数据 贝叶斯准则:使用朴素贝叶斯进行文档分类 朴素贝叶斯的一般过程(1)收集数据:可以使用任何方法。本文使用RSS源(2)准备数据:需要数值型或者布尔型数据(3)分析数据:有大量特征时,绘制特征作用不大,此时使用直方图效果更好(4)训练算法:计算不同的独立特征的条件概率(5)测试算法:计算错误率(6)使用算法:一个常见的朴素贝叶斯应用是文档分类。可以在任意的分类场景中使用朴素贝叶斯分类器,不一定非要是文本。 准备数据:从文本中构建词向
2、量 摘自机器学习实战。[['my','dog','has','flea','problems','help','please'],0['maybe','not','take','him','to','dog','park','stupid'],1['my','dalmation','is','so','cute','I','love','him'],0['stop','posting','stupid','worthless','garbage'],1['mr','licks','ate','my','steak','how','to','stop'
3、,'him'],0['quit','buying','worthless','dog','food','stupid']]1以上是六句话,标记是0句子的表示正常句,标记是1句子的表示为粗口。我们通过分析每个句子中的每个词,在粗口句或是正常句出现的概率,可以找出那些词是粗口。在bayes.py文件中添加如下代码:[python] viewplaincopy1.# coding=utf-8 2. 3.def loadDataSet(): 4. postingList = [['my', 'dog', 'has', 'flea', 'probl
4、ems', 'help', 'please'], 5. ['maybe', 'not', 'take', 'him', 'to', 'dog', 'park', 'stupid'], 6. ['my', 'dalmation', 'is', 'so', 'cute', 'I', 'love', 'him'], 7. ['stop', 'posting', 'stupid', 'worthless', 'garbage'], 8. ['mr', 'licks', 'ate', 'my', 'steak', 'how',
5、'to', 'stop', 'him'], 9. ['quit', 'buying', 'worthless', 'dog', 'food', 'stupid']] 10. classVec = [0, 1, 0, 1, 0, 1] # 1代表侮辱性文字,0代表正常言论 11. return postingList, classVec 12. 13.def createVocabList(dataSet): 14. vocabSet = set([]) 15. for document in dataSe
6、t: 16. vocabSet = vocabSet
7、 set(document) 17. return list(vocabSet) 18. 19.def setOfWords2Vec(vocabList, inputSet): 20. returnVec = [0] * len(vocabList) 21. for word in inputSet: 22. if word in vocabList: 23. returnVec[vocabList.index(
8、word)] = 1 24. else: 25. print "the word: %s is not in my Vocabulary!" % word 26. return returnVec 运行结果: 训练算法:从词向量计算概率[python] viewplaincopy1.# 朴素贝叶斯分类器训练函数 2.# trainMatrix: 文档矩阵, trainCategory: 由每篇文档类别标签所构成的向量 3.def trainNB0(trainMatrix, trainCa
9、tegory): 4. numTrainDocs = len(trainMatrix) 5.