转化后类别表示
使用默认参数的准确率
语法 决策树可以可视化导出
导出需要cmd里安装一个工具 见2 然后运行3 如果改变代码 想再得到图 需要再运行一次3命令
然后在相应的目录下找到生成的文件
由上图可见 基尼十分细致 将特征的具体的值也作为了判断依据
优点
简单的理解和解释 树木可视化。
需要很少的数据准备 其他技术通常需要数据归一化
缺点 深度对于结果有影响 越复杂的树 可能造成过拟合
决策树学习者可以创建不能很好地推广数据的过于复杂的树 这被称为过拟合。
决策树可能不稳定 因为数据的小变化可能会导致完全不同的树被生成
改进 减少过拟合
减枝cart算法 有API
随机森林
二、随机森林【smart bagging】
集成学习方法
集成学习通过建立几个模型组合的来解决单一预测问题。它的工作原理是生成多个分类器/模型 各自独立地学习和作出预测。这些预测最后结合成单预测 因此优于任何一个单分类的做出预测。
定义 在机器学习中 随机森林是一个包含多个决策树的分类器 并且其输出的类别是由个别树输出的类别的众数而定。
不同于bagging 只有随机有放回抽取样本【只有bootsrap方法】
随机森林建立多个决策树的过程
【bootstrap方法】 【随机抽取特征方法】
算法
根据下列算法而建造每棵树
用N来表示训练用例 样本 的个数 M表示特征数目。输入特征数目m 用于确定决策树上一个节点的决策结果 其中m应远小于M。从N个训练用例 样本 中以有放回抽样的方式 取样N次 形成一个训练集 即bootstrap取样 并用未抽到的用例 样本 作预测 评估其误差。为什么要随机抽样训练集
如果不进行随机抽样 每棵树的训练集都一样 那么最终训练出的树分类结果也是完全一样的
为什么要有放回地抽样
如果不是有放回的抽样 那么每棵树的训练样本都是不同的 都是没有交集的 这样每棵树都是“有偏的” 都是绝对“片面的” 当然这样说可能不对 也就是说每棵树训练出来都是有很大的差异的 而随机森林最后分类取决于多棵树 弱分类器 的投票表决。
语法
class sklearn.ensemble.RandomForestClassifier(n_estimators 10, criterion ’gini’, max_depth None, bootstrap True, random_state None)
随机森林分类器
【参数常用值上述已经给出】
随机森林的超参数
n_estimatorsmax_depth实现
from sklearn.feature_extraction import DictVectorizer import pandas as pd from sklearn.tree import DecisionTressClassifier, export_graphviz from sklearn.ensemble import RandomforestClassifier



