PySpark入门二十三:ML--随机森林

随机森林相关概念介绍随机森林随机森林是由许多决策树构成,是一种有监督学习方法,可以用于分类和回归,通过合并汇总来自个体决策树的结果来进行预测,采用多数选票作为分类结果,采用预测结果平均值作为回归结果。“随机”是针对森林中的每一颗决策树,有两种含义:1. 数据采样随机构建决策树的训练数据集通过有放回的随机采样,并且只会选择一定百分比的样本,这样可以在数据集合存在噪声点、异常点的情况下,有些决策树的构造过程中不会选择到这些噪声点、异常点从而达到一定的泛化作用在一定程度上抑制过拟合;2. 特征随机训
摘要由CSDN通过智能技术生成

随机森林相关概念介绍

随机森林

随机森林是由许多决策树构成,是一种有监督学习方法,可以用于分类和回归,通过合并汇总来自个体决策树的结果来进行预测,采用多数选票作为分类结果,采用预测结果平均值作为回归结果。

“随机”是针对森林中的每一颗决策树,有两种含义:

1. 数据采样随机

构建决策树的训练数据集通过有放回的随机采样,并且只会选择一定百分比的样本,这样可以在数据集合存在噪声点、异常点的情况下,有些决策树的构造过程中不会选择到这些噪声点、异常点从而达到一定的泛化作用在一定程度上抑制过拟合;

2. 特征随机

训练集会包含一系列特征,随机选择一部分特征进行决策树的构建。通过这些差异点来训练的每一颗决策树都会学习输入与输出的关系。

那么既然是树结构,根节点和叶子节点又是如何选择的呢? 下面将会介绍几个数学原理来一起学习一下。

1. 信息熵

信息熵可以用来度量信息源的不确定度。熵越大表明数据集的不确定度越高,数据集越不纯;熵越小表明数据集的不确定度越低,数据集越纯。所以在选取根节点时,尽量选取熵小的特征值作为根节点。

计算公式
目标熵计算公式:
在这里插入图片描述
其中A为数据集的数据量,i为特征的类别,Ai为某种特征类别的数据量,B为特征类别下的目标数据量,B与Ai相等,j为某特征下的目标类别,Bj为某特征类别下某目标类别的数据量。

计算得到两个信息熵之后,就可以计算信息增益。能够提供最大信息增益的特征将会被用于划分子集,信息增益的计算公式为:

信息增益 = 目标熵 - 熵(目标,特征) 这种做法通常也称为ID3算法;
C4.5 算法

C4.5算法,是对ID3算法的一个改进,因为数据集中一旦出现了没有实际意义的ID列,根据信息增益计算而来的结果就会不太准确。
C4.5 算法采用信息增益率作为衡量数据集纯度的标准,信息增益率的计算公式为:

信息增益率 = 信息增益/特征自身的熵
基尼系数 — CART算法

在这里插入图片描述
Gini系数越高说明纯度越低,Gini系数越低说明纯度越高,每次选择Gini系数最小的特征作为节点,采用Gini系数衡量标准的决策树也称为CART(分类回归树)

ID3、C4.5、CART的使用场景比较
  1. ID3只能用于离散型变量,这是由于ID3算法倾向于选择分支多的特征作为节点,这是该算法的一个缺陷,对于连续性变量而言,切割之后就会有较多的分支,所以ID3不能用于连续性变量。
  2. C4.5可以处理对连续变量进行切割的情况,因为C4.5算法可以通过分母中特征的熵进行惩罚。
  3. CART,由于其构建时每次都会对特征进行二值划分,因此也可以很好地应用于连续性变量。

PySpark 实操

from pyspark.sql import SparkSession
from pyspark.sql.functions import rand

spark = SparkSession.builder.appName('randomForest').getOrCreate()

# 读取数据文件
dfInfo <
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值