集成学习笔记

集成学习

简介

在这里插入图片描述

决策树

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

GBDT

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
拟合残差
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

一般 GBDT

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

XGBOOST

1
能表达样本落入的子节点,但是不能把表示结构
在这里插入图片描述
2
在这里插入图片描述

3.正则项 – 惩罚

防止过拟合,比如一个值总共有10颗树都是由同一颗树决定的,过拟合
5
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
找到一种方式不依赖于损失函数 – 二阶泰勒
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述gi – 一阶梯度 hi–二阶梯度
损失
在这里插入图片描述
凸函数Hj为正,lambda为正
在这里插入图片描述
7 确定树结构

  • 穷举 – 所有组合,复杂度太高,不可行
  • gain – 贪心算法
    • 增益 = obj前 - obj后

不需要考虑排列组合的过程
在这里插入图片描述
停止分裂:
1 max(gain) <= 0
2 叶子节点个数
3 效果

作者代码
在这里插入图片描述
在这里插入图片描述

唐宇迪

O b j ( Θ ) = L ( Θ ) + Ω ( Θ ) Obj(\Theta) = L(\Theta)+\Omega(\Theta) Obj(Θ)=L(Θ)+Ω(Θ)

损失:
L = ∑ i = 1 n l ( y i , y i ^ ) L = \sum_{i=1}^{n}{l(y_i,\hat{y_i})} \hspace{4cm} L=i=1nl(yi,yi^)

O b j = ∑ i = 1 n l ( y i , y i ^ ) + ∑ = 1 t Ω ( f i ) Obj= \sum_{i=1}^{n}{l(y_i,\hat{y_i})}+\sum_{=1}^{t}\Omega({f_i)} \hspace{4cm} Obj=i=1nl(yi,yi^)+=1tΩ(fi)

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

样本的遍历转化为叶子节点的遍历是等价的

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

Gain
在这里插入图片描述

xgboost的安装
https://www.lfd.uci.edu/~gohlke/pythonlibs/
搜索xgboost
https://www.lfd.uci.edu/~gohlke/pythonlibs/#xgboost

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

xgboost参数:

‘booster’:‘gbtree’,
‘objective’: ‘multi:softmax’, 多分类的问题
‘num_class’:10, 类别数,与 multisoftmax 并用
‘gamma’:损失下降多少才进行分裂
‘max_depth’:12, 构建树的深度,越大越容易过拟合
‘lambda’:2, 控制模型复杂度的权重值的L2正则化项参数,参数越大,模型越不容易过拟合。
‘subsample’:0.7, 随机采样训练样本
‘colsample_bytree’:0.7, 生成树时进行的列采样
‘min_child_weight’:3, 孩子节点中最小的样本权重和。如果一个叶子节点的样本权重和小于min_child_weight则拆分过程结束
‘silent’:0 ,设置成1则没有运行信息输出,最好是设置为0.
‘eta’: 0.007, 如同学习率
‘seed’:1000,
‘nthread’:7, cpu 线程数

在这里插入图片描述

为什么xgboost要用二阶泰勒展开,优势在哪里?

xgboost进行了二阶泰勒展开, 使用梯度下降求解时收敛速度更快。
引入二阶泰勒展开是为了统一损失函数求导的形式,以支持自定义损失函数。二阶泰勒展开可以在不选定损失函数具体形式的情况下, 仅仅依靠输入数据的值就可以进行叶子分裂优化计算, 本质上也就把损失函数的选取和模型算法优化(参数选择)分开了。 这种去耦合方法增加了xgboost的适用性, 使得它可以自定义损失函数, 可以用于分类, 也可以用于回归。
————————————————
版权声明:本文为CSDN博主「Yasin_」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Yasin0/article/details/82154768

Adaboost

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2 特征选择

2.1

在这里插入图片描述

2.2 参数
1.1 weight

特征在所有树中作为划分属性的次数。

1.2 gain

特征在作为划分属性时loss平均的降低量(也就是特征的信息增益),以特征k=1,2,…,K为例,其重要度计算可以表述如下:
在这里插入图片描述
这里k表示某节点,T表示所有树的数量,N(t)表示第t棵树的非叶子节点数量, [公式] 表示第t棵树的第i个非叶子节点的划分特征,所以 [公式] ,I(.)是指示函数, [公式] 分别表示落在第t棵树的第i个非叶子节点上所有样本的一阶导数和二阶导数之和,[公式]分别表示落在第t棵树上第i个非叶子节点的左、右节点上的一阶导数之和,同理,[公式]分别表示落在第t棵树上第i个非叶子节点的左、右节点上的二阶导数之和,所以有
在这里插入图片描述
λ为正则化项的超参数。

1.3 cover

这个计算方法,需要在定义模型时定义。之后再调用model.feature_importance_得到的便是cover得到的贡献度。

cover形象地说,就是树模型在分裂时,特征下的叶子节点涵盖的样本数除以特征用来分裂的次数。分裂越靠近根部,cover值越大。比如可以定义为:特征在作为划分属性时对应样本的二阶导数之和的平均值:
在这里插入图片描述

在这里插入图片描述

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

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

相关文章

Android开发之内访Sqlite数据库(六)

文章目录 1. Android开发之外访Sqlite数据库1.1 Sqlite数据库的优点1.2 Sqlite接口简介接口中的抽象方法接口中的实例方法接口的构造方法示例步骤例子 —— 实现增删改查 1. Android开发之外访Sqlite数据库 SQLite是一个软件库&#xff0c;实现了自给自足的、无服务器的、零配…

python的优势有哪些?

python的优点很多&#xff0c;下面简单地列举一些&#xff1a; 简单 Python的语法非常优雅&#xff0c;甚至没有像其他语言的大括号&#xff0c;分号等特殊符号&#xff0c;代表了一种极简主义的设计思想。阅读Python程序像是在读英语。 易学 Python入手非常快&#xff0c;学习…

K8s:无状态

无状态服务 无状态服务是指服务的实例之间没有持久化状态&#xff0c;每个实例都是相同的&#xff0c;可以互换使用。 调度器 ReplicationController 简称 RC是 Kubernetes 早期版本中用来确保 Pod 副本始终运行的 API 对象。它通过监控 Pod 副本的数量&#xff0c;确保任何…

vue 常用的 UI 框架及表格

vue 3 常用的 UI 框架及表格 常用 UI 框架 Element PlusAnt Design VueiViewVxe UIVuetifyBootstrap VueMuse UI 专业表格 SpreadJSAG GridVxe Table

Linux——内存管理代码分析

虚空间管理 页框和页的关系 页框 将内存空间分为一个个大小相等的分区(比如:每个分区4KB),每个分区就是一个页框&#xff0c;也叫页帧&#xff0c;即物理页面&#xff0c;是linux划分内存空间的结果。 每个页框都有一个页框号&#xff0c;即内存块号、物理块号。 页 将用户…

深度学习之指数移动平均模型(EMA)介绍

指数移动平均模型&#xff08;Exponential Moving Average Model&#xff0c;EMA&#xff09;是一种用于平滑时间序列数据的技术。它通过对数据进行加权平均来减少噪音和波动&#xff0c;从而提取出数据的趋势。 在深度学习中&#xff0c;EMA 常常用于模型的参数更新和优化过程…

完整指南:远程管理 Linux 服务器的 Xshell6 和 Xftp6 使用方法(Xshell无法启动:要继续使用此程序........,的解决方法)

&#x1f600;前言 在当今软件开发领域&#xff0c;远程管理 Linux 服务器已成为日常工作的重要组成部分。随着团队成员分布在不同的地理位置&#xff0c;远程登录工具的使用变得至关重要&#xff0c;它们为开发人员提供了访问和管理服务器的便捷方式。本文将介绍两款功能强大的…

python随机显示四级词汇 修改版直接显示释义

python随机显示四级词汇 修改版直接显示释义 添加暂停 和继续(按下中建滚轮触发) 按下右键 退出程序 解决在暂停后 ,重新调用update_word 会明显发现每隔5秒更新一次单词的速率已经改变 速率改变的问题可能是由于暂停期间没有清除之前的定时器所导致的。为了确保重新调用updat…

Linux高级进阶-ssh配置

Ubuntu-system 允许使用root远程登陆 apt install ssh -y在/etc/ssh/sshd_config 文件修改PermitRootLogin yes systemctl restart ssh远程连接软件用户名为root

Ubuntu系统中Apache Web服务器的配置与实战

✨✨ 欢迎大家来访Srlua的博文&#xff08;づ&#xffe3;3&#xffe3;&#xff09;づ╭❤&#xff5e;✨✨ &#x1f31f;&#x1f31f; 欢迎各位亲爱的读者&#xff0c;感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢&#xff0c;在这里我会分享我的知识和经验。&am…

Educational Codeforces Round 166(Div.2) A~D

A.Verify Password&#xff08;字符串&#xff09; 题意&#xff1a; Monocarp正在开发他的新网站&#xff0c;目前面临的挑战是如何让用户选择强密码。 Monocarp认为&#xff0c;强密码应满足以下条件&#xff1a; 密码只能由小写拉丁字母和数字组成&#xff1b;字母后面不…

PasteCode系列系统说明

定义 PasteCode系列是指项目是基于PasteTemplate构建的五层以上项目&#xff0c;包括不仅限于 Domain EntityFrameworkCore Application.Contracts Application HttpApi.Host 熟悉ABP vNext就很好理解了&#xff0c;因为PasteTemplate就是基于ABP的框架精简而来&#xff01;在…

一些Mysql面试题

InnoDB是如何存储数据的&#xff1f; InnoDB 的数据是按「数据页」为单位来读写的&#xff0c;默认数据页大小为 16 KB。每个数据页之间通过双向链表的形式组织起来&#xff0c;物理上不连续&#xff0c;但是逻辑上连续。 数据页内包含用户记录&#xff0c;每个记录之间用单向…

【java 如何将字符串反转?】

文章目录 概要示例&#xff08;1&#xff09;使用StringBuilder的reverse方法&#xff08;2&#xff09;使用charAt和循环&#xff08;3&#xff09;使用双指针&#xff08;4&#xff09;使用递归 总结 概要 在Java中&#xff0c;有多种方法可以将字符串反转&#xff0c;我这里…

代码随想录训练营第二天 977有序数组的平方 209长度最小的子数组 59螺旋矩阵II

第一题&#xff1a; 题目链接&#xff1a;977. 有序数组的平方 - 力扣&#xff08;LeetCode&#xff09; 思路&#xff1a; 先将数组求完平方和后进行排序&#xff0c;很简单&#xff0c;主要是排序算法的考察。 这里采用快排 快排的思路&#xff1a; 取这个数组的中间值…

代码随想录算法训练营第四十六 | ● 139.单词拆分 ● 关于多重背包,你该了解这些! ● 背包问题总结篇!

139.单词拆分 视频讲解&#xff1a;https://www.bilibili.com/video/BV1pd4y147Rh https://programmercarl.com/0139.%E5%8D%95%E8%AF%8D%E6%8B%86%E5%88%86.html class Solution { public:bool wordBreak(string s, vector<string>& wordDict) {unordered_set<st…

java stream流之groupby的用法

简单分组 按照年龄对 Person 对象进行分组&#xff1a; 代码示例 import java.util.*; import java.util.stream.Collectors;public class SimpleGrouping {public static void main(String[] args) {List<Person> people Arrays.asList(new Person("Alice"…

上市即交付,比亚迪秦L DM-i万人交车暨千媒众测开营

6月6日&#xff0c;“引领中级 开创油耗2时代”秦L DM-i万人交车暨千媒众测开营仪式在比亚迪大本营深圳盛大举行。 众多车主代表亲临现场&#xff0c;与全国各地的比亚迪4S店千店联动&#xff0c;将秦L DM-i全国交付推向新的高潮。发布即量产&#xff0c;上市即交付&#xff0…

ESP32:FreeRTOS节拍配置(vTaskDelay延时10ms改为1ms)

文章目录 背景方法手动修改sdkconfig通过idf.py menuconfig 背景 在FreeRTOS的默认配置中&#xff0c;任务调度的频率默认是100HZ&#xff0c;因此默认vTaskDelay默认延时是10ms。 FreeRTOS 的系统时钟节拍可以在配置文件 FreeRTOSConfig.h 里面设置&#xff1a;#define confi…

【HarmonyOS】鸿蒙应用子模块module资源如何获取

【HarmonyOS】鸿蒙应用子模块module资源如何获取 一、问题背景&#xff1a; 在多模块项目工程中&#xff0c;单个模块的资源不会放在主模块中&#xff0c;所以我们需要在子模块中访问自己的资源。如果使用默认的资源获取api&#xff0c;会提示找不到资源。 那如何获取子模块下…