线性特征与非线性特征、线性模型与非线性模型

一.线性特征与非线性特征

  • “线性”与“非线性”是数学上的叫法。线性,指的就是两个变量之间成正比例的关系,在平面直角坐标系中表现出来,就是一条直线;而非线性指的就是两个变量之间不成正比,在直角坐标系中是曲线而非直线,例如一元二次方程的抛物线、对数函数等等关系。一切不是一次函数的关系,都是非线性的
  • 线性特征:次数为1的特征。这些特征对结果的影响是满足加法原则的,即整体等于部分之和
  • 非线性特征:次数不是1的特征,如一些高维特征。这些特征不满足加法原则,例如在寒夜中一支火把给你体表温度的提升是1℃,但两支火把对你体表温度的提升或许不是2℃,而是1.5℃,此时,“火把数量”这个特征就不满足加法原则

二.线性模型与非线性模型

这是个见仁见智的问题,也就是说,它似乎没有一个确定的答案,因而我们不纠结于到底把这个模型称作“线性model”or“非线性model”,从这么僵化的论战里跳脱出来,好好掰扯一下这个问题:

  • 首先,我认为model终归是要解决实际问题的一种方法,而到底是选择线性还是非线性的model,最初还是要取决于我们的数据是线性可分还是线性不可分的,也就是说,在model是不是线性的之前,还有“问题(样本)是不是线性的”这样一个问题
    • 样本是否为线性可分这个问题就很简单了,线性可分,指的就是我们能够找到一条直线(或高维的超平面),将大多数样本完成分离,比如线性可分SVM;若样本线性不可分,则需要使用SVM的核函数对特征进行映射,将特征空间映射到高维空间中去,这时候就是线性不可分SVM了(我这个叫法似乎不太专业...)
  • 若我们的样本是线性可分的,那么我们直接使用线性model就可以解决分类问题,如LR。下图是LR的决策边界示意图:

  • 那么LR就是标准的线性模型咯?我觉得最好不要这样武断的去决断,因为若将特征映射到高维,LR也可以在二维平面绘制出曲线的决策边界,完成对在二维空间中线性不可分的样本的分类,如下图,LR的判别函数以及决策边界:

  •  所以我觉得,线性的model不一定非得是线性的,它可以通过一些方式将自己变成“非线性”model,例如非线性SVM使用核技巧对原始特征空间的映射、例如LR中引入高维的特征等等,我们毕竟很难说,加了核函数的SVM就不是SVM了吧?

最后,我想简单聊一下如何增强已有模型的“非线性”能力,或者如何让自己的模型更具有分类非线性样本的能力(以下仅仅是个人理解,欢迎拍砖!)

  1. 我们可以向LR学习,将输出的线性结果进行一次非线性函数的转换,将线性结果变成非线性的。例如sigmoid函数。
  2. 我们可以向SVM的核函数学习,将特征空间向高维映射,在更高的维度上寻找分隔超平面,在原始特征维度上自然就是非线性的了。
  3. 第二条中的SVM核函数,尤其是rbf核,向高维的映射方式我们不清楚,理论上是可以将特征映射到无限维度上去。我们在处理实际问题时也可以自造高维特征,例如组合特征、单纯使用某个特征的二次方或高次方等等,这其实也是和核函数将原始特征空间向更高维映射的方法几乎是一个意思。sklean中的一些专门用于生成组合特征的方法,就在做类似的事情。总之,一切利用已有的特征,进行特征组合、one-hot编码等方式产生新组合的方式,都可以被看做是将特征向高维去映射的一个方法,导致的结果就是使样本更“线性可分”,从增加数据优良性质这个角度进行提升分类结果

 

你可能感兴趣的:(机器学习,线性模型,project,H,概念,特征工程)