DW集训营数据库基础算法梳理[一]

  • 一. 损失函数的极大似然推导
  • 二. 一元线性回归的参数求解公式推导
  • 三. 多元线性回归的参数求解公式推导
  • 四. 线性回归损失函数的最优化算法

一. 损失函数的极大似然推导

要知道如何用极大似然推导,首先先要明白什么是损失函数,以及为什么要定义损失函数
在多元回归中,需要求的目标值可以描述为:

为了描述其表示的误差,在最小二乘法的描述中,我们通过目标值和预测值的差来度量回归模型,最后我们选用了均方误差MSE来作为回归效果的度量:

之所以用均方误差MSE来描述,是因为一是这样其连续可导,另一方面是它将限制最大的误差尽可能的小,于是我们就将这个式子表述为误差函数,以损失函数达到最小值的目的,找到回归模型的最优解w和b。

搞清了损失函数的概念后,我们来理解下极大似然是什么鬼?以及为什么要用极大似然?

虽然我们使用最小二乘法得到了损失函数,但是如果从统计理论的角度出发来推导损失函数,我认为更有说服力,也能更好地理解线性回归模型,以及为什么开始要提出一些假设条件。

最大似然估计是一种确定模型参数值的方法。确定参数值的过程,是找到能最大化模型产生真实观察数据可能性的那一组参数。

二. 一元线性回归的参数求解公式推导

对于一元线性回归来说,其实质就是当样本特征只有一个时,来寻找一条直线,最大程度的来拟合样本特征和样本输出标记之间的关系。
那么如何来判定这个直线拟合程度的好坏,有一种方法时,让每个点求其到直线的距离,使得这些点到直线的距离之和为最小。
但是点到直线的距离中每个都有开方,最后开方相加会让求解的复杂度增加。故在这里可以对每一个点拉一根平行于y轴的直线,以到y轴的距离值来衡量拟合程度的好坏。
因为有的点在直线上,有的点在直线下,会出现负数,故在这里需要加上绝对值,但是绝对值因为表现的形式是坐标轴为对角线的正方形,而正方形的四个顶点不满足可导的条件,在后面求梯度中要求求导时会比较繁琐。故在这里采用距离的平方来表示。
即:

在x和y已知的情况下,找到目标a和b,使得尽可能的小,一般使用J(a,b)或者loss来表示损失函数。

损失函数的最小值就是求函数的极值,接下来对函数进行求导,当存在两个变量时,我们就对函数的各个未知分量进行求偏导,使得其偏导数为0,导数为0的地方,就是函数极值的地方。

其实就相当于对复合函数的链式求导法则,因为对a求偏导时需要用到对b求偏导的量,所以我们先对b求偏导,手推如下:

三. 多元线性回归的参数求解公式推导

为了使得y的表达式中的每一项都是一致的,我们b后也乘以一个X0,这样可以让式子结合在一起,计算时也更加方便,此时X0恒为1,此时对于系数w和截距b而言,我们就可以将其统一表示为列向量的形式,即为:

此时对于X而言,X已经是一个矩阵了,每一行表示一个样本,每一列代表一个特征,在这里Xi表示从X这个矩阵中抽出一行,所以它本身就是一个行向量了,对于目标函数而言,就变成了:

我们对其进行求导,得:

四. 线性回归损失函数的最优化算法

梯度下降是一种优化算法,能够为大范围的问题找到最优解。梯度下降的中心思想就是迭代地调整参数从而使得成本函数最小化。
批量梯度下降:对每一个样本进行计算,迭代的调整theta参数使得损失函数最小化;
特点:比较慢,且容易陷入局部值

随机梯度下降:每一步在训练集中随机选择一个样本,并且仅仅基于这单个样本来计算梯度,确定下一步搜索的方向;
特点:可以取到全局解,但容易取不到最优值

小批量梯度下降:每一步在训练集中选择的样本基于1和全部之间,并以选择的这些样本来确定下一步搜索的方向;
特点:基于’中庸’的思想,一定程度避免了陷入局部值,又在时间上得以保证;

在其中具体实现可以参考:

回归分析-手写代码实现梯度下降(一)
回归分析-手写代码实现梯度下降(二)
回归分析-手写代码实现梯度下降(三)
回归分析-手写代码实现梯度下降(四)

DW集训营算法基础梳理任务1:线性回归相关推荐

  1. 2021牛客寒假算法基础集训营1 J 一群小青蛙呱蹦呱蹦呱

    今天的比赛没打( 睡午觉去了,今天太累了 晚上来看看题 2021牛客寒假算法基础集训营1 J 一群小青蛙呱蹦呱蹦呱 题目传送门 板子题( 我们知道由唯一分解定理得,若 n=p1α1×p2α2×p3α3 ...

  2. 2022牛客寒假算法基础集训营6 签到题5题(附基础集训营4-6签到题总结)

    1.I-A+B问题 模拟,类似于高精度,竖式运算 #include<bits/stdc++.h> using namespace std; typedef long long LL; in ...

  3. 2022牛客寒假算法基础集训营3 签到题7题(附基础集训营1-3签到题总结)

    1.A-智乃的Hello XXXX 签到 #include<bits/stdc++.h> using namespace std; int main(){cout<<" ...

  4. (构造+二进制)2020牛客寒假算法基础集训营3B.牛牛的DRB迷宫II

    2020牛客寒假算法基础集训营3B.牛牛的DRB迷宫II 思路: 一开始我是考虑全部都是B会怎么样,然后删改,结果到后面发现很难推到普遍规律(可能是因为我没看出来). 看了题解之后,觉得这题出的挺有意 ...

  5. 2020牛客寒假算法基础集训营3 B 牛牛的DRB迷宫II二进制详解

    2020牛客寒假算法基础集训营3 B 牛牛的DRB迷宫II B 牛牛的DRB迷宫II 输入: 25 输出: 5 5 RBBBR BBBBB BBBDB BDBBB RBBBB 题解 由图求方案数,我们 ...

  6. 2023牛客寒假算法基础集训营4_20230130「向上取整」「夹逼dp」「lowbit科学+树状数组性质」「搜索」「倍增跳表」「莫队」

    6/13 教育场是有被教育到.(预计会鸽几题. 已过非太水的题们 //B //https://ac.nowcoder.com/acm/contest/46812/B//小构造小数学#include & ...

  7. 【解题报告】2021牛客寒假算法基础集训营4

    [解题报告]2021牛客寒假算法基础集训营4 前面的话 A :九峰与签到题 | 模拟 (签到题) B: 武辰延的字符串 | exKMP D :温澈滢的狗狗 | 二分 E: 九峰与子序列 | d p d ...

  8. 2023牛客寒假算法基础集训营1_20230116「典dp」「典set」「小思维+bfs」「小思维+构造+码力」「位运算博弈(人类智慧)」

    6/13 打得不好,这两天家里也很不好,跟做梦一样,脑子好像被僵尸吃掉了,前两个小时胡乱瞎写交题只过样例,wa了再看,什么b错都能写出来. M. M-本题主要考察了找规律_2023牛客寒假算法基础集训 ...

  9. 2021牛客寒假算法基础集训营1

    2021牛客寒假算法基础集训营1 A. 串(线性DP) B. 括号(构造) E.三棱锥之刻(几何) F. 对答案一时爽(签到) I. 限制不互素对的排列(构造) J. 一群小青蛙呱蹦呱蹦呱 A. 串( ...

最新文章

  1. Ant Design Vue 表格内编辑(附完整源码及效果图)
  2. Spring Boot 2.X整合Spring-cache,让你的网站速度飞起来
  3. 信息安全系统设计基础 实验四:外社驱动程序设计 20135327郭皓 20135329 李海空...
  4. 『玩具装箱TOY 斜率优化DP』
  5. NoneBot2插件——今日人品
  6. Lumen开发:如何向 IoC 容器中添加自己定义的类
  7. 为什么很多招聘信息都要求三年以上的工作经验?
  8. java 限流熔断_SpringCloud-Alibaba-Sentinel服务降级,热点限流,服务熔断
  9. 学习Linux编程前的准备
  10. 简单的路由封装ppp
  11. java project保存_java project 导出介绍
  12. 阿里云CentOS7.3配置Java Web应用和Tomcat步骤
  13. 测试工程师/测试开发面试题整理
  14. 2018-2019年江苏省高等学校“阿里云大数据技术实战训练营”大学生万人计划学术冬令营开营...
  15. MOOC创新创业学第十二章单元测试题及答案
  16. 2021年全球与中国油管线轴行业市场规模及发展前景分析
  17. 数据库的增、删、改、查例子
  18. 攻防世界-MISC-练习区-06(坚持60s)
  19. QT软件开发之基础控件--2.4.4 QTextEdit文本编辑器
  20. 同事的你--写给那些离职的同事们

热门文章

  1. 论文阅读:Dense Depth Priors for Neural Radiance Fields from Sparse Input Views
  2. 自动设置为兼容模式html5,360浏览器怎么样让某网站自动以兼容模式打开
  3. java认证含金量_计算机二级java证书有用吗?有含金量吗?
  4. LibvirtError: no supported architecture for os type 'hvm'
  5. STM32CubeMx配置HAL库流水灯
  6. python实现文字转语音_Python 文字转语音
  7. html手机页面加音效,为你的html5网页添加音效示例
  8. 网表文件的生成和使用
  9. 35-【什么叫规矩 什么叫体统】map容器
  10. Arduino通过delay方法改变PWM频率和周期