Machine Learning 2 - 非线性回归算法分析

AI

机器学习第二篇 - 非线形回归分析。我们上文深入本质了解了机器学习基础线性回归算法后,本文继续研究非线性回归。


非线性回归在机器学习中并非热点,并且较为小众,且其应用范畴也不如其他广。鉴于此,我们本文也将较为简单的介绍,并不会深入展开。


非线性回归之后,我们会继续经典机器学习算法包括决策树,随机森林,逻辑回归,SVM,以及朴素贝叶斯分类算法,神经网络等介绍, 本文最后会有预览介绍。


目录

  • 回归分析

    • 线性回归

    • 非线性回归

  • 算法分析

    • 非线性分类

    • 线性变换

    • 非线性模型

    • 高斯-牛顿算法

    • 多项式回归

  • 小结

  • 后续机器学习算法预览


1

回归分析

回归分析基本属于统计学范畴,通常是建立在大量观察数据基础上,利用数理统计方法,尝试建立因变量自变量之间的回归函数关系,其中当只有因变量及一个自变量时,成为一元回归;当涉及两个或者多个自变量时候,成为多元回归;另外,按照自变量与因变量之间的函数表达式是线性还是非线性,分为线性回归非线性回归


线性回归

略微回顾一下我们前文的线形回归,简单来说,线性回归就是寻找一条最优的直线来拟合数据(可以扩展到多维),最优则通过数学上的最小二乘原理,有且只有一条直线函数,使得寻找的直线目前给定的函数值与模型预测值之差的平方和最小,即损失函数;当然其具体程序的算法实现则借鉴了数值计算的梯度下降法。


机器学习算法系列1-线性回归算法分析

非线性回归

很多时候,我们发现线性模型无法很好的拟合,扭曲了数据,更极端的情况是强行线性回归的结果不仅改变了原来数据的正态性,甚至改变了数据的方差齐性,独立性。

此时,应该考虑引入非线性回归模型


如我们身高和体重,在人的青少年,基本呈现线性关系,随着年龄的增长,身高体重都在增长;但对于整个人生命周期,考虑到成年人身高一般固定下来,则其关系呈现为曲线关系。


非线性回归,基本属于统计学范畴。非线性的意思就是至少有一个变量的指数不是1,如二次回归,或者函数来讲有幂函数,指数函数,对数函数,S函数等。


数学及数理统计上,求解非线性函数的方法一般分为1)转化为线性处理 2)不能变换为线性的算法。

本文我们主要了解可转化为线性的非线性回归,对于也可以归纳为非线性回归的决策树,由于其重要性及广泛的适用性,我们将在下一篇中单独介绍。

2

算法分析

人类学习认知的过程,总是希望把未知的领域转化到已知的领域,作为桥接,尤其在数学领域尤为突出。

非线性回归类型

  1. 可转化为线性回归的非线性回归

    • 包括上文提到的指数函数,对数函数,幂函数,S型函数,双曲线函数

  • 不可转化的非线性回归

    • 函数较为复杂,无法转换为线性处理

  • 可转换为多项式回归

    • 可转换为一元多项式(一个自变量,有一次项,二次项,高次项等曲线

    • 多元多项式(两个以上变量,一次项,二次项,高次项,图形变为曲面

    • 反应面回归(多个自变量,一次或二次多项式回归,图形为曲面


转换为线性回归

一图抵千语,下图很好的说明如何线性化。

上图介绍了分别对指数函数,幂函数,S曲线(Logistic曲线),对数函数如果通过对数变换等进行线性化。


曲线线性化或者直线化进行拟合,较为简单直观,容易求的某些参数的初始值等。

当然,曲线回归的数据变换必然导致随机误差项分布的变换,这将直接影响到最小二乘法所得解的含义及模型的适用条件。


回归分析的假设不仅有正态性,也包含方差齐性,独立性等要求,因此,线性变换后的采用最小二乘法得出的模型最佳参数估计值不一定是原模型的最佳估计。


综上,在精度要求较高,或者模型较复杂的回归问题中,简单线性化并无法很好满足。

非线性回归模型

对于无法转换为线性的模型,如标准任意曲线的期望函数:

其中,F为函数表达式;B=(B1,B2,.... Bm) 回归系数,e为随机误差

对于不可转化为线性的模型,通常回归利用泰勒级数展,并采用数值迭代开来进行。


常用数值迭代算法:

  • Gauss 高斯-牛顿法(一阶偏导数)

  • Newton 牛顿法(一阶,二阶偏导数)

  • Marquardt 麦夸特法(一阶偏导数)

  • Gradient 梯度下降(一阶偏导数)

  • Dud 正割法(无需偏导数)


对于采用预先给定估计误差的曲线函数,类似线性函数,使得该函数取值最小化,并用如最小二乘法等求得参数估计值的算法,由于曲线函数并非直线,所以模型并无法真正直接计算出最小二乘估计的参数值。


基于此弊端,数学上引入了高斯-牛顿法,对曲线函数作泰勒级数展开,以达到近似线性的目的,并只取一阶偏导数,其余归入误差,然后再采用最小二乘,并反复迭代求解。


高斯-牛顿算法:


  1. 为所有未知参数指定初始值(较为关键)

  2. 对预估的曲线函数作泰勒级数展开(线性化)

  3. 取一阶偏导,其余各项归入误差

  4. 采用最小二乘计算模型参数

  5. 用参数估计值代替初始值得到新的曲线函数

  6. 持续迭代递归步骤2泰勒级数展开求参数

  7. 直至参数估计值收敛为止


高斯-牛顿算法也可参考我们机器学习的第一篇中简要介绍。


其他算法,本文暂不介绍了。

多项式回归

数学上,一般函数都可以用多项式来逼近,或者说任意一个函数,至少在一个较小范围内可以用多项式任意逼近。当两个变量间的关系复杂难于确定时,可以使用多项式回归来拟合。

多项式回归模型可以表示为:


                            Y = XB + E


线性化后便可以通过最小二乘法求解。


通常,多项式回归模型只用于描述变量试验范围内的回归,并不可靠。并且由于上述模型设计矩阵,计算复杂且不稳定,可以采用正交多项式来进行简化与提升。


另外,使用多项式回归经常会导致过度拟合

3

小结

总体而言,对于实际中遇到的非线性模型,非线性回归给出通过线性变化,或者泰勒级数展开等线性化手段,再基于最小二乘法的解决方法,其实际应用中的收敛效果和速度都较为理想。


其通常算法模式为,将其线性化,再采用前文线性回归中的算法,如最小二乘法求出参数估计值,最后再进经过适当变换,迭代,收敛,得到回归曲线;


关键点是如何确定曲线类型,及如何线性化。确定曲线类型则一般或者根据专业知识,从理论推导,或经验推测;另外则通过绘制观测点图直接确定曲线大体类型(如果容易绘制的话,3维以内)。

4

后续机器学习预览

本文作为机器学习的第二篇,继上文介绍线性回归后,简单介绍了一些常用的非线性回归算法,并为深入展开,其原因开始已经提及。


开工没有回头箭,既然有了系列2,则希望可以做下去了。


简单介绍预览一下我们接下来可能会涉及的机器学习算法吧:


  • 线性回归

  • 非线性回归

  • 决策树

  • 逻辑回归

  • 随机森林

  • SVM

  • 朴素贝叶斯

  • K最近邻算法

  • 主成因分析

  • K均值算法

  • 神经网络

  • 马尔可夫

  • 卷积神经网络


我们尽量分篇幅来分别介绍,顺序不一定按照上述排列,此系列达成后,我们将继续深度学习


往期热文推荐


Machine Learning-线性回归算法分析

AI - TensorFlow

Docker

Deep Dive in Redis

Spring Boot

Gemfire:分布式缓存利器

FinTech-Blockchain区块链



公众号:技术极客TechBooster


孪生公众号:技术 + 金融 = 程序量化投资Venus



相关文章
相关标签/搜索
每日一句
    每一个你不满意的现在,都有一个你没有努力的曾经。
作者信息
本站公众号
   欢迎关注本站公众号,获取更多程序园信息
开发小院