数据分析 - 线性回归数学公式讲解

安稳与你 提交于 2019-11-28 15:44:50

线性回归算法

数学概念

▒ 回归 - 回归会得到最终的计算结果, 是一个确定性的结果

▒ 分类 - 分类会进行分析给于一个结果的判断类别, 也是一个确定的结果

简单实例 - 银行贷款

实例分析

▒ 数据 - 工资和年龄 ( 2个特征 )

▒ 目标 - 预测银行会给我贷款多少钱 ( 标签 )

▒ 考虑 - 工资和年龄会如何影响到银行贷款的结果? 多大的影响? ( 参数 )

数据拟合

X1, X2 表示特征 ( 年龄, 工资 ),  Y表示输出结果 ( 钱 )

我们需要对数据进行拟合

假设 θ1 是年龄的参数, θ2 是工资的参数  ( 参数表示特征对结果的影响程度 )

拟合的平面的公式表达则为 

整合后为 

整合详解

整合前 :   转化后结果  

公式中的 θ0 表示偏置项, 给与一定程度的上下浮动, 偏置项此处可有理解为一个定值的偏置参数, 对结果不会产生较大的影响

而 θ1 和 θ2 则为权重参数, 需要组合特征数据项进行计算对结果会有较大影响 

以上的式子较为长, 能简化那就简化 

的内部运算原理为 

问题来了, 这里的  从何而来?  因此为了能够达到这个简洁的公式, 需要填充进来一个  

因此在不改变原值的情况下这个 , 设定为 1 则可以保证不会有数值上的影响

这样也需要我们的数据配合, 新添加一列 全 1 的数据, 这样完成公式的转换和数据填充

最终的结果这样更方便矩阵计算 ( 直接行 x 列计算即可 )

误差处理

概念解析

▒ 基础公式 -  

▒ 误差

  ▨  概念综述 -  误差是独立并其具备相同的分布, 而且服从均值为0方差为 的高斯分布

  ▨  独立 -   多人同时贷款彼此也是没有关系的, 彼此的判定分析都是独立进行互不影响的 ( 不会出现因为给A多了就给B少了的情况 )

  ▨  同分布 -   多人贷款要求必须是样本规定的银行( 不同银行之间的数据不同不能视为是合理误差 )

  ▨  高斯分布 -   银行多给少给, 只要浮动不是太大或者极小情况下浮动较大都是正常情况

  ps: 以上的关于 独立, 同分布以及高斯分布的说明都是假设, 因为实际上的数据模型是不会完完全全的符合上述的条件要求

  但是理论上的是这样的基本嵌合, 因此最终结果来说是较为科学的推断

公式推导

step0 

基础公式   

step1

误差服从高斯分布  

带入上式 

step2

此时需要引入似然函数的概念 

所谓似然函数

  即为 - 以某参数跟数据组合后恰好是真实值 → 目标是求参数

  运用在机器学习中就是 - 在不了解内部计算机制的情况下对已知的数据反馈的结果进行反推计算的机制( 简化为参数 ) 

  数学计算中加法是比乘要有难度一些, 因此当累乘( 表示 i 从 1到 m 进行累乘 )出现的时候最好转换为累加问题 (  )

step3

于是转换成对数似然进行化简

简化上式后为  

 累乘问题转换为累加问题后  和  之间依旧是个乘的关系

    是个常数项, 在  的过程中本质是 m 个  的累加,  即可理解为 

  的  就直接省略掉, 把 分母取出来并拆分, 即为 

在此简化后的式子为 

step4

这里再说明一个极大自然估计, 极大自然估计是在自然估计中越大越好, 极大则为最好的估计值

因此这里计算极大值

前半段   -----    这一段的计算本质依旧是个常数, 因此不存在什么最大最小的说法, 同时这也是一个确定了的正数

后半段   -----  也可以确定是个正数 (  以及   一定是正数) 

为了保证结果最大, 因此需要让后半段越小越好, 去除掉   后 得到最小二乘法既 - 目标函数  

setp5

得到最小二乘法的式子之后, 可对目标函数进一步的化简 

为了获取最小值可以进行求偏导, 求得导数为 0 的那个点就是最小值点

 

得出偏导公式后, 计算偏导等于 0 的点  计算   

换位后乘上逆得到 X , y 都是确定的数据, 因此   也是可求的了

ps:

  凸优化:  通常来说我们认为我们要处理的问题都是 这样子的形状, 因此求最大值都转换为了求最小值的问题

 

    某些情况下也不一定是可求解的, 而线性回归依旧是一种尝试方法, 而不是求解方法

  线性回归是提供一种较为大的可能性去求得最接近最优解的尝试算法

评估方法

最常用的评估项   , 取值越接近 1 被视为越好

 

梯度下降

引入 - 当我们得到一个目标函数之后,  如何进行求解?  直接求解( 并不一定可解, 线性回归可以被当做是一个特例 )? 

▒  常规套路 - 机器学习的套路就是我给机器一堆数据, 然后告诉它什么样子的学习方式是对的( 目标函数 ), 然后让它朝着这个方向去做

▒  如何优化 - 一口吃不成胖子, 通过一次次的迭代慢慢优化

示例

▒  目标函数 

  为目标函数,  为权重参数

▒  寻找极值

计算寻找 "山谷最低点"  即什么样子的参数可以使目标函数达到极值点

▒  迭代过程

"下山" 分几步走? ( 更新数据 )

▨ 找到当前最合适的方向

▨ 走那么一小步 ( 走快了会"跌倒" )

▨ 按照方向和步伐去更新参数

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!