type
status
date
slug
summary
tags
category
icon
password
数据预处理方法合集
数据预处理是数据科学和机器学习项目成功的基础步骤。通过适当的数据预处理,可以确保数据的质量、提升模型的性能,并为后续的建模和分析打下坚实的基础。忽视数据预处理可能导致模型训练失败或性能不佳,甚至得出错误的结论。因此,数据预处理在数据驱动的项目中是不可或缺的步骤。
数据预处理的必要性
1. 显著提高模型的准确性
通过清洗数据,去除噪声、异常值和处理缺失数据,模型可以更准确地捕捉数据中的真实模式,避免被异常或不完整的数据误导。此外,通过特征缩放(如标准化和归一化),可以使特征之间在模型中具有相同的重要性,特别是在使用基于距离的算法时,特征缩放尤为关键。
2. 提高模型的训练速度和效率
通过特征选择和特征提取,减少数据集的维度,可以大幅降低模型的复杂性和计算时间。这不仅节省了计算资源,还能使模型在面对大规模数据集时表现更好。
3. 改善模型的泛化能力
通过消除数据中的偏差和偏态,模型可以更好地适应新数据,从而提高预测的稳定性。特征工程中的特征生成和选择可以挖掘出数据中隐含的重要信息,使模型在不同的场景中具有更强的泛化能力。
4.确保数据的完整性和一致性
处理缺失值、重复数据和不一致的数据格式,可以防止模型因数据质量问题而产生偏差或错误。对于需要满足特定假设的模型(如正态分布假设),数据预处理可以调整数据使其符合这些假设,从而提高模型的可靠性。
5.增强模型的可解释性和鲁棒性
通过特征选择去除无关或冗余特征,模型的结果更加简洁明了,决策过程更易于理解。同时,处理异常值和噪声数据,可以使模型在面对极端情况时更加稳定,不容易受到意外的干扰。
数据清洗
缺失值处理
1) 删除含有缺失值的行或列
删除含有缺失值的数据行或列,适用于当缺失值比例较低或缺失值随机分布时。这样可以避免缺失值对分析或建模的影响。
2) 用均值/中位数/众数填充缺失值
用样本的均值、中位数或众数填充缺失值,适用于连续变量或分类变量,能够减少数据的偏差。 当缺失值比例适中,且数据接近正态分布时,使用均值或中位数填充可以保持数据分布的特性。
3) 插值法(线性插值、样条插值等)
使用相邻数据点的趋势对缺失值进行插值,适用于时间序列数据或连续数据,能够较好地保持数据的趋势和变化。
4) 使用KNN、MICE等算法填补缺失值
使用机器学习算法或统计方法根据其他特征填补缺失值,能够充分利用数据之间的相关性。适用于复杂数据集、特征间存在较强相关性的场景。
- KNN:使用K个最近邻的数据的加权平均值或众数填充。
- MICE(多重插补):基于多重插补方法,利用其他特征估计缺失值。
异常值处理
1) 使用3σ法则识别和处理异常值
正态分布下的异常值检测:数据在均值𝜇的基础上,超过3σ的范围可视为异常值。异常值范围=[μ−3σ,μ+3σ]
2) 箱线图法(四分位距法)处理异常值
基于四分位距识别和处理异常值,适用于数据分布未知或数据具有偏态的情况。
在箱线图中,数据分布通过箱体(box)表示,中间的线代表数据的中位数。箱体的上下边界表示第一四分位数(Q1)和第三四分位数(Q3),即数据的中间50%。图中用虚线标出的上下界外的点被视为异常值。
重复数据处理
1) 删除重复的行或记录
删除数据集中完全相同的重复行,以确保每条记录都是唯一的,避免数据重复对分析结果的影响。数据采集或合并过程中产生的重复数据需要清除。
2) 聚合重复项
对于重复数据,根据需要对其进行聚合(如求平均值、总和等),适用于需要保留重复信息但要整合分析的场景。
数据变换
标准化(Normalization)
1) Min-Max缩放(归一化到[0,1]范围)
Min-Max缩放将数据缩放到指定的范围内(通常是[0, 1]),使得数据的最小值变为0,最大值变为1。公式如下:
适用场景: 当不同特征的量纲不同且不具有正态分布时,适合使用Min-Max缩放。例如,在图像处理和神经网络中常使用这种方法。
2) MaxAbs缩放(将数据按绝对值最大值缩放到[-1, 1]范围)
MaxAbs缩放将数据缩放到[-1, 1]范围内,适用于数据中可能包含负值的情况。公式如下:
适用场景: 特别适用于稀疏数据(如文本特征矩阵),在保持稀疏性的同时,确保数据在[-1, 1]范围内。
归一化(Standardization)
1) Z-score标准化(均值为0,标准差为1)
Z-score标准化将数据转换为均值为0、标准差为1的标准正态分布。公式如下:
适用场景: 适用于数据接近正态分布的场景,尤其是在算法中对数据分布敏感的模型,如线性回归和支持向量机。
2) 均值移除和方差缩放
这种方法是Z-score标准化的一部分,通过均值移除和方差缩放使得数据的均值为0,方差为1。与Z-score标准化相同,适用于对数据分布敏感的算法。
对数变换(Logarithmic Transformation)
1) 自然对数变换以减少偏态数据的影响
自然对数变换用于减少数据的偏态,使数据更接近正态分布。
适用场景: 适用于数据具有强偏态或存在异方差的情况,如收入数据。公式如下:
2) Log(x+1)变换以处理零值或负值
Box-Cox变换
Box-Cox变换是一种幂变换方法,用于减少数据的偏态或提高数据的正态性。它适用于正值数据。公式如下:
适用于正态性假设的统计模型,如线性回归。需要确保数据为正值。
Yeo-Johnson变换
Yeo-Johnson变换是Box-Cox变换的推广,适用于包含零值和负值的数据。公式与Box-Cox类似,但不要求数据为正值。
适用场景: 适用于数据可能包含负值的场景,同样适用于正态性假设的统计模型。
- 对于X>0时
- 对于X<0时
分位数变换(Quantile Transformation)
分位数变换通过将数据的分位数映射到目标分布上(通常是均匀分布或正态分布),使得原始数据被调整为所需的分布形式。它适用于对数据进行非线性变换,以减少偏态或改变分布特性。
数据编码
标签编码(Label Encoding)
标签编码是一种简单的编码方法,它将类别变量的每个类别映射为一个唯一的整数。例如,'Red', 'Green', 'Blue' 可以分别映射为 0, 1, 2。
适用场景: 适用于类别之间有序的情况,如“低、中、高”这种有明确顺序的类别。标签编码保留了类别之间的顺序关系。
独热编码(One-Hot Encoding)
独热编码是一种将类别变量转换为二进制向量的方法。每个类别都被转换为一个二进制向量,其中只有一个位置为1,其余为0。例如,'Red', 'Green', 'Blue' 可以分别编码为 [1, 0, 0], [0, 1, 0], [0, 0, 1]。
适用场景: 适用于无序类别,避免引入顺序关系。独热编码特别适合处理没有固有顺序的分类变量。注意: 独热编码可能导致维度爆炸,特别是当类别数量很多时。
二值化(Binarization)
二值化是一种将数值型特征转换为二进制值(0和1)的方法。它根据设定的阈值将大于阈值的值置为1,小于等于阈值的值置为0。
适用场景: 适用于需要将数值型特征转换为二进制特征的场景,特别是在逻辑回归等模型中,可以简化数据结构。
频数编码(Frequency Encoding)
频数编码是根据类别出现的频率进行编码,将类别变量转换为其在数据集中出现的频率或比例。频数编码保留了类别的原始频率信息,并将其映射为一个数值。
适用场景: 适用于类别数量较多且频率分布较为重要的场景。通过频数编码,可以捕捉类别的分布特性。
目标编码(Target Encoding)
目标编码是根据目标变量的均值或其他统计量对类别变量进行编码。它利用目标变量的信息对类别进行编码,这种方法在Kaggle比赛中非常流行。
适用场景: 适用于回归问题和分类问题中的类别变量编码,特别是在类别数量较多且类别之间的差异与目标变量相关性较强时。
注意事项: 需要注意防止数据泄漏(数据过拟合),通常会使用交叉验证或正则化来缓解这种问题。
哈希编码(Hash Encoding)
哈希编码是一种将类别变量通过哈希函数转换为固定长度整数向量的方法,通常用于高基数(类别数量多)的类别变量。
适用场景: 适用于处理高基数类别变量,特别是在需要节省内存和计算资源时,哈希编码是一个非常有效的方法。
注意事项: 哈希编码可能会引入哈希冲突,即不同的类别映射到相同的哈希值,但在大多数情况下,这种冲突的影响可以忽略不计。
分箱编码(Bin Encoding)
分箱编码是将数值型变量根据其分布划分为多个区间(箱),并将每个区间作为一个类别进行编码。这种编码方法可以将连续的数值型变量转换为类别型变量。
适用场景: 适用于需要将连续数值型变量转换为类别变量的场景,特别是在某些分类问题中,分箱编码能够提高模型的表现。
特征工程
特征选择(Feature Selection)
特征选择是从数据集中选择对目标变量最有影响的特征,同时剔除不相关或冗余的特征。通过特征选择,可以减少模型的复杂度,提高模型的性能和可解释性。
- 过滤法(Filter Methods):依据统计特性(如方差、相关系数、卡方检验、互信息)选择特征。
- 包裹法(Wrapper Methods): 使用模型性能指标(如精度、AUC)评估特征组合。
- 嵌入法(Embedded Methods): 在模型训练过程中内置特征选择(如Lasso回归、决策树)。
1)过滤法(Filter Method)
- 方差选择法(Variance Threshold)
低方差特征可能对模型贡献较小,因此可以删除方差低于某个阈值的特征。
适用场景:在数据中存在常数特征或几乎不变的特征时,可以通过方差选择法来去除它们。
- 卡方检验(Chi-Square Test)
卡方检验用于检查类别变量之间的独立性。通过计算特征与目标变量之间的卡方统计量来判断其相关性。
适用场景:用于分类问题中的特征选择,特别是类别变量的处理。
- 皮尔逊相关系数(Pearson Correlation Coefficient)
计算每个特征与目标变量之间的线性相关性,选择相关性较高的特征。
适用场景:用于连续型特征和目标变量之间的线性关系分析。
- 互信息(Mutual Information)
互信息衡量两个变量之间的依赖性,捕捉线性和非线性关系。它是信息论中的一个概念,表示通过一个变量可以获得多少关于另一个变量的信息。
适用场景:用于处理分类问题中的非线性关系特征选择。
2)包裹法(Wrapper Method)
包裹法使用一个预测模型来评估特征子集的性能,通过训练模型来找到最优的特征组合。包裹法比过滤法更能捕捉特征之间的相互作用,但计算成本较高,特别是当特征数量很多时。
- 递归特征消除(Recursive Feature Elimination, RFE)
RFE通过递归地构建模型,逐步消除最不重要的特征,最终得到最优特征子集。
适用场景:适用于需要选择少量最重要特征的场景,尤其是在特征数量较多时。
- 前向选择(Forward Selection)
从空特征集开始,每次加入一个最能提高模型性能的特征,直到达到某个停止条件。
适用场景:适用于逐步构建特征集,尤其在计算资源有限的情况下。
- 后向选择(Backward Elimination)
从完整特征集开始,每次去除一个对模型影响最小的特征,直到达到某个停止条件。
适用场景:适用于逐步减少特征,尤其在已经有一个比较好的特征集的情况下。
3)嵌入法(Embedded Method)
嵌入法在模型训练过程中自动进行特征选择,特征选择过程与模型的训练过程是同步进行的。嵌入法结合了过滤法和包裹法的优点,既考虑了特征与目标变量之间的关系,也考虑了特征之间的相互作用。
- Lasso回归(L1正则化)
Lasso回归通过在损失函数中加入L1正则化项,使得某些特征的系数缩小为零,从而起到特征选择的作用。
适用场景:适用于线性模型,尤其是当特征数量多于样本数量时。
- 决策树模型(Decision Tree)
决策树模型通过选择信息增益最大的特征来进行分裂,天然地进行特征选择。
适用场景:适用于处理分类和回归问题,尤其是当特征之间存在非线性关系时。
- 基于正则化的随机森林(Random Forest with Regularization)
随机森林通过构建多个决策树,计算每个特征的重要性得分,选择最重要的特征。
适用场景:适用于处理高维数据和非线性问题,特别是在特征之间存在复杂交互时。
总结
- 过滤法: 简单且计算效率高,适合初步筛选特征,但无法考虑特征之间的交互作用。
- 包裹法: 更能捕捉特征之间的交互作用,但计算成本较高,适用于特征数量较少的情况。
- 嵌入法: 在模型训练过程中自动选择特征,结合了模型的性能和特征的重要性,适用于大多数机器学习问题。
特征提取
特征提取是将高维数据转换为低维特征空间的过程,目的是提取出对模型预测有用的特征,同时去除噪声和冗余信息。
1)主成分分析(PCA)
主成分分析(PCA)是一种线性降维技术,通过将数据投影到方差最大的方向上,从而减少数据的维度。PCA的目标是找到数据中一组新的正交坐标轴(称为主成分),这些轴上的投影能最大程度地保留数据的方差信息。
Step1 计算数据的协方差矩阵。
Step2 求解协方差矩阵的特征值和特征向量。
Step3 根据特征值的大小选择对应的特征向量作为主成分。
Step4 将原始数据投影到选择的主成分上。
适用场景: PCA适用于需要降维和去除噪声的场景,尤其是在数据集中包含大量相关特征的情况下。常用于图像处理、数据可视化和压缩等领域。
2)独立成分分析(ICA)
独立成分分析(ICA)是一种统计和计算方法,旨在将观察到的混合信号分解为具有统计独立性的源信号。ICA常用于盲源分离(如音频信号的分离)和数据降维中。
Step1 寻找一个解混合矩阵,使得分离后的信号相互独立。
Step2 通过最大化信号的非高斯性来实现信号的独立性。
适用场景: ICA适用于信号处理领域,尤其是在音频、图像处理和神经科学中,用于从混合信号中提取独立成分。
3)线性判别分析(LDA)
线性判别分析(LDA)是一种监督式降维方法,旨在通过最大化类间方差与类内方差的比率,找到能最好区分不同类别的数据投影方向。与PCA不同,LDA考虑了类别标签的信息。
Step1 计算类内散布矩阵($S_{W}$)和类间散布矩阵($S_{B}$)。
Step2 求解矩阵$S_{W}^{-1}S_{B}$的特征值和特征向量。
Step3 将数据投影到选定的特征向量方向上。
适用场景: LDA适用于分类问题中的降维,特别是在特征数量多于样本数量的情况下,如人脸识别、文本分类等。
4)奇异值分解(SVD)
奇异值分解(SVD)是一种矩阵分解方法,用于将一个矩阵分解为三个矩阵的乘积:左奇异矩阵、对角奇异值矩阵和右奇异矩阵。SVD广泛应用于降维、数据压缩、图像处理和推荐系统中。
SVD分解公式为:
$$X=U\cdot\Sigma\cdot V^T$$
其中,$X$是原始数据矩阵,𝑈是左奇异矩阵,Σ是对角奇异值矩阵,$ V^T$是右奇异矩阵的转置。
适用场景: SVD适用于数据降维、矩阵补全、图像压缩等场景,特别是在处理大规模稀疏矩阵时非常有效。
5)核PCA(Kernel PCA)
核PCA是PCA的非线性扩展,通过使用核技巧(Kernel Trick),将数据映射到一个高维特征空间,然后在高维空间中进行PCA。这使得核PCA能够捕捉数据中的非线性结构。
$$K(X,X')=\phi(X)\cdot\phi(X')$$
其中,𝐾(𝑋,𝑋′)是核函数,𝜙(𝑋)是将数据映射到高维空间的映射函数。
适用场景: 核PCA适用于非线性数据结构的降维,常用于图像处理、非线性分类问题中。
6)非负矩阵分解(NMF)
非负矩阵分解(NMF)是一种矩阵分解方法,用于将一个非负矩阵分解为两个非负矩阵的乘积。NMF常用于数据降维、特征提取和信号处理等领域。与PCA不同,NMF要求分解后的矩阵元素都为非负数,这使得NMF在解释性上有优势。
适用场景: NMF适用于处理非负数据(如图像数据、文档-词矩阵)和需要解释性结果的场景,如主题建模、信号分解等。
数据降维
线性降维方法
线性降维方法假设数据的结构可以通过线性变换来捕捉,这些方法在处理具有线性特征的数据时非常有效。常见方法有:
- 主成分分析(PCA): 基于线性变换,将数据投影到方差最大的方向上。
- 线性判别分析(LDA): 寻找能够最好分离不同类别的线性投影方向。
- 奇异值分解(SVD): 通过线性分解将矩阵分解为低维子空间。
- 独立成分分析(ICA): 通过线性变换分离出独立的成分。
非线性降维方法
非线性降维方法用于处理具有复杂非线性结构的数据,这些方法能够捕捉到数据中更复杂的模式。
1)t-SNE
t-SNE是一种非线性降维方法,通过最小化高维空间中相似点在低维空间中的分布差异来实现降维。t-SNE特别擅长保留数据的局部结构,适用于高维数据的可视化。
适用场景: 常用于高维数据的可视化,特别是当需要展示数据的簇结构时。
2)局部线性嵌入(LLE)
LLE是一种非线性降维方法,通过保留数据的局部结构,将高维数据嵌入到低维空间中。LLE假设每个数据点及其邻居可以通过线性组合表示,并通过保留这些线性组合关系来实现降维。
适用场景: 适用于处理复杂的非线性数据,特别是当数据位于流形上时。
3)Isomap
Isomap是一种基于流形学习的非线性降维方法,通过保留数据的全局几何结构,将高维数据嵌入到低维空间中。Isomap通过计算数据点之间的最短路径距离来捕捉数据的流形结构。
适用场景: 适用于数据位于复杂的非线性流形上的情况,常用于图像分析和数据可视化。
4)UMAP
UMAP通过构建高维空间中的近邻图,并将其投影到低维空间中,以保留数据的拓扑结构。
- 数据可视化: UMAP常用于将高维数据嵌入到二维或三维空间中,以便于可视化和理解数据的内在结构。
- 聚类分析: UMAP可以在低维空间中保留聚类结构,帮助识别数据中的群体和模式。
- 降维预处理: UMAP可作为降维预处理步骤,减少数据维度,从而提高后续机器学习模型的效率和性能。
数据划分
训练集、验证集和测试集划分
数据集通常被划分为训练集、验证集和测试集,以便对模型进行训练、调优和最终评估。这种划分方式确保模型在训练过程中不会看到测试集数据,从而能够更准确地评估模型的泛化能力。
- 训练集(Training Set): 用于训练模型的部分数据,模型通过这个数据学习特征和规律。
- 验证集(Validation Set): 用于调优模型参数的部分数据,帮助选择最佳模型超参数,防止过拟合。
- 测试集(Test Set): 最终用于评估模型性能的数据,模型在训练和调优过程中未曾见过这些数据。
交叉验证(Cross-Validation)
交叉验证是一种常用的模型评估方法,尤其在数据量较少时非常有效。交叉验证通过将数据集划分为多个互斥的子集,每次使用其中一个子集作为验证集,其他子集作为训练集,反复进行训练和验证,从而更全面地评估模型的性能。
- k折交叉验证(k-Fold Cross-Validation): 将数据集划分为k个子集,每次使用k-1个子集进行训练,剩下的一个子集进行验证,重复k次,最终计算平均性能。
- 留一法(LOO, Leave-One-Out): 每次只留出一个数据点作为验证集,其余数据用于训练,适合小数据集。
分层抽样(Stratified Sampling)
分层抽样是一种用于处理类别不平衡数据集的划分方法。通过在每个类别中按比例抽取样本,分层抽样确保训练集和测试集中各类别的比例与原始数据集一致。分层交叉验证(Stratified Cross-Validation)是其在交叉验证中的应用。在处理类别不平衡问题时,能够确保各类别的代表性,防止模型在某些类别上表现过差。
提高了模型评估的公平性和稳定性。
时间序列数据划分(Time Series Split)
时间序列数据的划分不同于静态数据,因为时间序列数据具有时间依赖性。传统的随机划分可能会破坏数据的时间结构,因此需要使用特定的方法来处理时间序列数据。
- 滚动窗口法(Rolling Window Method): 在时间序列数据上应用滚动窗口,每次使用一段时间的数据作为训练集,接下来的数据作为测试集。
- 时间序列交叉验证(Time Series Cross-Validation): 在时间序列数据中,通过递增的时间窗口进行交叉验证,保证训练集数据总是早于测试集数据。
留出法(Hold-Out Method)
留出法是最简单的数据划分方法,将数据随机划分为两部分,一部分用于训练模型,另一部分用于测试模型。通常按比例划分,比如70%用于训练,30%用于测试。
自助法(Bootstrap Method)
自助法是一种基于重采样的数据划分方法,通过从原始数据集中有放回地抽样生成多个训练集,未被抽到的样本作为测试集。自助法常用于模型评估、集成学习(如Bagging)等。
数据平衡
数据平衡方法主要用于处理类别不平衡问题,特别是在分类任务中,类别不平衡可能导致模型对少数类别的预测性能较差。
欠采样(Undersampling)
1)随机欠采样
随机欠采样是一种直接减少多数类样本数量的策略,通过随机删除多数类中的一些样本,使其数量与少数类接近,从而达到平衡数据集的目的。
适用场景: 适用于多数类样本数量非常多的情况,尤其是在数据量大到处理时间和存储资源成为瓶颈时。随机欠采样能够有效地减少数据量,降低计算资源的消耗。
2)聚类欠采样
聚类欠采样通过使用聚类算法将多数类样本分为多个簇,然后从每个簇中选择代表性样本进行训练。这种方法在保持多数类样本多样性的同时减少样本数量,避免了随机欠采样可能带来的信息丢失。
适用场景: 适用于多数类样本数量多但样本分布复杂的情况,通过聚类保持多数类样本的代表性和多样性。
过采样(Oversampling)
1) 随机过采样
随机过采样通过复制少数类样本来增加少数类的数量,使其数量与多数类接近。这种方法简单直接,可以有效平衡数据集,但也容易导致过拟合。
适用场景: 适用于少数类样本数量非常少的场景,尤其是在少数类样本对模型性能影响较大时。随机过采样能够增加少数类的数量,提高模型对少数类的识别能力。
2)SMOTE
SMOTE通过在少数类样本之间插值来合成新的少数类样本。这种方法通过生成新的样本来避免简单复制带来的过拟合问题,从而更好地平衡数据集。
适用场景: 适用于少数类样本较少且模型容易过拟合的场景。SMOTE能够在增加少数类样本数量的同时保持数据的多样性。
混合采样(Hybrid Sampling)
1)SMOTE + ENN(Edited Nearest Neighbors)
SMOTE + ENN结合了SMOTE和ENN两种方法。首先通过SMOTE合成新的少数类样本,接着使用ENN算法删除数据集中可能包含噪声的多数类样本,从而在增加少数类样本的同时清理数据。
适用场景: 适用于数据集复杂、含噪声较多的场景,通过这种方法可以提高数据的质量和模型的性能。
2)SMOTE + Tomek Links
SMOTE + Tomek Links通过结合SMOTE和Tomek Links两种技术,先使用SMOTE生成少数类样本,然后使用Tomek Links去除数据中容易混淆的多数类样本,从而进一步平衡数据集。
适用场景: 适用于希望通过去除冗余多数类样本来提高数据集质量的场景。
集成方法(Ensemble Methods)
1)EasyEnsemble
EasyEnsemble是一种集成方法,它通过对多数类进行多次随机欠采样,生成多个平衡的子集,并训练多个分类器,将这些分类器的结果集成。这种方法能够有效减少多数类样本的数量,同时保留数据的多样性。
适用场景: 适用于数据量大且需要构建稳健模型的场景,尤其在少数类样本非常重要的任务中。
2)BalanceCascade
BalanceCascade是一种逐步欠采样方法,每次对多数类进行欠采样,去除当前分类器可以正确分类的多数类样本,直至达到数据集的平衡。然后集成所有分类器的预测结果。
适用场景: 适用于数据集中多数类样本明显多于少数类的情况,通过这种方法可以逐步优化模型对少数类的识别能力。
成本敏感学习(Cost-Sensitive Learning)
1)加权随机森林
加权随机森林通过为少数类样本分配较高的权重,使模型在训练时更加关注少数类。这种方法通过调整权重来解决类别不平衡问题,而无需对数据进行采样处理。
适用场景: 适用于不希望改变数据集结构但希望模型更加关注少数类的场景,如医疗诊断、欺诈检测等任务。
2)代价敏感决策树
代价敏感决策树在决策树模型中为不同类别设定不同的代价权重,使得模型在分类错误时对少数类的惩罚更大,从而更倾向于正确分类少数类样本。
适用场景: 适用于希望在决策树模型中显式控制分类错误代价的场景,如不对称损失函数的问题。
生成对抗网络(GAN)
生成对抗网络通过生成模型和判别模型的对抗训练,生成逼真的少数类样本。生成模型负责生成新的样本,判别模型则用于区分生成的样本与真实样本,二者在对抗中不断改进。
适用场景: 适用于复杂数据类型的少数类样本扩展,如图像分类、文本生成等任务。
自适应采样
ADASYN
ADASYN是一种自适应采样方法,通过在少数类样本之间合成新的样本,特别关注那些难以分类的样本,生成更多类似这些样本的新数据。
适用场景: 适用于希望通过关注难以分类的少数类样本来提高模型性能的场景,如数据复杂度较高的分类任务。
- Author:Gordon
- URL:https://blog.csdn.net/EasyMCM?spm=1010.2135.3001.5343/article/10268400-c405-807f-9d08-c746a9f88646
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!