京公网安备 11010802034615号
经营许可证编号:京B2-20210330
分类是我们在工业界经常遇到的场景,本文探讨了3种常用的分类器,逻辑回归LR,决策树DT和支持向量机SVM。
这三个算法都被广泛应用于分类(当然LR,DT和SVR也可以用于回归,但是本文先不讨论)。我经常看到人们会问,这个问题我该使用LR呢还是决策树(或者GBDT)还是SVM呢。然后你会听到一个“经典”而且“绝对正确”的答案:”It depends.”这个答案简直毫无卵用。所以本文将探讨一下面临模型选择的时候到底depends on what。
接下来是一个简单的2-D的解释,至于向更高维度的扩展延伸,就靠你们了~
从最重要的问题入手:我们在分类时想要做什么~听起来很蠢有木有,重新组织一下问题~为了完成分类,我们尝试得到一个分类边界或者是一个你和曲线,哪个方式能够在我们的特征空间里更好的进行分类呢?
特征空间听起来很fancy,看一个简单的例子,我有一些样本数据,特征(x1,x2)和标签(0或1)。
可以看到我们的特征是2-D的,不同的颜色代表着不同的类别标签,我们想要使用算法来获得一个曲线来区分这些不同类别的样本。
其实可以很直观的看出来,这个场景下圆是一个比较理想的分类边界。而不同的分类边界也就是LR,DT和SVM的区别所在。
首先看一下逻辑回归,对于LR给出的决策边界,我们对于这个经典的S型曲线会有不少困惑:
其实这个蓝色的曲线并不是决策边界,它只是把二分类的答案使用连续值输出置信度的一个方式,例如给出分类结果为1的置信度。LR决策面其实是一条直线(高维情况下平面或超平面),为什么呢?
来看下逻辑回归的公式:
为了判定样本属于哪一类,需要设置一个截断分数,高于这个分数就预测为正例,低于这个分数就预测为负例。例如阶段分数是c,所以我们的决策过程如下:
Y=1 当 p>c,否则为0。因而解决了之前的一个问题:LR的决策边界其实是一条直线。
所以对于之前的数据集我们得到的LR的决策边界如下:
可以看出来LR的效果并不好,因为不管你怎么调,决策边界都是线性的,无法拟合出来一个圆形的决策边界,所以LR比较适合解决线性可分的问题(虽然你也可以通过对特征进行变换从而使样本数据线性可分,但是目前不讨论这个东西,这个是特征工程的工作,和模型没关系)。
现在看一下决策树的工作原理,决策树是按照单个变量进行一层一层的规则过滤,例如:
x1大于或小于const或者x2大于或小于某个const做的工作是使用直线来划分特征空间,如下图:
如果我们让决策树更复杂一点,例如深度更大,则这些判断条件能够更细地划分特征空间,从而越来越逼近那个圆形的决策边界。
因此,如果决策边界是非线性的,而且能够通过矩形来划分特征空间,那么决策树就是优于LR的模型。
最后,看一下SVM的工作模式,SVM通过核函数把特征空间映射到其他维度,从而使得样本数据线性可分,换个说法,SVM通过添加新的维度的特征从而使得样本线性可分。从下图可以看到,当把特征映射到另一个空间,那么一个决策面可以把数据区分开,换言之,如果把这个决策面映射到初始特征空间,我们就相当于得到了一个非线性的决策边界。
在原始的2-D的特征基础上添加一个新的特征,我们就可以通过一个平面,使得这个3-D的样本数据线性可分了(使用n-1维的超平面把n维的样本分开),如果把这个分类面投射到原始的2-D空间,那么其实我们会得到一个圆哦,虽然这个分类边界并不会像下图这样理想,但是也是能够逼近这个圆的。
到这里我们大致明白了3个模型的工作原理,但是一开始提出的问题并没有解决,it depends on what? 什么情况下使用什么模型,优势是什么,劣势又是什么?我们下面来探讨这个问题~
LR,DT,SVM都有自身的特性,首先来看一下LR,工业界最受青睐的机器学习算法,训练、预测的高效性能以及算法容易实现使其能轻松适应工业界的需求。LR还有个非常方便实用的额外功能就是它并不会给出离散的分类结果,而是给出该样本属于各个类别的概率(多分类的LR就是softmax),可以尝试不同的截断方式来在评测指标上进行同一模型的性能评估,从而得到最好的截断分数。LR不管是实现还是训练或者预测都非常高效,很轻松的handle大规模数据的问题(同时LR也很适合online learning)。此外,LR对于样本噪声是robust的,对于“mild”的多重共线性问题也不会受到太大影响,在特征的多重共线性很强的情况下,LR也可以通过L2正则化来应对该问题,虽然在有些情况下(想要稀疏特征)L2正则化并不太适用。
但是,当我们有大量的特征以及部分丢失数据时,LR就开始费劲了。太多的分类变量(变量值是定性的,表现为互不相容的类别或属性,例如性别,年龄段(1,2,3,4,5)等)也会导致LR的性能较差(这个时候可以考虑做离散化,其实肯定是要做离散化的)。还有一种论调是LR使用所有的样本数据用于训练,这引发了一个争论:明显是正例或者负例的样本(这种样本离分类边界较远,不大会影响分类的curve)不太应该被考虑太多,模型理想情况是由分类边界的样本决定的(类似SVM的思想),如下图。还有一个情况就是当特征是非线性时,需要做特征变换,这可能会导致特征维度急剧上升。下面是我认为的LR的一些利弊:
LR的优势:
对观测样本的概率值输出
实现简单高效
多重共线性的问题可以通过L2正则化来应对
大量的工业界解决方案
支持online learning(个人补充)
LR的劣势
特征空间太大时表现不太好
对于大量的分类变量无能为力
依赖所有的样本数据(作者认为这其实不是啥问题。。)
决策树对于单调的特征变换是”indifferent”的,也就是说特征的单调变换对于决策树来说不会产生任何影响(我本人最早使用决策树时没有理解内部的机制,当时还做了特征归一化等工作,发现效果没有任何变化),因为决策树是通过简单的使用矩形切分特征空间的,单调的特征变换只是做了特征空间的缩放而已。由于决策树是的分支生成是使用离散的区间或类别值的,所以对于不管多少分类变量都能够轻松适应,而且通过决策树生成出来的模型很直观而且容易解释(随着决策树的分支解释即可),而且决策树也可以通过计算落到该叶子类目的标签平均值获得最终类别的概率输出。但是这就引发了决策树的最大问题:非常容易过拟合,我们很容易就会生成一个完美拟合训练集的模型,但是该模型在测试集合上的表现却很poor,所以这个时候就需要剪枝以及交叉验证来保证模型不要过拟合了。
过拟合的问题还可以通过使用随机森林的方式来解决,随机森林是对决策树的一个很smart的扩展,即使用不同的特征集合和样本集合生成多棵决策树,让它们来vote预测样本的标签值。但是随机森林并没有像单纯决策树一样的解释能力。
Also by decision trees have forced interactions between variables , which makes them rather inefficient if most of your variables have no or very weak interactions. On the other hand this design also makes them rather less susceptible to multicollinearity.
这段是在说决策树也不会受到多重共线性的影响,但是我本人不是很理解
DT的优势:
直观的决策过程
能够处理非线性特征
考虑了特征相关性
DT的劣势
极易过拟合(使用RF可以一定程度防止过拟合,但是只要是模型就会过拟合!
无法输出score,只能给出直接的分类结果
最后谈一下支持向量机SVM,SVM最大的好处就是它只依赖于处于分类边界的样本来构建分类面,可以处理非线性的特征,同时,只依赖于决策边界的样本还可以让他们能够应对”obvious”样本缺失的问题。由于SVM能够轻松搞定大规模的特征空间所以在文本分析等特征维度较高的领域是比较好的选择。SVM的可解释性并不像决策树一样直观,如果使用非线性核函数,SVM的计算代价会高很多。
SVM的优势:
可以处理高维特征
使用核函数轻松应对非线的性特征空间
分类面不依赖于所有数据
SVM的劣势
对于大量的观测样本,效率会很低找到一个“合适”的核函数还是很tricky的
我总结出了一个工作流程来让大家参考如何决定使用哪个模型:
1. 使用LR试一把总归不会错的,至少是个baseline
2. 看看决策树相关模型例如随机森林,GBDT有没有带来显著的效果提升,即使最终没有用这个模型,也可以用随机森林的结果来去除噪声特征
3. 如果你的特征空间和观测样本都很大,有足够的计算资源和时间,试试SVM吧,
最后是这位老司机的一点人生经验:好的数据远比模型本身重要,记住一定要使用你在对应领域的知识来进行完备的特征工程的工作;然后还有一个有效途径就是多使用ensembles,就是多个模型混合,给出结果。
个人想法:
本文加粗或者斜体字都是我自己的观点和补充。本文提到了多重共线性和正则化,如果不知道这个的话,是无法很好的理解这些内容的,我后面会写文章总结介绍一下多重共线性以及正则化相关的内容~
数据分析咨询请扫描二维码
若不方便扫码,搜微信号:CDAshujufenxi
在神经网络模型搭建中,“最后一层是否添加激活函数”是新手常困惑的关键问题——有人照搬中间层的ReLU激活,导致回归任务输出异 ...
2025-12-05在机器学习落地过程中,“模型准确率高但不可解释”“面对数据噪声就失效”是两大核心痛点——金融风控模型若无法解释决策依据, ...
2025-12-05在CDA(Certified Data Analyst)数据分析师的能力模型中,“指标计算”是基础技能,而“指标体系搭建”则是区分新手与资深分析 ...
2025-12-05在回归分析的结果解读中,R方(决定系数)是衡量模型拟合效果的核心指标——它代表因变量的变异中能被自变量解释的比例,取值通 ...
2025-12-04在城市规划、物流配送、文旅分析等场景中,经纬度热力图是解读空间数据的核心工具——它能将零散的GPS坐标(如外卖订单地址、景 ...
2025-12-04在CDA(Certified Data Analyst)数据分析师的指标体系中,“通用指标”与“场景指标”并非相互割裂的两个部分,而是支撑业务分 ...
2025-12-04每到“双十一”,电商平台的销售额会迎来爆发式增长;每逢冬季,北方的天然气消耗量会显著上升;每月的10号左右,工资发放会带动 ...
2025-12-03随着数字化转型的深入,企业面临的数据量呈指数级增长——电商的用户行为日志、物联网的传感器数据、社交平台的图文视频等,这些 ...
2025-12-03在CDA(Certified Data Analyst)数据分析师的工作体系中,“指标”是贯穿始终的核心载体——从“销售额环比增长15%”的业务结论 ...
2025-12-03在神经网络训练中,损失函数的数值变化常被视为模型训练效果的“核心仪表盘”——初学者盯着屏幕上不断下降的损失值满心欢喜,却 ...
2025-12-02在CDA(Certified Data Analyst)数据分析师的日常工作中,“用部分数据推断整体情况”是高频需求——从10万条订单样本中判断全 ...
2025-12-02在数据预处理的纲量统一环节,标准化是消除量纲影响的核心手段——它将不同量级的特征(如“用户年龄”“消费金额”)转化为同一 ...
2025-12-02在数据驱动决策成为企业核心竞争力的今天,A/B测试已从“可选优化工具”升级为“必选验证体系”。它通过控制变量法构建“平行实 ...
2025-12-01在时间序列预测任务中,LSTM(长短期记忆网络)凭借对时序依赖关系的捕捉能力成为主流模型。但很多开发者在实操中会遇到困惑:用 ...
2025-12-01引言:数据时代的“透视镜”与“掘金者” 在数字经济浪潮下,数据已成为企业决策的核心资产,而CDA数据分析师正是挖掘数据价值的 ...
2025-12-01数据分析师的日常,常始于一堆“毫无章法”的数据点:电商后台导出的零散订单记录、APP埋点收集的无序用户行为日志、传感器实时 ...
2025-11-28在MySQL数据库运维中,“query end”是查询执行生命周期的收尾阶段,理论上耗时极短——主要完成结果集封装、资源释放、事务状态 ...
2025-11-28在CDA(Certified Data Analyst)数据分析师的工具包中,透视分析方法是处理表结构数据的“瑞士军刀”——无需复杂代码,仅通过 ...
2025-11-28在统计分析中,数据的分布形态是决定“用什么方法分析、信什么结果”的底层逻辑——它如同数据的“性格”,直接影响着描述统计的 ...
2025-11-27在电商订单查询、用户信息导出等业务场景中,技术人员常面临一个选择:是一次性查询500条数据,还是分5次每次查询100条?这个问 ...
2025-11-27