京公网安备 11010802034615号
经营许可证编号:京B2-20210330
机器学习算法需要注意的一些问题
对于机器学习的实际运用,光停留在知道了解的层面还不够,我们需要对实际中容易遇到的一些问题进行深入的挖掘理解。我打算将一些琐碎的知识点做一个整理。
这个问题是经常遇到的。就拿有监督的学习的二分类问题来说吧,我们需要正例和负例样本的标注。如果我们拿到的训练数据正例很少负例很多,那么直接拿来做分类肯定是不行的。通常需要做以下方案处理:
通过调整数据集中正负样本的比例来解决数据不平衡,方法有:
正样本本来就少,怎么增加呢?方法是直接复制已有的正样本丢进训练集。这样可以稍微缓解正样本缺失的困境,但是容易带来一个问题,就是过拟合的潜在危险。因为这样粗暴的引入正样本并没有增加数据集的样本多样性。如何设计复制哪些正样本有一些技巧,比如选择有特定意义的代表性的那些。
首先这是一个通用的合理的方法,但是负样本的减少必然导致数据多样性的损失。有一种方法可以缓解这个问题,那就是类似于随机森林方法,每次正样本数量不变,随机选择等量的不同的负样本进行模型训练,反复几次,训练多个模型,最后所有的模型投票决定最终的分类结果。
可以重新修改模型训练的损失函数,使得错分正样本的损失变大,错分负样本的损失变小。这样训练出来的模型就会对正负样本有一个合理的判断。
更多于此话题相关内容请移步:
分类中数据不平衡问题的解决经验
机器学习中的数据不平衡问题
说到异常值,首先得说一下数据量的问题。异常值不是缺失值,更不是错误值,同样是真实情况的表现,之所以觉得一个数据异常,是因为我们能够用到的数据量不够大,无法准确地代表整个此类数据的分布。如果把异常值放在海量数据的大背景下,那么这个异常值也就不那么异常了。
下载摘自某大牛博客一段话:
异常值并非错误值,而同样是真实情况的表现,我们之所以认为异常,只是因为我们的数据量不足够大而已。但是从实际的工业界来看,考虑到实际的计算能力以及效果,大多数公司都会对大数据做“去噪”,那么在去噪的过程中去除的不仅仅是噪音,也包括“异常点”,而这些“异常点”,恰恰把大数据的广覆盖度给降低了,于是利用大数据反而比小数据更容易产生趋同的现象。尤其对于推荐系统来说,这些“异常点”的观察其实才是“个性化”的极致。
既然说到大数据,同样是这位大牛的一段话:
说得学术一些,我们不妨认为大数据是频率学派对于贝叶斯学派一次强有力的逆袭。那么既然说到这个份上了,我们不妨思考一下,我们是不是有希望在回归贝叶斯学派,利用先验信息+小数据完成对大数据的反击呢?
某些机器学习算法对异常值很敏感,比如:K-means聚类,AdaBoost。使用此类算法必须处理异常值。
某些算法拥有对异常值不敏感的特性,比如:KNN,随机森林。
如何处理异常值?最简单的方法就是直接丢掉。其它方法我后面会继续研究。
过拟合可要命了,好不容易训练一个模型,来一些测试数据,分类结果非常的差。过拟合产生的原因:
训练数据太少
模型太复杂
训练数据中存在噪声点(就算训练数据足够多)
几乎所有的机器学习算法都会容易遇到过拟合的问题。所以先说一些解决过拟合的通用办法。当然,首先得保证训练数据不要太少。
正则化就是在模型的优化目标上再加入一个惩罚因子。这样模型的优化策略就从经验风险最小化变为结构风险最小化。
线性回归正则化就是岭回归和lasso回归,分别对应L2,L1罚项。
决策树正则化就是剪枝,通常把子节点个数作为罚项。
在数据量足够的情况下,可以采用交叉验证的方式避免过拟合,甚至可以在正则化之后再做一次交叉验证。
其它详细研究请点击:
机器学习过度拟合问题一些原因
有句话必须得放在前面:数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已。由此可见,特征工程尤其是特征选择在机器学习中占有相当重要的地位。
首先拽一段英文定义:
Feature engineering is the process of transforming raw data into features that better represent the underlying problem to the predictive models, resulting in improved model accuracy on unseen data.
in a word, feature engineering is manually designing what the input x’s should be.
主要是出于如下考虑:
1. 特征维数越高,模型越容易过拟合,此时更复杂的模型就不好用。
2. 相互独立的特征维数越高,在模型不变的情况下,在测试集上达到相同的效果表现所需要的训练样本的数目就越大。
3. 特征数量增加带来的训练、测试以及存储的开销都会增大。
4. 在某些模型中,例如基于距离计算的模型KMeans,KNN等模型,在进行距离计算时,维度过高会影响精度和性能。
5. 可视化分析的需要。在低维的情况下,例如二维,三维,我们可以把数据绘制出来,可视化地看到数据。当维度增高时,就难以绘制出来了。
在机器学习中,有一个非常经典的维度灾难的概念。用来描述当空间维度增加时,分析和组织高维空间,因体积指数增加而遇到各种问题场景。例如,100个平均分布的点能把一个单位区间以每个点距离不超过0.01采样;而当维度增加到10后,如果以相邻点距离不超过0.01小方格采样单位超一单位超正方体,则需要10^20 个采样点。
正是由于高维特征有如上描述的各种各样的问题,所以我们需要进行特征降维和特征选择等工作。
对于高维特征(成百上千维),比如图像,文本,声音的特征,特征的每一维没有显著意义的,最好要对特征先进行降维,也就是从初始数据中提取有用的信息。通过降维,将高维空间中的数据集映射到低维空间数据,同时尽可能少地丢失信息,或者降维后的数据点尽可能地容易被区分。这样,可以提取出显著特征,避免维度灾难,还可以避免特征之间的线性相关性。
PCA算法通过协方差矩阵的特征值分解能够得到数据的主成分,以二维特征为例,两个特征之间可能存在线性关系(例如运动的时速和秒速度),这样就造成了第二维信息是冗余的。PCA的目标是发现这种特征之间的线性关系,并去除。
LDA算法考虑label,降维后的数据点尽可能地容易被区分。
通常遇到的情况是:特征不够用。。在这种情况下,我们就要在设计算法之前,好好地挖掘一下特征。对于逻辑斯蒂回归和决策树,每一维的特征是有确切意义的。我们就要从各个方面,抽取与目标相关的所有可用信息作为特征。这个过程可能会比较痛苦。。
然后,是不是特征越多越好?其实也不是。盗一张图过来如下:
可以发现,刚开始模型的准确率随着特征数量的增加而增加,当增加到一定程度便趋于稳定了。如果还要强行加入如此多的特征,反而画蛇添足,容易过拟合。然后,如果出现特征过多出现过拟合的情况,就要适当地进行参数缩减。对于逻辑斯蒂回归,某一维特征对应的参数如果接近为零,说明这个特征影响不大,就可以去掉。因此,我们的特征选择过程一般如下:
这个过程的进行要同时观察模型准确率的变化。
最后,特征选择有哪些算法呢?
– 过滤方法:将所有特征进行打分评价,选择最有效的一些特征。比如:卡法检验,信息增益,相关系数打分。
– 包装方法:将特征组合的选择看做是一个在特征空间中的搜索问题。比如:随机爬山法,启发式的搜索方法等。
– 嵌入方法:将特征选择的过程嵌入到模型训练的过程中,其实也就是正则化的方法。比如lasso回归,岭回归,弹性网络(Elastic Net)等。
数据分析咨询请扫描二维码
若不方便扫码,搜微信号:CDAshujufenxi
在Python Pandas数据分析中,DataFrame是承载结构化数据的核心载体,数据清洗、数据修正、条件赋值、字段更新等实操场景,都离不 ...
2026-09-09 很多数据分析师掌握了Excel函数、会写SQL查询,但当被问到“数据从哪里来”“数据加工有哪些步骤”“如何使用分析工具连接数 ...
2026-09-09卡方检验(Chi-Square Test)是统计学中针对分类数据的经典显著性检验方法,核心用于判断两个离散分类变量是否相互独立、数据实 ...
2026-09-09CDA数据分析师 出品 作者:李诗怡 1. 销售漏斗阶段判断 题目:销售漏斗模型中,通过广告、社交媒体等方式触达品牌信息(如浏览品 ...
2026-09-07在Python数据分析中,Pandas库的DataFrame是最核心、最常用的结构化数据表对象,类似于Excel的二维表格,具备规整的行列结构、字 ...
2026-09-07在数据分析、经营复盘、业绩预测与经济统计工作中,平均增速(平均增长率)是衡量数据长期变化趋势、业务发展快慢的核心指标。不 ...
2026-09-07 很多数据分析师精通Excel单元格操作,但当被问到“表结构数据的基本处理单位是什么”“字段和记录的本质区别”“为什么表结 ...
2026-09-07随着大数据技术的快速发展,商业竞争逐步从传统的经验式经营转变为数据驱动的精细化运营。海量的用户行为数据、交易数据、运营数 ...
2026-09-04CDA数据分析师 出品 作者:李诗怡 1. 波士顿矩阵(BCG Matrix) 定义: BCG于1970年提出的业务组合分析工具,以"市场增长率"(纵 ...
2026-09-04 数据分析师八成以上的时间在和数据表格打交道,但许多人拿到Excel后习惯性地先算、先分析,结果回头发现漏了一列关键数据, ...
2026-09-04数据透视表是Excel与Power BI中最核心的数据分析工具,具备快速汇总、维度拆分、动态筛选的能力,可高效完成数据归类与统计展示 ...
2026-09-03在Power BI数据分析可视化场景中,堆积柱状图+折线图是最常用的复合图表组合。堆积柱状图适合展示各细分维度当期数值、结构占比 ...
2026-09-03 很多数据分析师每天与Excel打交道,但当被问到“表格结构数据的基本处理单位是什么”“数据类型误判会引发哪些分析错误”“ ...
2026-09-03CDA数据分析师 出品 作者:李诗怡 一、8个核心数据清洗函数 1. TRIM:一键清除多余空格(最常用) 作用:仅保留文本中"单词/字 ...
2026-09-02数据分析的核心并非单纯操作工具、整理报表或绘制图表,而是依靠科学的思维逻辑挖掘数据价值、解释业务现象、指导经营决策。在完 ...
2026-09-02在社会经济、产业研究、区域治理与大数据实证分析中,面板数据是最具研究价值的数据类型。面板数据同时包含截面维度与时间维度信 ...
2026-09-02 很多数据分析师能熟练计算均值、标准差,但当被问到“如何用一张图让业务方3秒内看懂核心结论”“面对不同数据类型该怎么选 ...
2026-09-02在数据驱动决策的体系中,数据分析按照分析目的可分为描述性分析、诊断性分析、预测性分析与指导性分析四大类型。其中,诊断性分 ...
2026-09-01网络请求是Python爬虫开发、接口测试、数据拉取的核心基础功能,Python生态中主要依靠 urllib 和 requests 两大库实现HTTP请求操 ...
2026-09-01 很多数据分析师面对业务问题时,常常感到“知道要分析,却不知道用什么方法”。其实,数据分析并非无章可循——从三大基础范 ...
2026-09-01