摘要:分类问题是商业业务中遇到的主要问题之一。本文对三种主要技术展开讨论,逻辑回归(Logistic Regression)、决策树(Decision Trees)和支持向量机(Support Vector Machine,SVM)。算法
分类问题是咱们在各个行业的商业业务中遇到的主要问题之一。在本文中,咱们将从众多技术中挑选出三种主要技术展开讨论,逻辑回归(Logistic Regression)、决策树(Decision Trees)和支持向量机(Support Vector Machine,SVM)。ci
上面列出的算法都是用来解决分类问题(SVM和DT也被用于回归,但这不在咱们的讨论范围以内)。我屡次看到有人提问,对于他的问题应该选择哪种方法。经典的也是最正确的回答是“看状况而定!”,这样的回答却不能让提问者满意。确实让人很费神。所以,我决定谈一谈到底是看什么状况而定。get
这个解释是基于很是简化的二维问题,但足以借此来理解读者棘手的更高维度数据。io
我将从最重要的问题开始讨论:在分类问题中咱们究竟要作什么?显然,咱们是要作分类。(这是个严肃的问题?真的吗?)我再来复述一遍吧。为了作分类,咱们试图寻找决策边界线或是一条曲线(没必要是直线),在特征空间里区分两个类别。dva
特征空间这个词听起来很是高大上,容易让不少新人犯迷糊。我给你展现一个例子来解释吧。我有一个样本,它包含三个变量:x1, x2和target。target有0和1两种值,取决于预测变量x1和x2的值。我将数据绘制在坐标轴上。变量
这就是特征空间,观测值分布于其中。这里由于咱们只有两个预测变量/特征,全部特征空间是二维的。你会发现两个类别的样本用不一样颜色的点作了标记。我但愿咱们的算法能计算出一条直线/曲线来分离这个类别。可视化
经过目测可知,理想的决策边界(分割曲线)是一个圆。实际决策边界形状的差别则是因为逻辑回归、决策树和支持向量机算法的差别引发的。方法
先说逻辑回归。不少人对逻辑回归的决策边界都有误解。这种误解是因为大多数时候提到逻辑回归,人们就见到那条著名的S型曲线。im
上图所示的蓝色曲线并非决策边界。它是逻辑回归模型的二元响应的一种变形。逻辑回归的决策边界老是一条直线(或者一个平面,在更高维度上是超平面)。让你信服的最好方法,就是展现出你们都熟知的逻辑回归方程式。技术
咱们作一个简单的假设,F是全部预测变量的线性组合。
上面的等式也能够写做:
当你进行预测的时候,对几率值作一个分数截断,高于截断值的几率为1,不然为0。假设截断值用c表示,那么决策过程就变成了这样:
Y=1 if p>c, 不然0。最后给出的决策边界是F>常数。
F>常数,无非就是一个线性决策边界。咱们样本数据用逻辑回归获得的结果将会是这样。
你会发现效果并很差。由于不管你怎么作,逻辑回归方法获得的决策边界老是线性的,并不能获得这里须要的环状边界。所以,逻辑回归适用于处理接近线性可分的分类问题。(虽然能够对变量作变换获得线性可分的结果,但咱们在此不讨论这类状况。)
接着咱们来看决策树如何处理这类问题。咱们都知道决策树是按照层次结构的规则生成的。以咱们的数据为例。
若是你仔细思考,这些决策规则x2 |</>| const OR x1 |</>| const 只是用平行于轴线的直线将特征空间切分,以下图所示。
咱们能够经过增长树的大小使它生长得更复杂,用愈来愈多的分区来模拟环状边界。
哈哈!趋向于环状了,很不错。若是你继续增长树的尺寸,你会注意到决策边界会不断地用平行线围成一个环状区域。所以,若是边界是非线性的,而且能经过不断将特征空间切分为矩形来模拟,那么决策树是比逻辑回归更好的选择。
而后咱们再来看看SVM的结果。SVM经过把你的特征空间映射到核空间,使得各个类别线性可分。这个过程更简单的解释就是SVM给特征空间又额外增长了一个维度,使得类别线性可分。这个决策边界映射回原特征空间后获得的是非线性决策边界。下图比个人解释更清楚。
你能够看到,一旦样本数据以某种方式增长了一个维度,咱们就能用一个平面来分割数据(线性分类器),这个平面映射回原来的二维特征空间,就能获得一个环状的决策边界。
SVM在咱们数据集上的效果多棒啊:
注:决策边界并非这么标准的圆形,可是很是接近了(多是多边形)。咱们为了操做简便,就用圆环代替了。
如今清楚各类区别了吧,可是还有一个问题。也就是说,在处理多维数据时,何时该选择何种算法?这个问题很重要,由于如果数据维度大于三,你就找不到简单的方法来可视化地呈现数据。咱们将在第二部分讨论这么问题,敬请关注。