一、决策树

决策树是常见的机器学习中监督学习的方法,可以用来分类和回归。对于数据集,沿着决策树的分支,根据属性值判断属于决策树的哪一枝,最终到达叶节点,得到结果。一棵典型的决策树如下,

图1. 决策树

一棵决策树包括以下部分:

(1)树根:包含全部数据集

(2)树枝:划分标准

(3)中间节点:按照一定标准划分的子集

(4)叶子:最终的结果(包含的子集)

1.1 决策树分类

决策树分类中,最终的叶子为最终划分的分类结果,如根据当天的温度、湿度、风力、大气污染程度等,判断最终是天气好、一般还是差。决策树分支的标准是信息熵的增益最大,信息熵的定义如下:

(1)

其中,为集合中第类样本所占的比例,表示划分前根据数据标签的原始数据集的信息熵,信息熵越大,表示结构越活越;信息熵越小,结构越稳定。假设某一离散属性值包含个离散取值,那么根据属性,可以将划分为个不同的子集,每一个子集都可以计算.

那么根据属性进行划分(分枝)的信息增益(信息熵的下降量)为:

(2)

挑选使得信息增益最大的属性,对决策树进一步分枝。该背后原理如下,根据决策树,使得整棵树的信息熵最低,得到的决策树不确定性最小,最稳定。

参见https://zhuanlan.zhihu.com/p/89607509

1.2 决策树回归

决策树用于回归时,其分枝的标准为最小均方误差。根据数据集的第个特征,设置阈值为,划分为两个区域,如下:

(3)

使得一个子集内均方误差最小的,那么上式为,

(4)

参见,https://blog.csdn.net/Albert201605/article/details/81865261

二、随机森林

随机森林,顾名思义,是很多树的集合。随机森林的基本单位是决策树,其示意图如下,

图2. 随机森林

随机森林的步骤如下:

(1)从数据集中有放回的随机抽样 ;

(2)随机抽取特征构建决策树;

(3)将决策树的结果取平均,得到最终结果。

参加,机器学习常用算法——随机森林 - 云+社区 - 腾讯云

三、代码实现

随机森林

利用第三方库,随机森林分类和回归如下,

分类,

from sklearn.ensemble import RandomForestClassifier# x. y为训练数据
model_RF_class = RandomForestClassifier(n_estimators = 100, random_state = 0)
model_RF_class.fit(x, y)
# x_test, y_test为测试数据
y_test = model_RF_class.predict(x_test)

回归,

# x. y为训练数据
from sklearn.ensemble import RandomForestRegressor# 随机森林回归器
model_RF_regr = RandomForestRegressor(n_estimators = 100, random_state = 0)
# 拟合数据集
model_RF_regr = model_RF_regr.fit(X, y)
# x_test, y_test为测试数据
y_test = model_RF_regr.predict(x_test)

参见,机器学习算法系列(十八)-随机森林算法(Random Forest Algorithm)_sai_simon的博客-CSDN博客_随机森林算法​​​​​​​j

具体参数的含义,见官网,sklearn.ensemble.RandomForestClassifier — scikit-learn 1.1.0 documentation

决策树

from sklearn.tree import DecisionTreeClassifier# x. y为训练数据
model_DT_class = DecisionTreeClassifier()
model_DT_class.fit(x, y)
# x_test, y_test为测试数据
y_test = model_DT_class.predict(x_test)
from sklearn.tree import DecisionTreeRegressor# x. y为训练数据
model_DT_regr = DecisionTreeRegressor(max_depth=1)
model_DT_regr.fit(x, y)
# x_test, y_test为测试数据
y_test = model_DT_regr.predict(x_test)

参见,python代码实现决策树分类_林下月光的博客-CSDN博客_python决策树分类

参见,决策树—回归_禺垣的博客-CSDN博客_决策树回归

机器学习之决策树、随机森林相关推荐

  1. 金融风控机器学习第三十一天---拜师课堂 机器学习算法--决策树 随机森林

    ID3 c4.5的核心是熵 ID3 c4.5 cart 过拟合解决一般 用 剪枝 或者 随机森林 随机森林代码: #!/usr/bin/python # -*- coding:utf-8 -*-imp ...

  2. 机器学习——决策树+随机森林

    目录 决策树 认识决策树 决策树的生成 信息的单位--比特 信息熵 决策树的划分依据之一--信息增益 例题--银行贷款分析 决策树的其他分类依据 案例--泰坦尼克号乘客生存分类 决策树的结构.本地保存 ...

  3. 机器学习实战之分类算法(K-近邻/朴素贝叶斯/决策树/随机森林)

    机器学习分类算法 1. 机器学习算法简介 1.1 按照学习方式分类 1.2 区别 1.3 关于监督学习中的分类与回归区别 1.4 机器学习开发流程 2. 数据集介绍与划分 2.1 sklearn数据集 ...

  4. 机器学习-Sklearn-02(随机森林)

    机器学习-Sklearn-02(随机森林) 学习2 随机森林在sklearn中的实现 1 概述 1.1 集成算法概述 集成学习(ensemble learning)是时下非常流行的机器学习算法,它本身 ...

  5. 决策树随机森林GBDTXGBoost学习笔记以及代码实现

    文章目录 1. 引入 1.1 决策树 1.2 随机森林 1.3 GBDT(Gradient Boosting Decision Tree)梯度提升决策树 1.4 XGBoost(eXtreme Gra ...

  6. 【机器学习】P25 随机森林算法(2) 实现 “波士顿房价” 预测

    随机森林算法 Random Forest Algorithm 随机森林算法 随机森林算法实现波士顿房价预测 随机森林算法 随机森林(Random Forest)算法 是一种 集成学习(Ensemble ...

  7. python 随机森林调参_Python机器学习实践:随机森林算法训练及调参-附代码

    原标题:Python机器学习实践:随机森林算法训练及调参-附代码 文章发布于公号[数智物语] (ID:decision_engine),关注公号不错过每一篇干货. 来源 | 博客园 作者 | 战争热诚 ...

  8. 机器学习sklearn实战-----随机森林调参乳腺癌分类预测

    机器学习sklearn随机森林乳腺癌分类预测 机器学习中调参的基本思想: 1)非常正确的调参思路和方法 2)对模型评估指标有深入理解 3)对数据的感觉和经验 文章目录 机器学习sklearn随机森林乳 ...

  9. 机器学习算法:随机森林

    在经典机器学习中,随机森林一直是一种灵丹妙药类型的模型. 该模型很棒有几个原因: 与许多其他算法相比,需要较少的数据预处理,因此易于设置 充当分类或回归模型 不太容易过度拟合 可以轻松计算特征重要性 ...

  10. 机器学习系列|基于随机森林的生存分析模型-R实战

    机器学习系列|基于随机森林的生存分析模型-R实战 随机生存森林 随机生存森林通过训练大量生存树,以表决的形式,从个体树之中加权选举出最终的预测结果. 构建随机生存森林的一般流程为: Ⅰ. 模型通过&q ...

最新文章

  1. 训练模型前数据是不是这样处理会更好
  2. 2021年《环球科学》十大科学新闻:“天宫”空间站、火星探索位列前二
  3. java用递归删除文件夹_Java中通过递归调用删除文件夹下所有文件
  4. 51nod 1562 玻璃切割 (STL map+一点点的思考)
  5. eclipse中快捷键
  6. 《白鹿原》金句摘抄(一)
  7. mysql小鲸鱼_杀死一只小鲸鱼
  8. 某大型银行深化系统技术方案之十一:核心层之业务活动监控
  9. 反素数(高合成数?)
  10. springboot+vue全栈开发_springboot+vue(一)___开发环境以及前后端项目搭建
  11. EDSR:Enhanced Deep Residual Networks for Single Image Super-Resolution
  12. 如何使用Beckhoff平台进行串口通讯(EL6002,EL6022)
  13. 【bat】一个脚本文件,关闭IE,重置IE,配置IE,设置IE的ActionX等选项.并自动管理员身份运行
  14. ubuntu的初始密码
  15. android 手机安装windows7,手机怎么安装win7系统 安卓手机装win7系统教程
  16. 你的微信号安全吗?(附最新技术分享)
  17. JS面试题汇总(八)
  18. Tryhackme -Skynet(考点:smb 密码爆破 cuppa RFI cronjob - tar提权)
  19. 英文期刊投稿指南模板(通用版)-----以IEEE Wireless Communications为例
  20. 网站建设和网站运营需要注意什么重要因素

热门文章

  1. 方差np.var()
  2. word文档中实现目录索引中标题加粗,前导符和页码不加粗
  3. 数字日期格式转换yyyymmdd_Excel日期格式常用转换方法大全,关于日期函数
  4. 儿童专注力训练之找不同2、数数
  5. linux与电脑ping通配置方法
  6. Spring Boot入门
  7. python 开发框架 ant_Python ant
  8. 进销存小程序(一)项目整体功能和设计
  9. mysql实现跨库多表查询
  10. Keil MDK利用 fromelf 实现axf 转 bin 的方法