Kizame
2025-09-04
大模型技术之高频面试题(重点) 1.1Python基础 1.1.1.3**Python 是如何解释运行的? Python 是解释型语言,程序能直接从源代码运行。解释器会把源代码转换成中间语言,再转换为机器语言来执行。 1.1.2.1**list 和 tuple 有什么区别? 列表(list)是可变的,可执行添加、删除或修改元素等操作;元组(tuple)不可变,创建后内容不能更改。且元组能被哈希,可用作字典的键,但列表不行。 1.1.3**闭包相关 1.1.3.1什么是闭包?请简述其定义和形成条件。 闭包是一种特殊的函数嵌套结构,指在外部函数内部定义的内部函数,引用了外部函数的变量(非全局变量),且外部函数返回该内部函数。 形成闭包需满足三个条件:  存在函数嵌套(内部函数定义在外部函数中);  内部函数引用了外部函数的变量;  外部函数返回内部函数的引用。 示例: 1.1.3.2闭包为什么能保留外部函数的变量? 正常情况下,函数执行结束后,其内部变量会被销毁。但闭包中,内部函数引用了外部函数的变量,形成了 “变量捕获”,使得这些变量不会随外部函数的结束而销毁,而是被内部函数 “保留” 在内存中,直到内部函数被销毁。 这种机制依赖 Python 的作用域链:内部函数在查找变量时,会先在自身作用域查找,若未找到则向上级(外部函数)作用域查找,闭包通过这种链式查找保留了对外部变量的引用。 1.1.3.3闭包中如何修改外部函数的变量?nonlocal关键字的作用是什么? 在闭包中,内部函数默认只能读取外部函数的变量,若直接修改会被 Python 判定为 “定义局部变量”,导致报错。需使用nonlocal关键字声明变量,明确其来自外部函数的作用域,允许内部函数修改。 示例(错误与正确对比): 1.1.3.4闭包与普通嵌套函数的区别是什么? 嵌套函数:仅指在一个函数内部定义另一个函数,不要求内部函数引用外部变量,也不要求外部函数返回内部函数。例如: 闭包:是特殊的嵌套函数,必须满足 “内部函数引用外部变量 + 外部函数返回内部函数”,且内部函数可在外部函数执行完毕后继续访问外部变量。 1.1.3.5闭包有哪些实际应用场景?请举例说明。 闭包的核心价值是 “保留状态” 和 “封装数据”,常见应用场景包括: 1)装饰器(Decorator): 装饰器本质是闭包,用于在不修改原函数代码的前提下,添加额外功能(如日志、计时)。 2)数据封装与隐藏: 模拟类的私有变量,通过闭包隐藏内部状态,只暴露操作接口。 3)函数工厂: 动态生成具有不同参数的函数,避免重复代码。 1.1.3.6闭包可能导致什么问题?如何避免? 4)问题: 闭包会保留外部函数的变量,若变量是大型对象或未及时释放,可能导致内存泄漏(变量长期占用内存不释放)。 5)避免方式:  不再使用闭包时,手动将其引用设为None(触发垃圾回收);  避免在闭包中引用过大的对象;  若需频繁创建闭包,考虑用类替代(类的__del__方法可主动释放资源)。 1.1.5**内存管理与垃圾回收 1.1.5.1 Python 如何进行内存管理? Python 内存由私有堆空间管控,所有对象与数据结构置于此,程序员不能直接访问,内存管理器负责堆空间内存分配。其有内置垃圾收集器,借助对象引用计数等机制,回收未用内存释放给堆空间。 1.1.5.2 什么是垃圾回收? Python 为解决内存泄漏,采取对象引用计数,并基于此实现自动垃圾回收。当对象引用计数降为 0 ,内存会被回收。此外,其还处理循环引用等复杂状况。 1.1.6其他重要问题 1.1.6.1**解释 Python 中的 GIL(全局解释器锁)? GIL 是 Python 解释器的一种机制,其保证任意时刻仅一个线程能执行 Python 字节码。它让 Python 多线程处理 I/O 密集型任务效率尚可,但执行 CPU 密集型任务时,难以发挥多核 CPU 并行优势,或致使性能降低。 1.1.6.3**什么是 Python 中的生成器? 生成器是实现迭代器的简便方式,为含 yield 表达式的普通函数。其逐个生成值,可暂停和恢复执行,节省内存,适用于处理大序列数据场景。 1.2 数据结构与算法 1.2.2算法基础 1.2.2.2**时间复杂度和空间复杂度的定义是什么? 时间复杂度:描述算法执行的基本指令数随输入规模 n 的增长趋势,用大 O 表示(如 O (n)、O (logn)),通常关注最坏情况。 空间复杂度:描述算法内存空间随输入规模 n 的增长趋势,同样用大 O 表示,关注数据占用的空间。 1.2.5**力扣经典题解 1.2.5.1有效括号(LeetCode 20) 思路:用栈存储左括号,遇到右括号时弹出栈顶并检查匹配,最终栈为空则有效。 代码: 1.2.5.2爬楼梯(LeetCode 70) 思路:动态规划,第 n 阶方法数 = 第 n-1 阶 + 第 n-2 阶(每次爬 1 或 2 阶)。 代码: 1.2.5.3最大子数组和(LeetCode 53) 思路:动态规划,用f(i)表示以 i 结尾的最大子数组和,f(i) = max(nums[i], f(i-1)+nums[i])。 代码: 1.3 数据分析 1.3.1 Numpy相关 1.3.1.3**解释一下 Broadcasting(广播)的概念? 广播是 Numpy 允许不同形状数组间进行计算的机制。当两个数组做算术运算时,若形状不同,较小的数组会自动扩展至与较大数组尺寸相符,以完成逐元素操作。像标量与数组相加,标量会被扩展成和数组同形状后再计算。 1.4 机器学习 1.4.2数据处理与特征工程 1.4.2.4**类别型变量可以采用哪些编码方式?实际项目中通常采用哪种方式?  独热编码(One-Hot Encoding):将类别型变量转换为二进制列,常用于无序类别特征。  标签编码(Label Encoding):将类别型变量映射为整数,常用于有序类别特征。  目标编码(Target Encoding):将类别变量的每个类别替换为其对应目标变量的平均值或其他统计量。  频率编码(Frequency Encoding):将类别变量的每个类别替换为该类别在数据集中的出现频率。 在实际项目中,最常见的编码方式是独热编码(One-Hot Encoding),可将类别特征转换为二元向量,消除虚假的顺序关系。 1.4.2.5**如何处理高维特征? 当特征维度增加时,会导致模型复杂度剧增、计算的复杂度呈指数级增长、过拟合风险升高,这种现象被称为“维度灾难”。 处理高维特征,可以通过特征选择剔除无关特征;采用PCA、LDA或t-SNE等方法对特征进行降维处理;采用正则化技术(L1、L2、弹性网络)约束模型复杂度;还可以选择更适合高维数据的模型,例如 SVM,或者支持特征重要性评估的抗噪声模型(比如随机森林、XGBoost)。 1.4.2.8**如何解决数据不平衡问题?  采样:对小样本加噪声采样,对大样本进行下采样  调整数据权重:对某类数据进行特殊的加权,比如Adaboost  采用对不平衡数据集不敏感的算法  改变评价标准:用AUC/ROC来进行评价  采用集成学习:如Bagging、Boosting等方法  考虑数据的先验分布 1.4.3模型评估与模型选择 1.4.3.3**怎样避免过拟合?  减少模型复杂度:降低模型的参数数量、使用简化的模型或降维来减小模型复杂度。  增加训练数据:收集更多数据,或通过数据增强来增加训练数据的多样性。  使用正则化:引入L1、L2正则化,避免过度拟合训练数据。  交叉验证:使用交叉验证技术评估模型在不同数据集上的表现,以减少过拟合的风险。  早停:训练时,当模型的验证损失不再下降时,提前停止训练,避免过度拟合训练集。 1.4.4模型求解和优化 1.4.4.5**梯度下降法有哪些主要问题?如何解决?  特征量纲不一致,导致收敛速度慢 解决方案:通常需要提前对特征进行缩放(如标准化或归一化),以加快收敛速度。  局部极小值、鞍点问题 可能陷入局部极小值(非全局最优解),或遇到鞍点(梯度为零但非极值点)。 解决方案:使用优化方法,如动量法(Momentum)、自适应优化器(如Adam)或二阶方法(如牛顿法)。 1.4.5模型评价指标 1.4.5.4**如何利用ROC曲线判断模型的好坏? 从图像上看,ROC曲线越“陡”,即TPR 越高,同时 FPR 越低时,模型的性能就越好。 一般会结合AUC来看:AUC 表示ROC曲线下的面积,用于量化模型性能。AUC值越大,模型区分正负类的能力越强,模型性能越好。AUC值=0.5表示模型接近随机猜测,AUC值=1代表完美模型。 AUC如果小于0.5,说明预测诊断比随机性猜测还差,实际情况中不应该出现这种情况;可能是设置的状态变量标准有误,需要查看设置;对于这种情况,只需要将预测结果翻转就可以得到AUC>0.5的更好的模型。 1.4.7线性回归 1.4.7.3**线性回归为什么选择均方误差作为损失函数? 均方误差是回归任务中最常用的损失函数,均方误差对应了欧氏距离。  均方误差是凸函数,存在全局的唯一最小值,平方项又使损失函数处处可导,便于求解最优参数。  最小二乘法(最小化MSE)的解析解可通过矩阵运算直接求出(如β=(XTX)-1XTy)。  若误差服从正态分布,则均方误差对应极大似然估计,是最优的损失函数。 1.4.8逻辑回归 1.4.8.4**为什么逻辑回归用交叉熵损失而不是平方损失(MSE)? 逻辑回归的损失函数来源于最大似然估计(MLE),用于衡量模型输出的概率分布与真实标签之间的差距。交叉熵损失和sigmoid函数结合使用,有非常好的求导特性: ∇Loss=1nXT11+e-Xβ-y 这个梯度与sigmoid函数值(预测概率值)有关,且真实值与预测值差别越大,梯度越大,更新的速度也就越快。 与之对应,如果用MSE,计算梯度时还需要对sigmoid函数求导;不仅计算复杂,而且由于sigmoid函数导数的范围是(0, 0.25],会导致收敛速度变慢。 1.4.10决策树 1.4.10.5**什么是信息增益率?它比信息增益的优势在哪? 特征A对训练数据集D的信息增益率gRD,A定义为信息增益gD,A与训练数据集D关于特征A的值的熵HAD之比: gRD,A=g(D,A)HAD 在使用信息增益的时候,如果某个特征有很多取值,使用这个取值多的特征会的大的信息增益,这个问题是出现很多分支,将数据划分更细,模型复杂度高,出现过拟合的机率更大。使用信息增益比就是为了解决偏向于选择取值较多的特征的问题。使用信息增益比对取值多的特征加上的惩罚,对这个问题进行了校正。 1.4.11支持向量机 1.4.11.4**为什么 SVM 要引入核函数? 原始空间线性不可分,可以使用一个非线性映射将原始数据变换到另一个高维特征空间,在这个空间中,样本变得线性可分,将原本的非线性问题转换为线性问题。 使用核技巧学习非线性支持向量机,等价于隐式地在高维特征空间中学习线性支持向量机。 1.4.12集成学习 1.4.12.8**随机森林为什么要随机选择特征? 随机特征保证基分类器的多样性(差异性),最终集成的泛化性能可通过个体学习器之间的差异度而进一步提升,从而提高泛化能力和抗噪能力。 1.4.13聚类方法 1.4.13.2**简述聚类的原理和常见算法。 聚类(Clustering)旨在将数据集中的样本分成若干个簇,使得同一个簇内的对象彼此相似,不同簇间的对象差异较大。聚类是一种无监督学习算法,不需要预先标记数据的标签,完全依赖数据本身内在结构和特征来进行分组,最终簇所对应的概念语义需由使用者来把握和命名。 常见的聚类算法有:  均值聚类:如K-means  层次聚类:聚合聚类和分裂聚类  密度聚类:如DBSCAN 1.5深度学习 1.5.2激活函数 1.5.2.1**激活函数的作用是什么?为什么必须是非线性的? 作用:为神经网络引入非线性,使模型能拟合复杂的非线性关系。 必要性:若激活函数为线性,多层网络会退化为单层线性模型,无法学习复杂模式。 1.5.2.6**为什么神经网络常用 ReLU 作为激活函数?  计算效率高于 Sigmoid、Tanh;  有效避免梯度消失(正区间导数为 1);  引入稀疏性,缓解过拟合,提升了模型的泛化性能。  有助于随机梯度下降方法收敛。 1.5.3神经网络的训练 1.5.3.2**反向传播算法的原理是什么? 基于微积分的链式法则,从输出层到输入层反向计算损失函数对各参数的梯度:  首先前向传播:计算输入经各层后的输出及损失。  然后反向传播:从输出层开始,逐层反向传递梯度,并更新参数(权重和偏置)。 该算法存储了计算某些参数梯度时所需的任何中间变量。 核心目的:高效计算梯度,为参数优化提供依据。 1.5.3.7**模型的参数量指的是什么,怎么计算? 参数量指的是网络中可学习变量的数量,包括全连接层/卷积核的权重weights、偏置bias,批量标准化(BN)的缩放系数γ、偏移系数β,这些都是可学习的参数,即在模型训练开始前被赋予初值,在训练过程根据链式法则不断迭代更新。 整个模型的参数量主要是由全连接层/卷积核的权重weights的数量决定,参数量越大,则该结构对平台运行的内存/显存要求就越高。 权重数量计算: Cin×Cout(FC全连接网络) Kh×Kw×Cin×Cout(Conv卷积网络) 1.5.4神经网络的超参数 1.5.4.4**batch size 的选择对模型训练有何影响?  过小:梯度估计噪声大,训练不稳定,可能难以收敛。  过大:梯度估计稳定,但内存消耗高,可能陷入局部最优。 常用值:32、64、128,需平衡内存和训练效果。 1.5.4.5**神经网络调参,具体有哪些方向?  损失函数的选择是否合适  学习率的选取是否合适  batch size选择是否合适  训练样本是否正常,是否需要增强  是否有设置batch normalization(BN层)  选取合适的激活函数类型  选取合适的优化算法(例如SGD,Adam等)  是否存在过拟合 1.5.5神经网络的优化(学习的技巧) 1.5.5.2**什么是梯度消失和梯度爆炸?如何解决?  梯度消失:深层网络中,梯度反向传播时经多层传递后趋近于 0,导致浅层参数难以更新,学习无法进行。  梯度爆炸:梯度反向传播时经多层传递后急剧增大,导致网络不稳定。 解决方法:使用 ReLU 激活函数、梯度裁剪(针对梯度爆炸)、合理初始化权重、改变网络结构(如引入BN层、残差连接、LSTM等)。 1.5.5.4**梯度下降法的常见变种及区别是什么?  SGD:随机使用单个样本计算梯度,速度快但震荡剧烈。  Momentum:引入历史梯度加权和,缓解震荡,加速收敛。  AdaGrad:引入历史梯度平方和作为衰减系数,为每个参数自适应调整学习率,适合稀疏数据。  RMSProp:改进 AdaGrad,对历史梯度做指数移动平均,避免学习率过早衰减。  Adam:融合 Momentum 和 RMSProp,动态调整学习率,适用于多数场景。 1.5.5.9**Xavier 初始化和 He 初始化的适用场景是什么? Xavier 初始化:适用于 Sigmoid、Tanh 等激活函数,使输入和输出方差相近。 He 初始化:适用于 ReLU 及其变体,考虑 ReLU 对负输入的抑制,初始化方差更大。 1.5.5.13**Dropout 的原理及作用是什么?训练和测试时有何区别? 原理:训练时随机 “关闭” 部分神经元(如概率 0.5),迫使模型不依赖特定神经元。 作用:增强模型鲁棒性,减少过拟合;近似集成学习的效果。 训练时随机丢弃神经元,输出按存活概率缩放;测试时不丢弃,所有神经元参与计算。 1.5.5.14**数据增强的目的是什么?常用方法有哪些? 数据增强是一种通过对现有数据应用一系列操作来人为地增加数据集大小的技术。 目的:增加数据多样性,减少过拟合,提升模型泛化能力。 方法:图像(翻转、旋转、缩放、裁剪、平移、加噪声)、文本(同义词替换、句子重排)。 1.5.6卷积神经网络(CNN) 1.5.6.2**卷积层和全连接层的区别是什么?  卷积层可以保持空间结构,一般用来处理高维数据(通常是图像、视频数据);全连接层会破坏空间结构,一般处理的是向量化特征;  卷积层是局部连接,所以提取的是局部信息;全连接层是全局连接,所以提取的是全局信息; 当卷积层的局部连接是全局连接时,全连接层可以看作是卷积层的特例。 1.5.6.6**卷积核的大小是否一定越大越好? 不一定,因为卷积核增大会导致参数增多、计算量大幅增加,不利于训练更深层的模型,相应的计算性能也会降低。 经典的深度卷积神经网络(VGG、GoogLeNet等),都是通过堆叠2个3×3卷积核来构建CNN,可以获得与5×5卷积核相同的感受视野,同时参数量会更少(3×3×2 <5×5×1)。 1.5.7循环神经网络(RNN) 1.5.7.3**RNN 与前馈神经网络的主要区别是什么?适用于什么场景? 区别:RNN 通过隐藏状态保存历史信息,能处理时序数据;前馈网络无记忆,仅能处理静态数据。 场景:自然语言处理(文本生成、翻译)、时间序列预测(股价、天气)。 1.6 NLP 1.1.1 基础概念与任务 1.6.1.6**抽取式摘要和生成式摘要存在哪些问题 抽取式摘要在语法、信息保真度上有一定的保证,在抽取速度、复杂度上面也有一定的优势。但是也面临了一定的问题,例如:内容选择错误、连贯性差、灵活性差等问题。 生成式摘要优点是相比于抽取式而言用词更加灵活,因为所产生的词可能从未在原文中出现过。但存在以下问题: (1)事实一致性问题:可能产生于原文不符的事实错误 (2)可控性挑战:难以精确控制摘要的风格,长度和重点 (3)长文本摘要生成难度大。对于机器翻译来说,NLG的输入和输出的语素长度大致都在一个量级上,因此NLG在其之上的效果较好。但是对摘要来说,源文本的长度与目标文本的长度通常相差很大,此时就需要encoder很好的将文档的信息总结归纳并传递给decoder,decoder需要完全理解并生成句子。 抽取式摘要更适合于新闻报道、法律文件等需要高度忠实原文的场合。而生成式摘要适合于博客文章、社交媒体帖子等需要流畅表达的场合 1.1.2 文本表示方法 1.6.2.2**Word2Vec 的核心思想?两种模型是什么? 1)核心思想: 基于“分布假设”(一个词的含义由其周围词决定),通过神经网络学习稠密词向量,使语义相近的词在向量空间中距离更近。 2)两种模型: CBOW:输入上下文词,预测中间目标词。 Skip-gram:输入中心词,预测其上下文词。 1.1.3 传统序列模型 1.1.3.1 **RNN 的原理?有什么缺点? 1)原理: 通过循环结构处理序列数据,每个时间步的输出依赖当前输入和上一时间步的隐藏状态,能建模上下文信息。 2)缺点: 易出现梯度消失/爆炸,难以处理长序列的长期依赖关系; 必须逐步处理序列,效率低。 1.1.3.2 **LSTM 如何解决 RNN 的长期依赖问题? LSTM 引入记忆单元(Memory Cell)和三个门控机制(遗忘门、输入门、输出门):  遗忘门:控制忘记多少历史信息。  输入门:控制存入多少新信息到记忆单元。  输出门:控制从记忆单元读取多少信息作为当前隐藏状态。 记忆单元为梯度提供稳定传播路径,缓解梯度消失,从而捕捉长期依赖。 1.1.3.3 **GRU 与 LSTM 的区别是什么? GRU 简化了 LSTM 的结构,取消独立记忆单元,仅保留两个门(重置门,更新门):  重置门:控制上一时刻的隐藏状态,对当前候选隐藏状态的影响程度。  更新门:控制当前隐藏状态中,上一时刻隐藏状态和候选隐藏状态间的比重。 优势:参数更少,训练效率更高;在多数任务中性能接近 LSTM。 1.1.4 Seq2Seq 与 Attention 机制 1.1.4.1 **Seq2Seq 模型结构?有什么缺陷? 1)结构: 由编码器(Encoder)和解码器(Decoder)组成。 编码器一般使用双向RNN等模型,将输入序列压缩为固定长度的上下文向量。 解码器可基于单向RNN等模型,并结合编码器所输出的上下文向量,生成目标序列。 2)核心问题: 固定长度的上下文向量难以承载长序列信息,容易导致信息丢失; 训练过程无法并行,效率低。 1.1.4.2 **Attention 机制的工作原理是什么? Atttention本质是在解码器在生成序列时,不再仅依靠编码器输出的固定长度的上下文向量,而是动态计算与编码器各时间步隐藏状态的相关性(注意力权重),并加权求和得到上下文向量,实现 “有选择地关注” 输入序列的关键信息。步骤包括:  计算相关性(评分函数:点积、通用点积、拼接)。  归一化得到注意力权重(Softmax)。  加权求和得到上下文向量。 1.1.5 Transformer 模型 1.1.5.1 **Transformer 的核心创新是什么?与 RNN 相比有何优势? 1)核心创新: 完全基于自注意力机制建模序列依赖,摒弃 RNN 的循环结构; 使用位置编码注入位置信息; 多头注意力从不同子空间捕捉多种语义关系。 2)优势: 支持并行计算,训练效率更高; 通过多头注意力捕捉多种语义关系,建模能力更强; 直接建模任意位置的依赖,增强长依赖建模能力; 易于堆叠深层网络。 1.1.5.2 **Transformer 的编码器和解码器结构分别是什么? 1)编码器: 由 N 个编码器层堆叠而成,每个层包含:  多头自注意力子层(捕捉输入序列内部依赖)。  前馈网络子层(对每个位置独立映射,增加非线性能力)。  残差连接和层归一化(稳定训练)。 2)解码器: 由 N 个解码器层堆叠而成,每个层包含:  掩码多头自注意力子层(防止关注未来信息)。  编码器-解码器注意力子层(解码器在生成每个目标词时,动态访问编码器对原始输入序列的全局表示,选择最相关的信息)。  前馈网络子层。  残差连接和层归一化。 1.1.5.3 **Transformer 中位置编码的作用和实现方式是什么? 1)作用: Transformer 无循环结构。自注意力机制中序列中每个token并行计算,获取到与序列中其他token之间的相关性,无法捕捉到序列相对位置关系,因此需通过位置编码注入词的位置信息,使模型感知序列顺序。 2)实现方式: 使用正弦和余弦函数生成位置向量,偶数维用正弦,奇数维用余弦。 1.1.5.4 **Transformer中自注意层计算公式(新增问题) 计算公式如下: Attention(Q,K,V)=softmax(QKTdk)V Query: 表示当前词的用于发起注意力匹配的向量 Key: 表示序列中每个位置的内容标识,用于与 Query 进行匹配 Value: 表示该位置携带的信息,用于加权汇总得到新的表示 d_k: key向量的维度。高维空间中,点积的数值可能过大,会影响 softmax 的稳定性,因此在实际计算中对结果进行了缩放 1.1.6 预训练模型 1.1.6.1 **GPT的结构和预训练目标是什么? 1)结构: 基于 Transformer 解码器做了精简调整,移除了编码器和解码器注意力子层(因为模型中不存在编码器)仅保留自注意力和前馈网络子层,堆叠多层。 2)预训练目标: 自回归语言建模(给定前文预测下一个词),学习语言统计规律、上下文依赖和语义信息。 1.1.6.2 **BERT的结构和预训练目标是什么? 1)结构: 基于 Transformer 编码器,实现双向语言建模,能同时融合左右上下文信息。 2)预训练目标: 掩码语言模型(MLM):随机遮盖 15% 的词,预测被遮盖的词。 下一句预测(NSP):判断两个句子是否为连续的上下文,捕捉句间关系,以学习句间的语义和逻辑关系。 1.1.6.3 **T5的结构和预训练目标是什么? 1)结构: 基于完整 Encoder-Decoder Transformer,编码器将输入文本序列编码成上下文表示,解码器根据编码器输出生成目标文本序列。 输入任务描述 + 原始文本,输出目标文本(如翻译、摘要、问答)。统一任务为文本到文本(text-to-text)形式,方便多任务训练。 2)预训练目标: 填空式文本生成:随机掩盖输入文本的连续片段,用特殊标记替换,模型学习生成被遮挡的文本片段。 1.1.6.4 **预训练模型的 “预训练 + 微调” 范式是什么? 1)预训练: 在海量通用语料上训练通用语言模型,学习通用表示能力(词汇、语法、语义、上下文关系)。 2)微调: 在下游特定任务上(如分类、问答),用少量标注数据进一步训练模型。调整模型参数,适配特定任务。 1.6.8其他 1.6.8.1**分类任务怎么处理类别不平衡? 处理分类任务类别不平衡的问题需要多管齐下,可通过重采样技术(SMOTE:合成新的少数类样本来解决类别不平衡;Tomek Links:删除靠近边界的样本,净化决策边界)、代价敏感学习(在损失函数中为少数类样本分配更高权重)、阈值调整(基于PR曲线或者业务需求选择最佳阈值)、或者使用专门设计的集成方法(集成学习可重构数据,创建平衡子集;也可调整权重,重视少数类)等手段,同时必须要使用F1-Score, AUC-PR等适合不平衡数据的评估指标进行模型评估。 @程序员鱼皮
0个评论
点击登录,快来和大家讨论吧~
表情
图片
暂无评论
下载 APP