第五章 决策树和随机森林

1 数据处理和分析 

 1.1数据收集和预处理

数据清洗:从数据集中检测和纠正不准确的记录的过程。

相关性分析:一对变量呈线性相关的程度

1.2 数据挖掘和机器学习算法

机器学习:对计算机算法的研究,它可以通过经验和使用数据来自动改进。

数据挖掘:在大型数据集中提取和发现模式的过程。

1.3 大数据计算模型

批处理计算模型:数据吞吐量高,适用于海量数据。MapReduce 

流处理计算模型:处理延时较短,适用于产生速度快并需要及时处理的实时数据流处理。Storm

混合计算模型:从何批处理二号流处理优点,有更高的系统复杂度。Spark,Flink

图处理模型:适合处理大规模图数据。GraphLab

查询分析计算模型:大规模数据存储管理和查询分析。Dremel,Hive,Cassandra

1.4 分类和回归的评估 

 1f0ff1e7f01540aaa6161d474bc1d3b7.jpeg

TP:正类判定为正类

TN:负类判定为负类

FP:负类判定为正类

FN: 正类判定为负类

准确率(Accuracy):所有的预测正确的占总的比例。(TP+TN)/(TP+TN+FP+FN)

精确率(Precision):正确预测为正的占全部预测为正的比例。TP/(TP+FP)

召回率(Recall):查全率,即正确预测为正的占全部实际为正的比例。TP/(TP+FN)

【准确率、精确率、召回率、F1值、ROC/AUC整理笔记 - CSDN App】

2 决策树(DT)

2.1 决策树基本介绍

决策树定义:由节点和分支组成的像流程图的结构。在每个节点上,根据其中一个输入特征对数据分割,产生两个或更多分支作为输出。在接下来的节点中进行更多的分割,产生许多分支对原始数据进行分区。这种情况一直持续直到产生一个节点,其中所有或几乎所有的数据都属于同一个类,并且不能再进行进一步的分割。

优点:

  • 使用者不需要知道很多背景知识,只要训练案例能表示成属性→结论的形式,决策树就可以应用了
  • 高效率,适用于大型数据集
  • 简单直观的树状结构,可以转换成if→then形式,易于理解
  • 有高的分类准确度(accuracy)

2.2 ID3算法

机器学习中一个著名的算法,引入了信息论中的熵的概念,利用分割前后的熵来计算信息增益,用来衡量分类能力。

信息熵(Information Entropy):用来度量数据集的纯度。

信息增益(Information Gain):分割前数据集的熵-分割后由子集大小加权的熵的和。如果是正数,说明纯度上升。在每一步中选择使信息增益最高的分割特征。

977aff76d418497b9610d117693bb30d.jpeg

ID3思想:

  • 自上往下建立一棵决策树
  • 用信息增益来衡量各个特征对于样本分类的能力
  • 选择信息增益最大的特征作为根节点

ID3实现:

  • 选择有最好分类能力的特征作为根节点
  • 根节点的每个可能值产生一个分支
  • 训练样本被安排到适当的分支中
  • 重复上述过程直到生成决策树

问题:它偏向于选择多值特征。例如,如果有唯一标识符ID,ID3将选择它作为拆分特征,虽然这样划分足够纯,但是对于分类没有意义。后继算法C4.5使用增益比来克服这个缺点。

2.3 C4.5算法

SplitInfo:权重*权重的对数

权重:当前子数据集中数据点数量/父数据集中数据点数量

增益比:信息增益/SplitInfo14819f46e19a41b7abf1bb65df2ca4ef.jpeg

缺点:

  • 生成多度树,效率低于二叉树
  • 只能用于分类 

2.4 CART(分类和回归树) 

classification and regression tree

是一种非参数技术,可以产生分类树或者回归树,取决于因变量是分类型的还是数值型的。使用Gini指数来选择分割特征 。产生的一定是二叉树。

基尼指数:度量样本的不纯度。指数越小,纯度越高。

产生分类树:

8aafcfb5297b48dd93204bb2bf40f782.png

0e81fd3ee4564212a901011ec17cca75.png

图源:【决策树系列【4】 基尼指数cart算法(代码已同步到github)】

分类树和回归树比较:

  • 分类树输出离散值,回归树输出连续值
  • 分类树使用Gini选择特征,回归树使用MSE(平方误差)选择特征
  • 分类树采用叶子节点中概率最高的作为预测类别,回归树采用叶子节点的平均值作为预测类别

2.5 总结 

优点:

  • 快速:可以处理具有很多特征的大的数据集
  • 灵活:分类和回归问题
  • 可解释性:提供规则和特征重要性
  • 容错能力好 

缺点:

  • 样本变化,决策树结构也变化(集成学习来解决)
  • 难以学习难度大的模型,如XOR(神经网络)
  •  如果一些样本比例太大,决策树会偏向这些特征(调整样本权重)

3 随机森林(Random Forest) 

 决策树可能会很不稳定,当训练数据受到干扰,预测结果可能会发生很大变化。它是高方差估计器。减少方差的方法:将多个模型平均。这叫集成学习。

两种集成方法:

3.1 序列集成方法

将多个弱模型结合成一个强模型。著名算法:AdaBoost

AdaBoost:一种自适应的提升算法,训练新的基估计器理修正前一个基估计器的错误。需要采用某种方法对错误分类的训练示例进行优先排序,通过保持单个训练示例的权重来实现这一点。

84c59b7ecb6742aea611d853671bbaaa.jpeg

3.2 并行集成方法

ffb6cade2d5141fb9a0cfc43c2ef85fc.jpeg

两种重要方法:bagging,random forest

两者关键区别:

  • 并行系统中的基估计器通常可以独立训练,而在序列系统中,当前迭代中的基估计器依赖于前一次迭代中的基估计器。
  • 并行系统中的基估计器通常是强模型,而序列系统中的通常是弱模型。

自主采样法(bootstrap sampling):为了生成相同大小的数据集的复制,我们需要进行带替换的采样。通过带替换的采样,我们 可以得到一个大小为6的样本,但只包含4个唯一的对象,有重复对象。

5a88ac8a19e5408e88d83e9e4a64f0c9.jpeg

 bagging:

  • 自助抽样,确保在每个复制集上训练的模型不一样
  • 模型聚合,将单个基础学习者的预测结合到一个集成预测中。分类:多数决定;回归:平均

3.3 随机森林 

是bagging的一种特殊扩展,引入了额外的随机化,进一步促成集成的多样性。

两种随机性: 随机决策树,自助抽样。

决策树和随机决策树的区别:如何构建决策节点。前者对所有的可用特征都进行了评估,以选择最分割的最佳特征;后者是从一个随机的特征子集中选择分割的最佳特征。

因此,随机森林使用一种改进的树学习算法,该算法在创建决策节点前先随机抽样特征。 

64a939f258144d528f2659a167c3034b.jpeg

随机森林优点:

  •  目前最准确的学习算法之一
  • 可以在大型数据库上高效运行
  • 可以处理大量变量并且不删除它们
  • 给出了在分类中哪些变量是重要的估计
  • 有效估计缺失数据

随机森林缺点

  • 对一些有噪声分类/回归任务的数据集过拟合
  •  对于包含具有不同数量级别的分类变量的数据,更偏向于那些具有更多级别的属性,对于这类数据不可靠。

泛化误差:样本外误差,衡量算法预测以前未见过数据的结果值的准确性。

泛化能力度量:

  • 留出法:将数据集划分为训练集和测试集,训练姐是模型所训练的对象,测试集用来查看模型对未看到的数据表现如何。
  • 交叉验证: 或者k倍交叉验证,数据集被随机划分为k组,随机选择一组作为测试集,其余的作为训练集。

 随机森林的泛化误差由OOB(out-of-bag)计算,对于每棵树,33%-66%的样本没有在自助抽样中被选择,称为OOB样本,使用OOB样本作为对应树的输入,输出预测值的误差即OOB误差。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值