机器学习·L2W4-决策树

news2024/11/25 6:56:06

决策树

  • 从根节点的所有示例开始
  • 计算所有可能特征的分割信息增益,并选择信息增益最高的特征
  • 根据所选特征分割数据集,并创建树的左分支和右分支
  • 不断重复分割过程,直到满足停止条件

信息增益

也可以理解为信息熵的减少
p p p是结果为positive的概率

Information Gain = H ( p 1 node ) − ( w left H ( p 1 left ) + w right H ( p 1 right ) ) , \text{Information Gain} = H(p_1^\text{node})- \left(w^{\text{left}}H\left(p_1^\text{left}\right) + w^{\text{right}}H\left(p_1^\text{right}\right)\right), Information Gain=H(p1node)(wleftH(p1left)+wrightH(p1right)),

信息熵

与逻辑回归的SparseCategoricalCrossentropy函数定义一致

H ( p 1 ) = − p 1 log 2 ( p 1 ) − ( 1 − p 1 ) log 2 ( 1 − p 1 ) H(p_1) = -p_1 \text{log}_2(p_1) - (1- p_1) \text{log}_2(1- p_1) H(p1)=p1log2(p1)(1p1)log2(1p1)

一次性编码

用于解决有多个分类的特征

连续型随机变量

设定一个阈值,用于划分左右子树,该阈值使得信息增益最大化。

在这里插入图片描述

回归树

树划分的标准为:

v a r r o o t − ( w l e f t ∗ v a r l e f t + w r i g h t ∗ v a r r i g h t ) var_{root}-\left(w_{left}*var_{left}+w_{right}*var_{right}\right) varroot(wleftvarleft+wrightvarright)

在这里插入图片描述
输出的结果为数据集的均值

随机森林

随机森林每次从n个样本中抽取 n \sqrt{n} n 个特征作为划分的标准,可以避免形成对于特定特征局部一致的决策树

决策树模型中的所有超参数也将存在于此算法中,因为随机森林是许多决策树的集合。

  • 随机森林的另一个超参数称为 n_estimators,它是组成随机森林的决策树的数量。
    请记住,对于随机森林,我们随机选择特征子集并随机选择训练示例子集来训练每棵树。

  • 按照讲座,如果n是特征数量,我们将随机选择 n \sqrt{n} n 这些特征来训练每棵树。请注意,您可以通过设置 max_features 参数来修改它。

  • 您还可以使用另一个参数 n_jobs 加快训练作业的速度。
    由于每棵树的拟合彼此独立,因此可以并行拟合多棵树。
    因此,将 n_jobs 设置得更高将增加其使用的 CPU 核心数。

model=RandomForestClassifier(min_samples_split=min_samples).fit(X_train,Y_train)
    y_train=model.predict(X_train)
    y_cv=model.predict(X_cv)
    
    accuracy_train=accuracy_score(y_train,Y_train)
    accuracy_cv=accuracy_score(y_cv,Y_cv)
    
    accuracy_list_train.append(accuracy_train)
    accuracy_list_cv.append(accuracy_cv)

XGBOOST

核心思想:刻意挑选哪些训练效果不好(分类或者预测效果差)的样本用于训练决策树

梯度提升模型,称为 XGBoost。提升方法训练多棵树,但它们彼此之间不再互不相关,而是一棵树接一棵树地拟合,以最小化误差。

该模型具有与决策树相同的参数,加上学习率。

学习率是梯度下降法的步骤大小,XGBoost 在内部使用该方法来最小化每个训练步骤中的误差。

XGBoost 的一个有趣之处在于,在拟合过程中,它可以采用形式为 (X_val,y_val) 的评估数据集。

在每次迭代中,它都会测量评估数据集上的成本(或评估指标)。
一旦成本(或指标)在一定轮次(称为 early_stopping_rounds)内停止下降,训练就会停止。
迭代次数越多,估计量就越多,而估计量越多,则会导致过度拟合。

from xgboost import callback
early_stopping = callback.EarlyStopping(rounds=20, save_best=True, maximize=False)
#%%
xgb_model=XGBClassifier(n_estimators=500,learning_rate=0.1)
xgb_model.fit(X_train,Y_train,eval_set=[(X_cv,Y_cv)])

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

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

相关文章

住宅代理和数据中心代理:指纹浏览器用哪个更安全?

在当今的数字时代,确保您的在线安全至关重要。这就是住宅和数据中心代理发挥作用的地方,它们可以保护您的身份和个人信息。指纹浏览器解决了账号所在环境指纹参数隔离的安全问题,而IP解决环境的定位与隔离问题,就像Maskfog中提供的…

洛伦兹微分方程与混沌理论

前言 这一段时间在看书中关于深度学习与神经网络的内容,其中有一节介绍神经网络用于预测洛伦兹微分方程的数值解,还提到了“吸引子”这一概念,当时也没太理解是什么,下午搜集了一本书上关于混沌理论的介绍——《混沌的本质》。 这…

【线性回归】——解决运筹优化类问题

目录 文章目录 前言 一、模型原理 1.线性规划模型的三要素 😏😏😏 2.模型特点 3.线性规划的表现形式 二、模型建立步骤 1.找决策变量 2.确定目标函数 3.找到约束条件 4.运用Matlab中的Linprog函数 总结 前言 在实际生活应用中,我…

Unity入门5——材质

创建材质 点击Assets → Create → Material,得到一个默认材质球的副本。 使用材质 直接把材质球拖拽到物体上,或设置mesh renderer组件下的Materials 数组中第一个元素

etcd高可用集群部署

文章目录 一、环境准备二、安装部署2.1 下载安装包2.2 将etcd和etcdctl复制到/usr/local/bin中2.3 创建目录并赋予权限2.4 修改节点配置2.4.1 配置etcd.conf文件2.4.2 配置/etc/systemd/system/etcd.service文件 2.5 启动ectd服务2.6 查看集群成员信息2.7 查看集群状态 在生产环…

【PyQt5】PyQt5 信号和槽

基于GUI的应用程序是事件驱动的。函数或方法按照用户的操作(例如点击按钮、从集合中选择项目或点击鼠标等)来执行,这些操作被称为 事件 。用于构建GUI界面的小部件充当这些事件的来源。每个PyQt小部件都是从QObject类派生而来,设计…

《Redis设计与实现》读书笔记-复制

目录 1.概述 2.复制命令 3.部分重同步过程 4.部分重同步实现 4.1复制偏移量 4.2复制积压缓冲区 4.3服务器运行ID 5.总结 1.概述 在redis 通过向从服务器发送命令:SLAVE OF,让从服务器复制主服务器,成为复制。 复制的目的 让从服务器…

等保测评 linux设置三权分立

1、首先浅谈一下目录结构 drwxr-xr-x意思如下:第一位表示文件类型。 d是目录文件,l是链接文件,-是普通文件,p是管道。后面的分三个三个来看,即 rwx 、r-x 、r-x。 第一个: root :r 是可读&#…

在Linux中认识pthread库

int *pnullptr; pnullptr; *pnullptr; 指针变量做右值也是变量拥有空间。去承装数据。 *p代表指针所指向的空间,及0号地址,及往虚拟地址的0号地址处写8个字节的数据,全部写为0. (此操作不允许) 进程和线程的关系如…

Python PDF文本处理技巧 - 查找和高亮文字

目录 使用工具 Python在PDF中查找和高亮文字并统计出现次数和页码 Python在PDF的特定页面区域中查找和高亮文字 Python使用正则表达式在PDF中查找和高亮文字 Python在PDF中查找文字并获取它的坐标位置 其他查找条件设置 在日常工作和学习中,我们常常需要处理各…

命令-响应框架在 ESP RainMaker 中的应用

【如果您之前有关注乐鑫的博客和新闻,那么应该对 ESP RainMaker 及其各项功能有所了解。如果不曾关注,建议先查看相关信息,知晓本文背景。】 在 ESP RainMaker 中,管理员用户可以查看一些基本的节点数据,包括类型、型…

【Liunx】线程与进程的经典面试题总结

在这个浮躁的时代 只有自律的人才能脱颖而出 -- 《觉醒年代》 线程与进程的面试题总结 1 简述什么是LWP2 简述LWP与pthread_create创建的线程之间的关系3 简述轻量级进程ID与进程ID之间的区别4 请简述什么是线程互斥,为什么需要互斥5 简述你了解的进程间通信方式…

【免费测试】人脸身份证比对接口如何用Java对接?(二)

一、什么是人脸身份证比对? 人脸身份证比对又称人证比对,实人比对,人像比对,输入姓名、身份证号码和头像照片,与公安库身份证头像进行权威比对,返回分值作为判断依据。 二、人脸身份证比对接口适用哪些场…

安科瑞智慧能源管理平台在电动汽车虚拟电厂优化调度起到什么作用?

摘要:大量电动汽车用户的无序充电可能造成电网负荷剧烈波动,危及电网的安全稳定。随着电动汽车入网技术的应用,将电动汽车充电站及其周边的分布式新能源发电聚合为虚拟电厂后进行优化调度,有助于改善电动汽车用户充放电的经济性及…

深入LVS内核世界:揭秘其高效背后的技术细节与实现机制

LVS简介 Linux virtual server,即Linux虚拟服务器,是一种基于Linux平台的高性能、高可用的服务器负载均衡技术。它主要工作在网络层、传输层(OSI参考模型的第三层、第四层),主要通过IP地址和端口号来转发网络流量。LV…

【Dash】Web 应用程序中的可复用组件

一、Reuable Comopnents By writing our makup in Python, we can create complex reusable components like tables without switching contexts or languages. from dash import Dash, html import pandas as pddf pd.read_csv(https://raw.githubusercontent.com/GarciaS…

程序包javax.annotation不存在

1、问题 程序包javax.annotation不存在2、原因 JDK1.8升级到17后,由于Java EE已经变更为Jakarta EE,包名以 javax 开头的需要改为 jakarta 3、解决 import javax.annotation.Resource; 替换成 import jakarta.annotation.Resource; 问题解决。 …

基于STM32开发的智能灌溉系统

目录 引言环境准备工作 硬件准备软件安装与配置系统设计 系统架构硬件连接代码实现 初始化代码控制代码应用场景 农业灌溉园艺灌溉常见问题及解决方案 常见问题解决方案结论 1. 引言 智能灌溉系统通过监测土壤湿度和环境条件,自动控制水泵和阀门,实现…

Linux系统驱动(十)设备树

文章目录 一、简介二、设备树语法(一)设备树的组成1. 节点的组成(1)节点的别名(2)节点可以被引用(3)同名节点的合并 2. 属性的组成(1)值的字符串表示形式&…

基于STM32开发的停车场管理系统

目录 引言环境准备工作 硬件准备软件安装与配置系统设计 系统架构硬件连接代码实现 初始化代码控制代码应用场景 商业停车场管理住宅区停车场管理常见问题及解决方案 常见问题解决方案结论 1. 引言 停车场管理系统通过监测车辆进出情况、空余车位数量以及收费情况&#xff0…