zoukankan      html  css  js  c++  java
  • 机器学习----回归算法

    回归算法,是一种应用比较广泛的机器算法。智能算法中,回归算法往往与其他算法结合使用。在锂电池SOC估计中,开路电压估计SOC的方法,就是一种典型的回归算法应用形式。详细过程在本文最后一部分说明。

    1 什么是回归算法

    简单的理解回归,就是找到模型函数中未知系数的方法。我们常常会遇到这样的情形,一个系统的输入变量与输出变量之间,关系比较复杂,不存在现成的理论公式描述这种关系。而我们知道,输入与输出之间一定存在着某种稳定的确定关系,并且我们需要这个函数的具体形式,来指导后续的实验或者生产。于是回归算法就应运而生。

    回归算法使用的典型过程是这样的:

    首先,准备好我们想要了解的典型系统。

    第二,给系统一系列典型输入,并测量相应的输出,获得n组由输入、输出数据构成的空间点数据。

    第三,根据系统的特点,选择系统模型的典型函数形式,参数待定;

    第四,将第二步获得的数据,带入第三步函数式中,解出系统模型的每个参数。这样,我们就获得了一个描述系统输入与输出关系的经验公式。

    第五,选取另外一组实验数据,代入经验公式,验证公式的准确性。如果精度在要求范围内,则确定公式可用。

    第六,在后续工作过程中,可以利用公式,估计不同输入获得的输出范围。

    2 回归算法分类

    线性回归

    线性回归,自变量和因变量的幂次方都不超过1,则将方程称为线性回归方程。回归方程往往不能直接求解,而需要找到函数最小误差公式,求解函数误差最小时,函数参数的取值。求解最小值的方法有梯度法,最小二乘法等。

    局部加权线性回归

    线性回归形式比较简单,易于求解,可以描述函数的整体趋势。但对于函数的局部波动无能为力。于是,人们在线性回归的基础上改进,得到局部加权方法。局部加权方法,允许估计中出现稍大的误差,进而减小系统均方误差,函数图形演变成了折线形。

    逻辑回归

    当函数值只有0和1两种取值时,我们需要用到逻辑回归。逻辑回归主要应用于数据分类。

    多项式回归

    多项式回归,顾名思义,就是自变量指数超过1的回归模型,是最具普遍意义的一种拟合形式,很多工程问题都可以应用这种回归算法。

    相比于线性回归,多项式回归会耗费更多计算资源,指数越大计算量越大。当我们选择多项式模型时,需要关注,拟合曲线的首尾指数较高的函数,评判在实际应用中是否有对应的意义。

    逐步回归

    当系统中存在多个自变量时,需要用到逐步回归。计算可以从最显著的变量开始,逐步加入次显著的变量,叫前进法;先加入全部变量,再逐步剔除一些影响不显著的变量,叫做后退法。

    其他回归算法

    除了上面的回归模型,常见的还有岭回归、LASSO回归、ElasticNet回归等,都是前述回归算法的改进和组合。

    3 过拟合和欠拟合

    选择的回归方法是否合适,主要是观察拟合结果,实验数据点与函数曲线的贴合程度越高,说明拟合效果越好。在网上看到两张图,看一眼就明白什么是欠拟合、过拟合、恰当的拟合,盗图一用。

    观察下面三幅图。欠拟合,由于选取函数模型的幂次不够,拟合曲线除了体现划分边界的大体趋势,并不能对数据做出准确的划分;过拟合,函数曲线精准分割数据点,但因为一两个数据点,却极大提高了函数复杂度,计算量显著增加;恰当的拟合,如第三幅图所示。

    个人理解,过拟合和恰当的拟合之间,可能并没有非常明晰的界限。随着计算机算力的不断提高,过拟合的起点肯定会相应提高。过拟合与适当的拟合之间,实际上是准确性与计算代价之间的平衡,无关乎对错。

    欠拟合
    过拟合
    恰当的拟合

    4 回归算法的特点

    1)回归算法与众多机器算法的鲜明区别在于,它可以解决多自变量对一个因变量的问题,也可以处理多个自变量对多个因变量的问题。

    2)经过转化以后,回归算法与支持向量机实际上具有等价性质。孙德山在他的论文《支持向量机分类与回归算法的关系研究》中阐述了这个观点并加以证明。回归算法的方程,能够直接求解的情形微乎其微,基本上都需要把参数求解转化成求函数最小误差问题。而支持向量机的求解,同样是转化为超平面到每个数据点的距离总和最大的优化问题,进而求解超平面方程的相关参数。

    5 回归算法在SOC估计中的应用实例

    作者曾洁在其论文《基于多项式回归算法的锂电池SOC估测》中详细介绍了利用回归算法,获得锂电池开路电压与荷电状态对应关系函数的过程。

    1)将充满电的电池组与大电阻串联,形成放电回路。采用电池多功能参数测量仪( 可以测得电池电压、充放电电流、温度、容量、内阻)监测放电过程中电池电压和放电量;

    2)放电电池组可用容量的5%,暂停,静置30分钟后,测量电池组开路电压;以此类推,直到电池荷电量为16.8%截止。(实验描述,中间调整了一次放电步长)。实验结束,获得每个测试点电池荷电量与开路电压的对应数据。

    3) 选取3次多项式方程作为回归方程,计算方程各项系数,获得3次曲线方程。

    4)选取另外一组相同型号、规格的锂电池,重新获得一组SOC-OCV数据,将开路电压数据带入方程,计算模型估计SOC值。将SOC估计值与实测值对比,最大误差5.79%。

    以上即为回归算法在常用的锂电池SOC估计中的具体使用过程。

    参考

    1 曾洁,基于多项式回归算法的锂电池SOC估测

    2 孙德山,支持向量机分类与回归算法的关系研究

    3 杨滨,自适应迭代最小二乘支持向量机回归算法

    4 华德宏,一种改进的一元线性回归算法

    5 李雪,一种改进的偏最小二乘回归方法研究

    6 雷歌阳,锂离子电池组的SOC估计

    7 成鹏9,常见的七种回归技术

    8 机器学习之回归算法

    9 对线性回归、逻辑回归、各种回归的概念学习

  • 相关阅读:
    LeetCode 109 Convert Sorted List to Binary Search Tree
    LeetCode 108 Convert Sorted Array to Binary Search Tree
    LeetCode 107. Binary Tree Level Order Traversal II
    LeetCode 106. Construct Binary Tree from Inorder and Postorder Traversal
    LeetCode 105. Construct Binary Tree from Preorder and Inorder Traversal
    LeetCode 103 Binary Tree Zigzag Level Order Traversal
    LeetCode 102. Binary Tree Level Order Traversal
    LeetCode 104. Maximum Depth of Binary Tree
    接口和多态性
    C# 编码规范
  • 原文地址:https://www.cnblogs.com/ldt-/p/10158597.html
Copyright © 2011-2022 走看看