决策树和随机森林算法 简介

  • 决策树(Decision Tree) 是一种基础的分类回归算法
  • 随机森林 是由多棵决策树集成在一起的集成学习算法

决策树生成过程:

  • 特征选择
  • 决策树生成
  • 决策树剪枝

信息熵

用来衡量一个节点内信息的不确定性的。

  • 信息熵越大, 不确定性越大, 样本就越多样, 样本的纯度低
  • 信息熵越小, 不确定性越小, 样本趋于一致, 样本的纯度高

决策树在每次划分的时候, 理想的是每个条件分支都能够最大化地去划分这些样本, 每个检点的信息熵低, 样本的一致性高.

剪枝操作

对一棵树进行简化, 减少它的复杂度, 提高模型的泛化能力.

判断某个节点去掉后, 模型的准确度如果没有降低, 就可以减掉这个节点.

决策树算法

  • ID3(Iterative Dichotomiser 3,迭代二叉树3代)
    • 分类
    • 多叉树
    • 最初代决策树算法
    • 使用的计算指标是信息增益
    • 简单易懂
    • 无法剪枝, 容易拟合
    • 无法处理连续值
  • C4.5
    • 分类
    • 多叉树
    • ID3 基础上改进后的算法
    • 使用的计算指标是信息增益率
    • 可以处理缺失值, 连续值
    • 可以剪枝, 避免过拟合
  • CART(Classification and Regression Trees,分类与回归树)
    • 分类 / 回归
    • 二叉树
    • 做分类问题时, 使用的是 Gini 系数 (Gini Coefficient 基尼系数)
    • 做回归问题时, 使用的是 偏差值
    • 可以处理缺失值, 连续值
    • 可以剪枝, 避免过拟合
    • 既可以处理分类问题, 也可以处理回归问题

点击查看 Gini 系数: https://blog.csdn.net/galoiszhou/article/details/135148568

随机森林

由多棵决策树组成,随机指的是每一个决策树的样本是随机从数据集中采样得到的。

随机森林属于集中学习 (Ensemble Learning).

计算成本会更高. 面对复杂样本的时候, 没有办法很好的区分, 模型上限很低.

决策树算法的优点:

  • 可解释性强, 直观好理解
  • 可以从结果向上追溯原因

决策树算法的缺点:

  • 数据量大, 数据维度多的时候, 会非常的复杂, 训练时间会很久
  • 对决策树的深度设置如果不合理, 结果不理想

决策树和随机森林算法的适用场景:

  • 决策树
    • 分类问题
      • 决策树广泛应用于分类问题,例如判定邮件是否为垃圾邮件、图像是否包含某个物体等。
    • 回归问题
      • 决策树可以用于回归问题,例如预测房价、销售量等连续型变量。
    • 非线性关系
      • 决策树适用于处理非线性关系的数据,对于线性模型表现不佳的情况,决策树可能更为合适。
    • 特征之间存在复杂交互
      • 当特征之间存在复杂的交互关系,决策树可以更好地捕捉这些关系。
    • 可解释性要求高
      • 决策树提供了直观的决策规则,对于需要可解释性高的场景,例如医学诊断、法律决策等,决策树是一个不错的选择。
    • 特征类型混合
      • 决策树可以处理混合类型的特征,包括连续型和离散型特征。
    • 少量样本数据
      • 决策树对于少量样本数据也可以表现得相当鲁棒,不容易过拟合。
  • 随机森林
    • 大规模数据集
      • 随机森林通常能够很好地处理大规模数据集,因为它可以并行处理多个决策树。
    • 高维特征
      • 随机森林对高维数据具有较好的适应性,可以处理具有大量特征的数据集。
    • 复杂的分类问题
      • 随机森林适用于处理复杂的分类问题,尤其是当数据具有复杂的特征关系时。
    • 噪声较大的数据
      • 由于随机森林可以减少过拟合,因此在数据中存在噪声或异常值的情况下表现较好。
    • 特征重要性分析
      • 如果需要对特征的重要性进行分析,随机森林能够提供每个特征对于模型的贡献程度。
    • 集成学习
      • 随机森林是一种集成学习方法,通过结合多个弱学习器,可以显著提高模型的稳定性和准确性。
    • 处理缺失值
      • 随机森林能够有效处理缺失值,不需要对缺失值进行额外的处理。

决策树和随机森林算法的案例:

  • 决策树
    • 贷款申请审核
      • 决策树可用于银行贷款申请审核。通过分析申请者的信用、收入、债务等特征,决策树可以帮助判断贷款是否应该被批准。
    • 医学诊断
      • 决策树可用于医学领域,例如预测患者是否患有某种疾病。通过分析患者的症状、检测结果等特征,决策树可以辅助医生做出诊断。
    • 销售预测
      • 在销售领域,决策树可用于预测产品的销售量。通过考虑各种因素,如广告投放、季节性等,可以制定更有效的销售策略。
    • 人力资源管理
      • 决策树可用于人力资源管理,例如预测员工是否会离职。通过分析员工的绩效、满意度等特征,可以制定员工留存策略。
    • 客户流失预测
      • 决策树可用于预测客户流失概率。通过分析客户的行为、使用频率等特征,企业可以采取措施留住潜在流失客户。
  • 随机森林
    • 图像识别
      • 随机森林可用于图像识别任务。通过构建多个决策树,随机森林可以有效地处理复杂的图像特征,用于物体识别或人脸识别等场景。
    • 信用评分模型
      • 随机森林可用于建立信用评分模型。通过分析申请者的信用历史、收入、债务等特征,随机森林可以更准确地评估申请者的信用风险。
    • 森林火灾预测
      • 随机森林可以用于预测森林火灾的概率。通过分析气象数据、植被状况等特征,可以提前预警潜在的火灾风险。
    • 金融欺诈检测
      • 在金融领域,随机森林可用于检测信用卡交易中的欺诈行为。通过分析交易金额、交易地点等特征,可以识别潜在的欺诈行为。
    • 医学图像分析
      • 随机森林在医学图像分析中应用广泛,例如肿瘤检测。通过分析医学图像的特征,可以帮助医生进行病变检测和分类。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/529020.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java 抽象类_什么是final?Java抽象类又是什么?抽象类能使用 final 修饰吗?

第十三题讲解人:张小龙 8.23邮箱:2304940425qq.com一.什么是final?final是java中的一个关键字,可以用来修饰变量、方法和类。用关键词final修饰的域成为最终域。用关键词final修饰的变量一旦赋值,就不能改变&…

mysql范式与反范式_MySQL 三种范式以及反范式 | 剑花烟雨江南

第一范式确保数据表中每列(字段)的原子性,即每个字段都是最小单位,不可拆分。如:用户表(user)中的 user_name,password,nick_name。第二范式在第一范式的基础上,保证表中的每列都与主键相关。如果一个关系满…

查找微信公众号服务器地址,手把手教大家搭建微信公众号查题功能

最近比较主流的公众号输入查题功能比较火爆,现在手把手教大家搭建自己的公众号查题。如下图:准备:备案域名、服务器、公众号域名备案、服务器申请、公众号申请在这里就不单独介绍了。1、配置PHP文件把两个php代码上传服务器。更改api.php接口…

python更新excel内容_使用python将Excel表中的数据更新到数据库中

代码如下: # -*- coding: utf-8 -*- import pymysql import xlrd # 连接数据库 try: db pymysql.connect(host"127.0.0.1", user"root", passwd"root", db" test", charsetutf8) except: print("could not connect t…

mysql 中文字符排序规则_mysql中字符集和排序规则说明

数据库需要适应各种语言和字符就需要支持不同的字符集(Character Set),每种字符集也有各自的排序规则(Collation)。一.字符集字符集,即用于定义字符在数据库中的编码的集合。 常见的字符集:utf-8 gbk 等。二.排序规则数据库中的排序规则用来定…

sql server服务器位置,SQL语句实现查询SQL Server服务器名称和IP地址

获取服务器名称:SELECT SERVERPROPERTY(MachineName)select SERVERNAMEselect HOST_NAME()获取IP地址可以使用xp_cmdshell执行ipconfig命令:--开启xp_cmdshellexec sp_configureshow advanced options, 1reconfigure with overrideexec sp_configurexp_c…

如何卸载MySQL8.0.11_win10安装mysql8.0.11卸载5.7

卸载5.7的安装方式是免安装版本的,需要卸载。1、停止服务以管理员身份启动cmd命令窗口net stop mysql或是任务管理器找到mysql服务停止。2、删除sc delete mysql3、windowsR 开始运行里面输入regedit,打开注册表,有MySQL文件夹的对MySQL文件删除HKEY_LOCAL_MACHINE/…

django项目如何连接前端_工作笔记前端小白如何搭建前端项目

“前言,来到杭州差不多有两年左右了,大小小做过不少项目。之前都是有技术大佬在前面抗住、作为菜鸡的本人只要在大佬后面听大佬指挥摸鱼划水就行。最近公司接到一个新项目,由于大佬们纷纷出走,于是搭建前端框架的任务就落到本人的…

mysql编码转换工具_mysql编码转换搞定

按照下面做法,终于成功了!庆祝,纪念......背景:某个系统的mysql数据库dnname采用默认的latin1字符集,系统升级需要将所有数据转换成utf-8格式,目标数据库为newdbname(建库时使用utf8)方法一:步骤…

python基础面试都问什么问题_基本 Python 面试问题

def Stack(object): def __init__(self): self.stack [] def push(self,value): # 进栈 self.stack.append(value) def pop(self): # 出栈 if self.stack: self.stack.pop() else: raise LookupError(stack is empty!) def is_empty(self): # 查看stack是否为空 reture bool(s…

按钮点击计数器存入mysql_按钮点击数统计计数器(PHP+MYSQL+JS)

公共页面con.php <?php mysql_connect("localhost:3306","user","password") or die("数据库连接失败");mysql_select_db("click") or die("数据表连接失败");mysql_query("set names gbk");?>…

es6去除重复项_Excel的去除重复项你真的明白原理吗?浅尝去除重复项的函数奥秘...

Excel函数学习&#xff1a;悟空百问の009&#xff1a;去除重复项的深入思考我们经常整理一些数据&#xff0c;数据不可以动原数据&#xff0c;又需要进行数据分析处理&#xff0c;整理&#xff0c;数据汇总&#xff0c;如何快速的找到这些重复的值&#xff0c;这成了我们很头疼…

unit类型是什么?_面试官虚晃一枪:项目中有用过锁吗?能解释一下什么是AQS?...

1 前言锁是用来控制多个线程访问共享资源的方式&#xff0c;一般来说&#xff0c;一个锁能防止多个线程同时访问共享资源(但是有些锁可以允许多个线程并发的访问共享资源&#xff0c;如读写锁)。在以前&#xff0c;Java程序是靠synchronized来实现锁功能的&#xff0c;而在Java…

浏览器里面看到的表单数据映射到python_python爬虫入门01:教你在 Chrome 浏览器轻松抓包...

通过python爬虫入门&#xff1a;什么是爬虫&#xff0c;怎么玩爬虫&#xff1f;我们知道了什么是爬虫也知道了爬虫的具体流程那么在我们要对某个网站进行爬取的时候要对其数据进行分析就要知道应该怎么请求就要知道获取的数据是什么样的所以我们要学会怎么抓咪咪&#xff01;哦…

sql查询mysql参数配置_查询参数配置

示例请求示例http(s)://rds.aliyuncs.com/?ActionDescribeParameters&DBInstanceIdrm-uf6wjk5xxxxxxx&正常返回示例XML 格式此选项设置服务器范围内的默认填充因子值。提供填充因子是为了优化索引数据存储和性能。fill factor50mssql2008r2此选项设置服务器范围内的默…

python3类的继承详解_基于python3 类的属性、方法、封装、继承详解

下面小编就为大家带来一篇基于python3 类的属性、方法、封装、继承实例讲解。小编觉得挺不错的&#xff0c;现在就分享给大家&#xff0c;也给大家做个参考。一起跟随小编过来看看吧Python 类Python中的类提供了面向对象编程的所有基本功能&#xff1a;类的继承机制允许多个基类…

linux本地mysql与服务器同步数据_linux下指定mysql数据库服务器主从同步的配置实例...

一、 概念&#xff1a;① 数据库同步 (主从同步 --- 主数据库写的同时 往从服务器写数据)② 数据库同步 (主主同步 --- 两台数据库服务器互相写数据)二、 举例数据库服务器(A) 主数据库 IP&#xff1a;192.168.1.134数据库服务器(B) 主数据库 IP&#xff1a;192.168.1.13…

c#二叉树 取叶子节点个数_两种类似但是原理不同的算法求二叉树的所有叶子节点和...

技术提高是一个循序渐进的过程&#xff0c;所以我讲的leetcode算法题从最简单的level开始写的&#xff0c;然后到中级难度&#xff0c;最后到hard难度全部完。目前我选择C语言&#xff0c;Python和Java作为实现语言&#xff0c;因为这三种语言还是比较典型的。由于篇幅和精力有…

所有的service报红但不报错_从一个应用报错来看centos系统的/tmp目录自动清理规则...

概述分享最近应用碰到的一个奇怪bug&#xff0c;一开始以为是代码上的问题&#xff0c;找了一段时间发现居然是因为系统的一个自动清理规则导致&#xff0c;下面一起来看看吧~一、应用报错&#xff1a;logwire.core.exceptions.GeneralUnhandledException: 服务端未处理异常...…

python对浏览器的常用操作_Selenium元素的常用操作方法分析

本文实例讲述了Selenium元素的常用操作方法。分享给大家供大家参考&#xff0c;具体如下&#xff1a;Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中&#xff0c;就像真正的用户在操作一样。支持的浏览器包括IE(7, 8, 9, 10, 11)&#xff0c;Mozill…