贝叶斯定理(Bayes Theorem)node
朴素贝叶斯分类(Naive Bayes Classifier)python
贝叶斯分类算法(NB),是统计学的一种分类方法,它是利用贝叶斯定理的几率统计知识,对离散型数据进行分类的算法。算法
朴素贝叶斯的思想基础是这样的:对于给出的待分类项,求解在此项出现的条件下各个类别出现的几率,哪一个最大,就认为此待分类项属于哪一个类别。机器学习
tips:python中sklearn包的naive_bayes模块中,由三种贝叶斯算法类型:oop
使用多项式贝叶斯进行分本分类的实现:学习
#构建语料库,须要包含文本分类测试
#进行分词spa
#文本向量化code
#构建多项式贝叶斯模型orm
from sklearn.naive_bayes import MultinomialNB #多项式贝叶斯分类模型创建 MNBmodle = MultinomialNB() #将文本向量做为特征值传入,将分类序列做为目标序列传入 MNBmodle.fit(textVector,corpos['class']) MNBmodle.score(textVector,corpos['class'])
tips:多项式贝叶斯很是适用于文本分类
#针对新文本进行分类(须要进行分词和向量化操做),获得分类预测
MNBmodle.predict(newTextVector)
决策树(Decision Tree)
决策树经过对训练样本的学习,并创建分类规则,而后依据分类规则,对新样本数据进行分类预测,属于有监督学习。
决策树是在已知各类状况发生几率的基础上,经过构成决策树来求取净现值的指望值大于等于零的几率,评价项目风险,判断其可行性的决策分析方法,是直观运用几率分析的一种图解法。
因为这种决策分支画成图形很像一棵树的枝干,故称决策树。
在机器学习中,决策树是一个预测模型,他表明的是对象属性与对象值之间的一种映射关系。
决策树是一种树形结构,其中每一个内部节点表示一个属性上的测试,每一个分支表明一个测试输出,每一个叶节点表明一种类别。
优势:
决策树易于理解和实现
决策树可同时处理数值型和非数值型数据
缺点:
对连续性的字段较难预测
对有时间顺序的数据,须要不少的预处理工做
当类别较多时,错误可能增长的比较快
python实现决策树模型的构建
重点代码:
dtmodel = DecisionTreeClassifier(max_leaf_nodes=None) #最大叶子节点数
dtModel.fit(featureData, targetData) #特征数据、目标数据
#对离散型变量进行虚拟化
#设置特征变量、目标变量
#构建决策树模型
from sklearn.tree import DecisionTreeClassifier dtmodel = DecisionTreeClassifier(max_leaf_nodes=8) #最大叶数为8
#模型验证
from sklearn.model_selection import cross_val_score
cross_val_score(dtmodel,fdata,tdata,cv=10) #交叉验证10次
#模型训练
dtmodel.fit(fdata,tdata)
#绘制决策树模型 (须要下载安装graphviz软件 并 安装pydot包,可参考http://wenda.chinahadoop.cn/question/5518)
#绘制决策树图形 from sklearn.tree import export_graphviz with open(r'D:\...\data.dot','w') as f: f = export_graphviz(dtmodel, out_file=f) import pydot from sklearn.externals.six import StringIO dot_data = StringIO() export_graphviz( dtmodel, #模型名称 out_file=dot_data, #图形数据的输出路径 class_names=['A','B'], #目标属性的名称 feature_names=['a','b','c','d'], #特征属性的名称 filled=True, #是否使用颜色填充 rounded=True, #边框是否圆角 special_characters=True) #是否有特殊字符(含中文就算) graph = pydot.graph_from_dot_data(dot_data.getvalue()) graph.get_node('node')[0].set_fontname('Microsoft YaHei') graph.write_png(r'D:\...\决策树.png')
#最终在目标路径下获得决策树的图形