搜广推实习面经四
字节跳动TAC 广告算法
一、回归任务的评价指标有哪些
- 1.均方误差(Mean Squared Error, MSE)/均方根误差(Root Mean Squared Error, RMSE)
M S E = 1 n ∑ i = 1 n ( y i − y ^ i ) 2 MSE = \frac{1}{n} \sum_{i=1}^{n} (y_i - \hat{y}_i)^2 MSE=n1i=1∑n(yi−y^i)2 - 2.平均绝对误差(Mean Absolute Error, MAE)
M A E = 1 n ∑ i = 1 n ∣ y i − y ^ i ∣ MAE = \frac{1}{n} \sum_{i=1}^{n} |y_i - \hat{y}_i| MAE=n1i=1∑n∣yi−y^i∣ - 3.平均绝对百分比误差(Mean Absolute Percentage Error, MAPE)
MAPE 衡量模型预测误差相对于真实值的百分比。
M A P E = 1 n ∑ i = 1 n ∣ y i − y ^ i y i ∣ × 100 MAPE = \frac{1}{n} \sum_{i=1}^{n} \left|\frac{y_i - \hat{y}_i}{y_i}\right| \times 100 MAPE=n1i=1∑n yiyi−y^i ×100 - 4.R² 或 决定系数(Coefficient of Determination)
R² 反映了模型对数据的拟合程度,值的范围在 [0,1]之间。R² 值越接近 1,表示模型越能解释数据的方差;接近 0 则表示模型的解释能力较弱。
R 2 = 1 − ∑ i = 1 n ( y i − y ^ i ) 2 ∑ i = 1 n ( y i − y ˉ ) 2 R^2 = 1 - \frac{\sum_{i=1}^{n} (y_i - \hat{y}_i)^2}{\sum_{i=1}^{n} (y_i - \bar{y})^2} R2=1−∑i=1n(yi−yˉ)2∑i=1n(yi−y^i)2 - 5.调整后的 R²(Adjusted R²)
调整后的 R² 是对 R² 的修正,考虑到模型中自变量的数量。当自变量较多时,R² 值可能会偏高(特征多了更容易拟合),防止模型因增加无关特征而导致 R² 值虚高。因此调整后的 R² 提供了更可靠的评价。
R adj 2 = 1 − ( 1 − R 2 ) n − 1 n − p − 1 R^2_{\text{adj}} = 1 - \left(1 - R^2\right) \frac{n - 1}{n - p - 1} Radj2=1−(1−R2)n−p−1n−1
- n n n 是样本数,
- p p p 是自变量数量。
二、标签长尾分布,多峰分布怎么应对?
- 1.长尾分布
- 少数类范围的样本做过采样、多数类范围的样本做降采样
- 做log、Box_Cox变换等
- 变换目标(比如房价,大部分价格都是百万级别,尾巴肯定有千万、上亿的,可以通过房价/面积得到每平方价格,用每平方价格当作标签计数)
- 用无监督模型对每个样本预先打上一个标签(这个类别标签表示这个样本大概属于那个范围)
- 稀疏样本加权
- 2.多峰分布
感觉和长尾分布处理方式差不多。但是多峰分布可能更适合采用分组建模
分组建模:如果数据中的不同部分存在不同的模式,考虑使用分组建模或分段模型,为每个群体(峰值区域)建立单独的模型。
三、优化器有哪些
在机器学习中,优化器负责调整模型的参数以最小化损失函数,帮助模型更好地拟合数据。
- 1.基础的优化器
- Ⅰ.随机梯度下降 (SGD)
θ = θ − η ⋅ ∇ θ J ( θ ) \theta = \theta - \eta \cdot \nabla_{\theta} J(\theta) θ=θ−η⋅∇θJ(θ)
- θ \theta θ: 模型参数
- η \eta η: 学习率
- J ( θ ) J(\theta) J(θ): 损失函数 - Ⅱ.动量法 (Momentum)
引入动量,使得更新方向受之前梯度的影响,平滑收敛路径。
v t = β v t − 1 + ( 1 − β ) ∇ θ J ( θ ) θ = θ − η v t v_t = \beta v_{t-1} + (1 - \beta) \nabla_{\theta} J(\theta) \\ \theta = \theta - \eta v_t vt=βvt−1+(1−β)∇θJ(θ)θ=θ−ηvt
- v t v_t vt: 动量向量
- β \beta β: 动量系数(如 0.9)
- Ⅰ.随机梯度下降 (SGD)
- 2.自适应优化器
自适应优化器(Adaptive Optimizer)是指能够根据梯度变化动态调整学习率的优化算法。这类优化器的主要目标是改进传统优化器(如SGD)的收敛速度和稳定性,特别是在训练非凸深度学习模型时表现优异。- Ⅰ.Adagrad
可以为每个参数自适应调整学习率,但是累积历史梯度平方和导致学习率持续下降,后期更新较慢
θ = θ − η G t , i i + ϵ ∇ θ J ( θ ) \theta = \theta - \frac{\eta}{\sqrt{G_{t,ii} + \epsilon}} \nabla_{\theta} J(\theta) θ=θ−Gt,ii+ϵη∇θJ(θ)- G t G_t Gt: 梯度平方的累加矩阵。
- ϵ \epsilon ϵ: 防止分母为零的小值。
- Ⅱ.RMSprop
通过梯度平方的指数加权平均,解决了 Adagrad 的学习率衰减问题。
E [ g 2 ] t = β E [ g 2 ] t − 1 + ( 1 − β ) g t 2 θ = θ − η E [ g 2 ] t + ϵ ∇ θ J ( θ ) E[g^2]_t = \beta E[g^2]_{t-1} + (1 - \beta) g_t^2 \\ \ \\ \theta = \theta - \frac{\eta}{\sqrt{E[g^2]_t + \epsilon}} \nabla_{\theta} J(\theta) E[g2]t=βE[g2]t−1+(1−β)gt2 θ=θ−E[g2]t+ϵη∇θJ(θ)- E [ g 2 ] t E[g^2]_t E[g2]t: 梯度平方的指数加权平均。
- Ⅲ.Adam (Adaptive Moment Estimation)
综合了动量法和 RMSprop 的优点,基本默认的都是用Adam
一阶动量: m t = β 1 m t − 1 + ( 1 − β 1 ) g t 二阶动量: v t = β 2 v t − 1 + ( 1 − β 2 ) g t 2 参数更新: θ = θ − η ⋅ m ^ t v ^ t + ϵ 一阶动量:m_t = \beta_1 m_{t-1} + (1 - \beta_1) g_t \\ 二阶动量:v_t = \beta_2 v_{t-1} + (1 - \beta_2) g_t^2 \\ 参数更新:\theta = \theta - \eta \cdot \frac{\hat{m}_t}{\sqrt{\hat{v}_t} + \epsilon} \\ 一阶动量:mt=β1mt−1+(1−β1)gt二阶动量:vt=β2vt−1+(1−β2)gt2参数更新:θ=θ−η⋅v^t+ϵm^t- m ^ t \hat{m}_t m^t, v ^ t \hat{v}_t v^t: 偏差校正。
- Ⅰ.Adagrad
- 3.高级的优化器
- Ⅰ.SGDW / AdamW
增加权重衰减项(Weight Decay),替代 L2 正则化。 - Ⅱ.LAMB (Layer-wise Adaptive Moments)
专为大规模分布式训练设计,适用于大批量训练。每一层都有独立的学习率调整。
- Ⅰ.SGDW / AdamW
- 四、力扣_215. 数组中的第K个最大元素
给定整数数组 nums 和整数 k,请返回数组中第 k 个最大的元素。
这是一道经典的使用快排和堆的,这里可以背一下快排的模板
class Solution:def findKthLargest(self, nums, k):def quick_select(nums, k):# 随机选择基准数pivot = random.choice(nums)big, equal, small = [], [], []# 将大于、小于、等于 pivot 的元素划分至 big, small, equal 中for num in nums:if num > pivot:big.append(num)elif num < pivot:small.append(num)else:equal.append(num)if k <= len(big):# 第 k 大元素在 big 中,递归划分return quick_select(big, k)if len(nums) - len(small) < k:# 第 k 大元素在 small 中,递归划分return quick_select(small, k - len(nums) + len(small))# 第 k 大元素在 equal 中,直接返回 pivotreturn pivotreturn quick_select(nums, k)
相关文章:
搜广推实习面经四
字节跳动TAC 广告算法 一、回归任务的评价指标有哪些 1.均方误差(Mean Squared Error, MSE)/均方根误差(Root Mean Squared Error, RMSE) M S E 1 n ∑ i 1 n ( y i − y ^ i ) 2 MSE \frac{1}{n} \sum_{i1}^{n} (y_i - \ha…...

【Elasticsearch】inference ingest pipeline
Elasticsearch 的 Ingest Pipeline 功能允许你在数据索引之前对其进行预处理。通过使用 Ingest Pipeline,你可以执行各种数据转换和富化操作,包括使用机器学习模型进行推理(inference)。这在处理词嵌入、情感分析、图像识别等场景…...

AQS公平锁与非公平锁之源码解析
AQS加锁逻辑 ReentrantLock.lock public void lock() {sync.acquire(1);}AbstractQueuedSynchronizer#acquire public final void acquire(int arg) {if (!tryAcquire(arg) &&acquireQueued(addWaiter(Node.EXCLUSIVE), arg))selfInterrupt();}addWaiter就是将节点加入…...
若依框架在企业中的应用调研
若依框架作为一款基于 Spring Boot 的轻量级 Java 快速开发框架,在企业级应用开发中发挥着重要作用。以下是对其在企业中应用的调研情况: 应用现状 广泛应用于多种管理系统:在众多企业中,若依框架常被用于构建各类后台管理系统&a…...
【Day23 LeetCode】贪心算法题
一、贪心算法 贪心没有套路,只有碰运气(bushi),举反例看看是否可行,(运气好)刚好贪心策略的局部最优就是全局最优。 1、分发饼干 455 思路:按照孩子的胃口从小到大的顺序依次满足…...

2025年PHP面试宝典,技术总结。
面试是进入职场的第一道坎,因为我本身学校太一般的问题在面试中遇到了各种不爽,和那些高学历的相比自己真是信心大跌。我面试的方向是php开发工程师,主要做网站后台、APP接口等。下面是我这段时间总结的面试方面的常考常问的知识点࿰…...

Qt中的按钮组:QPushButton、QToolButton、QRadioButton和QCheckBox使用方法(详细图文教程)
💪 图像算法工程师,专业从事且热爱图像处理,图像处理专栏更新如下👇: 📝《图像去噪》 📝《超分辨率重建》 📝《语义分割》 📝《风格迁移》 📝《目标检测》 &a…...

influxdb+grafana+jmeter
influxdb influxd先启动 启动完成后执行 influxdb的端口号 grafana的启动 通过grafana-server.exe启动grafana 启动后打开 http://localhost:8087/...

Net Core微服务入门全纪录(三)——Consul-服务注册与发现(下)
系列文章目录 1、.Net Core微服务入门系列(一)——项目搭建 2、.Net Core微服务入门全纪录(二)——Consul-服务注册与发现(上) 3、.Net Core微服务入门全纪录(三)——Consul-服务注…...

leetcode 479. 最大回文数乘积
题目如下 看完题目后没有想到取巧的办法所以尝试使用枚举法。 使用枚举法之前先回答两个问题: 1. 如何构造回文串? 2. 如何判断是否存在两个n位整数相乘可以得到这个回文串? 显然n位数与n位数相乘必然是2n位数也就是说最大回文整数长度必然…...

独立搭建UI自动化测试框架
🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快 今天给大家分享一个seleniumtestngmavenant的UI自动化,可以用于功能测试,也可按复杂的业务流程编写测试用例,今天此篇文章不过多…...

62,【2】 BUUCTF WEB [强网杯 2019]Upload1
进入靶场 此处考点不是SQL,就正常注册并登录进去 先随便传一个 进行目录扫描,我先用爆破代替 先随便后面写个文件名 为了提供payload位置 www.tar.gz真的存在 返回浏览器修改url就自动下载了 看到tp5,应该是ThinkPHP5框架 参考此博客的思路方法c[强网杯…...

Spring Boot 整合 ShedLock 处理定时任务重复执行的问题
🌷 古之立大事者,不惟有超世之才,亦必有坚忍不拔之志 🎐 个人CSND主页——Micro麦可乐的博客 🐥《Docker实操教程》专栏以最新的Centos版本为基础进行Docker实操教程,入门到实战 🌺《RabbitMQ》…...

常见Arthas命令与实践
Arthas 官网:https://arthas.aliyun.com/doc/,官方文档对 Arthas 的每个命令都做出了介绍和解释,并且还有在线教程,方便学习和熟悉命令。 Arthas Idea 的 IDEA 插件。 这是一款能快速生成 Arthas命令的插件,可快速生成…...
Glide加载gif遇到的几个坑
Glide本身支持gif格式的动画加载,但是大多数情况下我们用Glide都是去加载一些静态图片,加载gif动态图的需求不是很多,因此这次使用Glide加载gif就遇到了一些令人匪夷所思的问题 问题一:加载gif图片会有明显的卡顿 通常情况下我们…...

STM32学习之通用定时器
1.1通用定时器介绍 通用定时器具有基本定时器的所有特征,基本定时器只能递增计数,而通用定时器可以递减计数,可以中心对齐计数;也可以触发ADC和DAC,同时在更新事件,触发事件,输入捕获ÿ…...

MiniMax-Text-01——模型详细解读与使用
MiniMax发布了最新的旗舰款模型,MiniMax-Text-01。这是一个456B参数的MOE模型,支持最大4M上下文。今天我们来解读一下这个模型,最后会讲一下模型的使用方式和价格。 先来看整体指标,以下图表分为三块指标,分别是文本能…...

Redis的Windows版本安装以及可视化工具
文章目录 redis安装redis安装包下载解压文件夹启动redis服务Redis路径配置环境变量打开redis客户端进行连接基础操作测试 redis可视化工具下载Redis Desktop Manager redis安装 redis安装包下载 windows版本readis下载:Releases tporadowski/redis 解压文件夹 我…...

tensorflow源码编译在C++环境使用
https://tensorflow.google.cn/install/source?hlzh-cn查看tensorflow和其他需要下载软件对应的版本,最好一模一样 1、下载TensorFlow源码 https://github.com/tensorflow/tensorflow 2、安装编译protobuf(3.9.2) protobuf版本要和TensorFlo…...
第四届机器学习、云计算与智能挖掘国际会议
一、会议信息 会议名称:第四届机器学习、云计算与智能挖掘国际会议(MLCCIM 2025) 会议地点:中国漠河 会议时间:2025年7月21-25日 支持单位:佛山市人工智能学会、佛山大学 二、大会主席 …...

#漏洞挖掘# 一文了解什么是Jenkins未授权访问!!!
免责声明 本教程仅为合法的教学目的而准备,严禁用于任何形式的违法犯罪活动及其他商业行为,在使用本教程前,您应确保该行为符合当地的法律法规,继续阅读即表示您需自行承担所有操作的后果,如有异议,请立即停…...

QT QListWidget控件 全面详解
本系列文章全面的介绍了QT中的57种控件的使用方法以及示例,包括 Button(PushButton、toolButton、radioButton、checkBox、commandLinkButton、buttonBox)、Layouts(verticalLayout、horizontalLayout、gridLayout、formLayout)、Spacers(verticalSpacer、horizontalSpacer)、…...

【Vim Masterclass 笔记25】S10L45:Vim 多窗口的常用操作方法及相关注意事项
文章目录 S10L45 Working with Multiple Windows1 水平分割窗口2 在水平分割的新窗口中显示其它文件内容3 垂直分割窗口4 窗口的关闭5 在同一窗口水平拆分出多个窗口6 关闭其余窗口7 让四个文件呈田字形排列8 光标在多窗口中的定位9 调节子窗口的尺寸大小10 变换子窗口的位置11…...

包文件分析器 Webpack Bundle Analyzer
webpack-bundle-analyzer 是一个非常有用的工具,用于可视化和分析 Webpack 打包生成的文件。这使得开发者能够更好地理解应用的依赖关系、包的大小,以及优化打包的机会。以下是关于 webpack-bundle-analyzer 的详细介绍,包括它的安装、使用以…...
代码随想录day14
二叉树的反转,采用迭代,只能用前序和后序遍历 /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr) {}* TreeNode(i…...
react19新API之use()用法总结
React use() Hook 使用指南 概述 use() 是 React 19 引入的新 Hook,它允许你在组件内部直接使用 Promise、Context 和其他可订阅的值。它是一个更通用的数据获取和订阅机制。 基本语法 const value use(resource);主要用途 1. Promise 处理 function UserDet…...

67,【7】buuctf web [HarekazeCTF2019]Avatar Uploader 2(未完成版)
进入靶场 和上一题一母同胞,先把上一题的答案拖进去看看 区别在于上一题这块直接显示了flag,这里并没有 看看源码 加载不出来,ctrlu <!-- 上传头像的提示信息,说明上传要求 --><p>Please upload a PNG image less th…...

ANSYS HFSS 中的相控天线阵列仿真方法
概述 相控天线阵列系统广泛使用,从国防雷达应用到商业 5G 应用。设计这些天线阵列涉及复杂的数学运算,需要全波仿真。Ansys HFSS 全场 3D 电磁仿真软件可以在合理的时间内以较低的计算成本仿真复杂的相控阵天线系统,同时考虑复杂激励、环境&…...

stm32 L051 adc配置及代码实例解析
一 cude的设置: 1. 接口的基本设置: 2. 参数的设置: 二 代码的逻辑: 1. 上面的直接生成代码,然后使用下面源码即可读到adc的数据: void adc_battery_start(void) {uint32_t ADC_value 0;HAL_ADC_Start(&…...

KUKA示教器仿真软件OfficeLite8.6.2,EthernetKRL3.1.3通信
一、准备软件。 1、vmware17.6.1 2、OfficeLite8.6.2 3、EthernetKRL3.1.3 4、KUKA Router 5、EthernetKRL_Server 通过网盘分享的文件:库卡相关软件 链接: https://pan.baidu.com/s/1NwvR3RVP0edLBeZnnnCYvw 提取码: smys 二、安装vmware17.6.1 1、找到下载…...