惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

S
Schneier on Security
F
Fortinet All Blogs
博客园_首页
The GitHub Blog
The GitHub Blog
V
Visual Studio Blog
D
DataBreaches.Net
aimingoo的专栏
aimingoo的专栏
爱范儿
爱范儿
B
Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
N
Netflix TechBlog - Medium
阮一峰的网络日志
阮一峰的网络日志
P
Proofpoint News Feed
D
Docker
Engineering at Meta
Engineering at Meta
大猫的无限游戏
大猫的无限游戏
The Cloudflare Blog
罗磊的独立博客
云风的 BLOG
云风的 BLOG
Microsoft Azure Blog
Microsoft Azure Blog
T
The Exploit Database - CXSecurity.com
博客园 - 三生石上(FineUI控件)
量子位
The Last Watchdog
The Last Watchdog
MyScale Blog
MyScale Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
T
The Blog of Author Tim Ferriss
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
小众软件
小众软件
Cloudbric
Cloudbric
博客园 - 司徒正美
H
Help Net Security
人人都是产品经理
人人都是产品经理
Application and Cybersecurity Blog
Application and Cybersecurity Blog
L
LangChain Blog
Latest news
Latest news
M
MIT News - Artificial intelligence
T
Threat Research - Cisco Blogs
博客园 - Franky
S
Security Affairs
W
WeLiveSecurity
F
Full Disclosure
Know Your Adversary
Know Your Adversary
Google DeepMind News
Google DeepMind News
The Hacker News
The Hacker News
Cyberwarzone
Cyberwarzone
美团技术团队
PCI Perspectives
PCI Perspectives
C
Check Point Blog
Spread Privacy
Spread Privacy

Chenxu's Blog

RAG检索优化:从 68% 到 82.2% 学习深度学习 北邮计算机研究生选课指北 学习机器学习 上海篇 提出一个好问题 写代码的环境 选购一台合适的设备 计算机的第零课 序言 内蒙古篇 山东篇 一篇对transformers的疑惑 浅析GPUStack 浅谈后端项目分层 浙江篇 河南篇 一些三端协同的开发工具记录 浅谈编程语言中的 GC 在 Windows 上安装 Rust 美化博客 消息队列 MyBatis 现代交换原理2024年题目 回忆版 北邮计科本科课程指北 ClkLog埋点用户分析系统研究报告 大数据HBase实验分享 国产向量数据库研究实践 —— 基于 Milvus 的电影推荐系统 服务器环境配置 大数据HDFS实验分享 SSE多服务之间推送数据 数据库系统原理 操作系统 编译原理 手把手教你gozero从开发到部署 (番外篇): 介绍 gtodolist 前端项目 天津篇 北京篇 手把手教你gozero从开发到部署 (5): gtodolist 之任务的删除 前端相关问题 vue3 + element-plus学习 git相关命令 人工智能原理 使用 MongoTemplate 时开启事务 MySQL Redis 力扣刷题笔记之动态规划 记录一次 VSCode 出现的各种奇怪的问题 手把手教你gozero从开发到部署 (4): 在 model 中自己编写函数实现数据库分页查询 记录平时用到的 windows 右键管理 记录平时使用的 linux 的指令 安装 gstore 并使用 java api 手把手教你gozero从开发到部署 (3): gtodolist 之任务的创建和修改 手把手教你gozero从开发到部署 (番外篇): 记录第一次部署 CI/CD 的流程 记录完成 gtodolist 中遇到的 bug 手把手教你gozero从开发到部署 (2): gtodolist 之 user 模块开发 手把手教你gozero从开发到部署 (1): gtodolist 项目说明和环境准备 快速入门 gozero 框架 vue部署在nginx上的相关问题 记一次安装scrapy的报错 将博客部署至服务器 Java CS143: Compliers 《MySQL必知必会》读书笔记(2) 初识 GORM 初识 gin 框架 Spring 《MySQL必知必会》读书笔记(1) 本地搭建博客 🤝友链 🙋🏻‍♂️关于 Browser and Device Check
大数据梧桐实验分享
Chenxu · 2024-05-24 · via Chenxu's Blog

XGBoost 算法

XGBoost 算法的原理基于梯度提升(Gradient Boosting)框架,其核心思想是构建多个弱预测模型,通常是决策树,并逐步优化以提高整体模型的性能。下面是 XGBoost 的基本流程介绍:

  1. 初始化模型:开始时,模型可以是一个简单的基模型,如一个常数值,它代表了训练数据的初始预测。
  2. 计算残差:对于每个训练样本,计算当前模型的预测值与真实值之间的残差(误差)。
  3. 构建新的弱模型:利用残差作为目标,训练一个新的弱模型(通常是决策树)。这个新模型的目的是预测每个样本的残差。
  4. 更新模型:将新训练的弱模型以一定的学习率添加到现有模型中,更新整体模型的预测。
  5. 正则化:在更新过程中,引入正则化项(L1 和 L2 正则化),以防止模型过于复杂,减少过拟合的风险。
  6. 迭代优化:重复步骤 2 到 5,直到达到预定的迭代次数或模型性能不再显著提升。

XGBoost 特点:

  • 梯度提升:XGBoost 使用梯度提升决策树(GBDT)作为基学习器,通过迭代地添加新的树来最小化损失函数。
  • 正则化:XGBoost 在损失函数中加入了正则化项,包括 L1(Lasso)和 L2(Ridge)正则化,这有助于防止模型过拟合。
  • 灵活性:XGBoost 支持用户自定义的损失函数和评估标准,使其能够灵活地应用于各种机器学习任务。
  • 剪枝:XGBoost 在生长树的过程中,会对树进行剪枝,以避免过拟合。

性能评价标准

True/False: 机器判断结果的对/错

Positive/Negative: 机器判断结果的正/负

True False
Positive TP FP
Negative TN FN

准确率 – Accuracy

预测正确的结果占总样本的百分比 $$准确率 =(TP+TN)/(TP+TN+FP+FN)$$

精确率(差准率)- Precision

所有被预测为正的样本中实际为正的样本的概率 $$精准率 =TP/(TP+FP)$$

召回率(查全率)- Recall

实际为正的样本中被预测为正样本的概率 $$召回率=TP/(TP+FN)$$

F1-score

为了综合精确率和召回率的表现,在两者之间找一个平衡点,就出现了一个 F1 分数。

$$F1-score = \frac{2 \times Precision \times Recall}{Precision+Recall}$$

ROC 和 AUC

在利用精确率和召回率两个指标时,这两个指标是随着我们设定的分类的阈值变化的,具有一定的主观性,但是我们希望有更好的指标克服这个缺点,能够客观描述一个模型的质量,这就是 ROC 曲线。

$$灵敏度(Sensitivity) = TP/(TP+FN)$$ $$特异度(Specificity) = TN/(FP+TN)$$ $$真正率(TPR) = 灵敏度 = TP/(TP+FN)$$ $$假正率(FPR) = 1- 特异度 = FP/(FP+TN)$$

ROC 曲线以真正率 TPR 为纵轴,以假正率 FPR 为横轴,在不同的阈值下获得坐标点,并连接各个坐标点,得到 ROC 曲线。

AUC 被定义为 ROC 曲线下的面积,使用 AUC 值作为评价标准是因为很多时候 ROC 曲线并不能清晰的说明哪个分类器的效果更好,分类器对应的 AUC 越大说明其效果越好。