梦开始的地方,从最小二乘法开始学机器学习(代码片段)

神仙盼盼 神仙盼盼     2022-12-24     702

关键词:

梦开始的地方,从最小二乘法开始学机器学习

从这篇博客开始,我们将逐步实现不同的机器学习代码,以此来深入学习了解不同的机器学习背后的原理~

00. 参考资料

我们的参考书有如下:

01. 从线性回归问题开始

西瓜书正式开始讲机器学习算法便是从这里入手的,所以这里也就是我们启航的地方。

线性模型几乎是大部分人接触的第一个机器学习模型,它形式非常的简单,所以这也是我们的第一站。那么首先我们需要明白,线性回归问题是一个回归问题, 回归问题多是处理连续值的,又或者可以理解为:尽量的画出一条线,让结果都尽量的离这条线越近越好。

与此相反的,分类问题就是来处理离散值的,也就是去将结果尽量地通过我们画的线区分开来

所以该怎么去区分回归还是分类?当然是通过我们的需求了。

02. 线性回归的问题提出

一句话来总结,线性回归就是想办法让所有点到线的距离之和最小化

所以我们该如何去解决这个问题?这就是最小二乘法的作用了。

我们通常见到的一个数学公式来描述一条直线的,通常会是这样:
f ( x ) = w x + b f(x)=wx+b f(x)=wx+b
其中w代表我们变量前的系数,b代表截距,又或者我们在这里称它为偏执。

我们将以下的点代入进去:

x = [1, 3, 5, 8, 11, 15]
y = [1, 7, 12, 20, 26, 36]

绘图看一下结果:

如果是我们来画一条线的画,我们可以非常轻松的画出一个大致差不多的答案:

但是当数据量多了起来,当数据维度多了起来,我们又该怎么办了呢?

就如同周志华老师书中的那个公式一样:
f ( x ) = w 1 x 1 + w 2 x 2 + … + w d x d + b f(x)=w_1x_1+w_2x_2+ \\ldots +w_dx_d+b f(x)=w1x1+w2x2++wdxd+b
通过向量的方式,我们可以将公式转换成如下:
f ( x ) = w T x + b f(x)=w^Tx+b f(x)=wTx+b
怎么样通过计算机,来找出这样一条线,就是我们今天所需要去做的。

03. 线性回归问题的数学理论推导

我们之前说过,线性回归就是为了所有点到线的距离之和最小化。所以我们以最基础的 f ( x ) = w x + b f(x)=wx+b f(x)=wx+b来展开推导:

所以我们需要得到的结果就是让得到一个让每个点竖直到直线的值最小。即我们将每个点到直线的公式可以写成这样:
d i s t a n t = ∣ f ( x ) − y ∣ distant = |f(x)-y| distant=f(x)y
其中f(x)是我们预测的线上的点,而y是离散的点的y坐标,也就是实际结果。

随后我们需要将所有点的distant之和最小:
d i s t a n t _ s u m = a r g min ⁡ ∑ i = 1 m ∣ f ( x i ) − y i ∣ distant\\_sum = arg\\min \\sum _i=1^m|f(x_i)-y_i| distant_sum=argmini=1mf(xi)yi
但是在这里,我们如果通过绝对值的方式就很难再继续展开求解,因为我们没有办法去求导了。于是有什么办法在不改变数值特性的情况下,又方便求导呢?我们将绝对值替换成了平方的方式,完美的解决了这个问题~
d i s t a n t _ s u m 2 = a r g min ⁡ ∑ i m ( f ( x i ) − y i ) 2 distant\\_sum^2 = arg \\min \\sum _i^m(f(x_i)-y_i)^2 distant_sum2=argminim(f(xi)yi)2
接下来我们将 f ( x ) f(x) f(x)展开看看吧:
d i s t a n t _ s u m 2 = a r g m i n ∑ i = 1 m ( y i − ω x i − b ) 2 distant\\_sum^2 = arg min\\sum _i=1^m(y_i- \\omega x_i-b)^2 distant_sum2=argmini=1m(yiωxib)2
接下来我们我们就要开始秀了!

不知道大家是否还记得偏导呢?在百度百科中,它的定义如下:

在数学中,一个多变量的函数的偏导数,就是它关于其中一个变量的导数而保持其他变量恒定(相对于全导数,在其中所有变量都允许变化)。如果大家忘记怎么算了,可以先去回顾一下,这里不做详细介绍了。

于是我们将偏导运用进来,就可以求出不同变量的最小值点了!于是我赶快写下了求导公式:
∂ E ( w , b ) ∂ w = 2 ( w ∑ i = 1 m x i 2 − ∑ i = 1 m ( y i − b ) x i ) ∂ E ( w , b ) ∂ b = 2 ( m b − ∑ i = 1 m ( y i − w x i ) ) \\frac \\partial E_(w,b) \\partial w=2(w \\sum _i=1^mx_i^2- \\sum _i=1^m(y_i-b)x_i)\\\\\\frac \\partial E_(w,b) \\partial b=2(mb- \\sum _i=1^m(y_i-wx_i)) wE(w,b)=2(wi=1mxi2i=1m(yib)xi)bE(w,b)=2(mbi=1m(yiwxi))
公式推导详见南瓜书~建议先自己手推一下,这个难度不高。

随后我们再看,我们现在希望让偏导的结果都为0,于是我们把等号左边置零。这个时候上面的那个公式存在着w和b两个未知数,一看就不是现在可以解的,于是我们可以先求解对b求偏导的结果。

于是我们得到了这样的公式:
b = 1 m ∑ i = 1 m ( y i − ω x i ) b= \\frac1m \\sum _i=1^m(y_i- \\omega x_i) b=m1i=1m(yiωxi)
将b的结果作为已知值代入w中计算,于是也可以求解出公式如下:
w = ∑ i = 1 n y i ( x i − x ‾ ) ∑ i = 1 m x i 2 − 1 m ( ∑ i = 1 m x i ) 2 w= \\frac \\sum _i=1^ny_i(x_i- \\overlinex) \\sum _i=1^mx_i^2- \\frac1m( \\sum _i=1^mx_i)^2 w=i=1mxi2m1(梦开始的地方,从最小二乘法开始学机器学习(代码片段)

梦开始的地方,从最小二乘法开始学机器学习从这篇博客开始,我们将逐步实现不同的机器学习代码,以此来深入学习了解不同的机器学习背后的原理~文章目录梦开始的地方,从最小二乘法开始学机器学习00.参考... 查看详情

机器学习之最小二乘法

...神星的位置。随后全世界的科学家利用皮亚齐的观测数据开始寻找谷神星,但是根据大多数人计算的结果来寻找谷神星都没有结果。时年24岁的高斯也计算了谷神星的轨道。奥地利天文学家海因里希·奥伯斯根据高斯 查看详情

第二篇[机器学习]学习机器学习,从最简单的线性回归开始

...分类,分类有线性回归和逻辑回归。从最简单的线性回归开始:通过已有数据需要预测的线性方程:实际值和预测值的误差,求最小误差函数(最小二乘法):1.梯度下降法:其中ε是步长,步长越大,下降越快,但是可能到不... 查看详情

从零开始:机器学习20161101

今天开始学习机器学习,主要在于几个方面,就是机器学习对于我个人的几个方面提升都特别大。不管是金融还是图像。在金融我需要机器学习对于我的策略进行重构与评价。在图像,我擅长的是模式识别,需要大量的数据处理... 查看详情

机器学习-最小二乘法

...。追本溯源,从“Logistic回归”到“线性回归”,再到“最小二乘法”。最终定格到了《高等数学》(第六版·下册)第九章第10节“最小二乘法”,这才了解到最小二乘法背后的数学原理出自哪里。“最小二乘法”是最优化问题... 查看详情

机器学习模型和算法(代码片段)

...监督学习--回归模型线性回归模型一元线性回归线性回归最小二乘代码实现多元线性回归梯度下降法和最小二乘法相比线性回归梯度下降代码实现非线性回归python简介略python基本语法文件开头加上#-*-coding:UTF-8--*-#coding=utf-8略监... 查看详情

机器学习-最小二乘法

最小二乘法是机器学习中的基础知识点,一致对最小二乘法的理解不够深入,今天就花点时间来深入理解和探讨一下最小二乘法最小二乘法,又称最小平方法,基本公式通俗来讲,二者先取个差值,在来个平方,最后搞一个和号... 查看详情

《机器学习——数学公式推导合集》1.最小二乘法(leastsquaremethod)求解线性模型

1.1什么是最小二乘法(leastsquaremethod)最小二乘法:基于均方误差最小化来进行模型求解的方法称为“最小二乘法(leastsquaremethod)”。1.2线性模型(linearmodel)基本形式线性模型(linearmodel)试... 查看详情

《机器学习——数学公式推导合集》1.最小二乘法(leastsquaremethod)求解线性模型

1.1什么是最小二乘法(leastsquaremethod)最小二乘法:基于均方误差最小化来进行模型求解的方法称为“最小二乘法(leastsquaremethod)”。1.2线性模型(linearmodel)基本形式线性模型(linearmodel)试... 查看详情

机器学习理论基础学习2——线性回归

1.最小二乘法解的的推导,几何意义解释最小二乘法   2.从概率的角度解释最小二乘法结论:最小二乘法等价于最大似然估计(条件是噪音需要满足高斯分布) 3.L2正则化--- 岭回归   4.从概率的角度看正... 查看详情

机器学习回归的原理学习与葡萄酒数据集的最小二乘法线性回归实例(代码片段)

一,回归1.1回归分析的基本概念回归分析(regressionanalysis)指的是确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法。确定变量之间是否存在相关关系,若存在,则找出数学表达式根据一个或几个变量的值,预... 查看详情

01梦开始的地方,阿仁的c++学习笔记(p2~)(代码片段)

...业需要的考虑和受大佬室友的影响,实习之余,本菜鸡将开始学习c++。用的是bilibil播放量最多的那个c++入门课程,环境是vscode,开此贴为笔记之用。1、第一个helloworld程序1#include<iostream>2usingnamespacestd;34intmain()56cout<<"hello... 查看详情

从prism开始学wpfmvvmcommand?(代码片段)

原文:从PRISM开始学WPF(六)MVVM(二)Command?从PRISM开始学WPF(一)WPF?从PRISM开始学WPF(二)Prism?从PRISM开始学WPF(三)Prism-Region?从PRISM开始学WPF(四)Prism-Module?从PRISM开始学WPF(五)MVVM(一)ViewModel?从PRISM开始学WPF(六... 查看详情

从prism开始学wpfprism?(代码片段)

原文:从PRISM开始学WPF(二)Prism?目录:从PRISM开始学WPF(一)WPF?从PRISM开始学WPF(二)Prism?从PRISM开始学WPF(三)Prism-Region?从PRISM开始学WPF(四)Prism-Module?从PRISM开始学WPF(五)MVVM(一)ViewModel?从PRISM开始学WPF(六)MVVM... 查看详情

机器学习之回归模型-一元线性回归理论与最小二乘法实现(代码片段)

机器学习之回归模型-一元线性回归理论与最小二乘法实现线性回归是一种线性模型,它假设输入变量x与单个输出变量y之间存在线性关系。具体的说,就是利用线性回归模型,从一组输入变量的线性组合中,计算... 查看详情

机器学习线性回归——最小二乘法的几何意义

查看详情

从0开始机器学习-神经网络反向bp算法!(代码片段)

最近一个月项目好忙,终于挤出时间把这篇BP算法基本思想写完了,公式的推导放到下一篇讲吧。一、神经网络的代价函数神经网络可以看做是复杂逻辑回归的组合,因此与其类似,我们训练神经网络也要定义代价函数,之后再... 查看详情

从prism开始学wpfmvvmviewmodel?(代码片段)

原文:从PRISM开始学WPF(五)MVVM(一)ViewModel?从PRISM开始学WPF(一)WPF?从PRISM开始学WPF(二)Prism?从PRISM开始学WPF(三)Prism-Region?从PRISM开始学WPF(四)Prism-Module?从PRISM开始学WPF(五)MVVM(一)ViewModel?从PRISM开始学WPF(... 查看详情