回归问题之线性回归
来源:互联网 发布:淘宝试衣间在哪里 编辑:程序博客网 时间:2024/04/26 18:43
1、线性回归(linear regression):
a、单变量线性回归univariate linear regression:
形式:
关键是怎么选择模型的参数,:应该是使得尽可能/无限 接近训练样本(x,y)中的y值,也就是最小化问题:
<——线性回归的整体目标函数
其中,i 表示第i个样本;m 表示训练样本数量。
令
,那么,我们要做的便是使得最小化:。这便是代价函数,又称平方误差函数(square error function)
现在,我们的目标是,假设有一组训练集数据(1,1),(2,2),(3,3)那么,假设,则有,,此时,不难算出而,不断改变的值则会得到不同的 J 值,当取到最小值或局部最小值 J 时的,参数则是我们要的。
梯度下降算法(gradient descent algorithm)可以实现代价函数最小化:
这里讲述使用梯度下降算法解决最小化(当然,梯度下降算法也可以解决):
主要步骤:
- star with some ,即对进行一些初步猜测,一般会将其分别初始化为 0和1
- 不停的,一点点改变的值,试图通过改变使得变小,直到找到 J 的最小值(或局部最小值,即局部最优解)。
repeat until convergence {
(for j = 0 and j = 1)
}
###即反复更新直到收敛。
###注意:此 :=为赋值运算符;为learning rate,学习速率(在梯度算法中,其控制了更新值/更改值的每次变化的大小,即以多大的幅度更新参数);为微分项,也就是曲线上点的斜率。
由上可知,梯度算法其实主要是不断更新 :=- 某某;:=- 某某~:
令temp0 := -
temp1 := -
:= temp0
:= temp1
接下来以=0为例了解学习速率 ∝ 和微分项(导数项,此处为偏导)J():
当=0时,J() 即为,那么,只要不断更新 temp1 :=- ∝ J(), := temp1
(x , y)
()
(1 , 1)
0
2.33
(2 , 2)
0.5
0.583
(3 , 3)
1
0
…
2
2.33
(n , n)
…
…
此时,J()的曲线应该是一条曲线,如下:
当 = 4时,由图可以看出 J()>0,因此要使得temp1 := - ∝ J()变小,应该往斜率更加趋向平缓的方向移动,也就是向左移动;
当 = -4时,由图可以看出 J()<0,因此要使得temp1 := - ∝ J()变小,应该向右移动。
而∝ 则是控制移动的幅度大小:幅度过大可能会导致找不到最优解,而幅度过小则会加长计算的时间。
由上图可知,当导数项为0, := -∝ * 0 得到最优解,此时的则应该是我们要找的参数了。
下面,简要讲一下微积分项也就是偏导计算:
repeat until convergence {
(for j = 0 and j = 1)
}
——>微分项计算过程为:
因此,梯度下降算法代码具体应为:
repeat until convergence {
} 注意:要同时更新两个参数!
小结:线性回归主要是找到拟合的函数,其关键在于参数计算,此时利用cost function,例如平方误差代价函数,可以很好地刻画出如何找到理想的参数(即代价函数图像的最低点或是局部最低点处的参数值),而使用梯度下降算法则是可以很好地,有效率地实现cost function的计算过程(通过偏导,即斜率大小确定寻找方向和更新参数值直到收敛),进而找到想要的参数的值。
0 0
- 回归问题之线性回归
- 回归问题之线性回归II
- 回归分析之线性回归
- 1.3线性回归之线性回归实例
- 线性回归问题
- 线性回归问题
- 线性回归之最小二乘法
- TensorFlow之线性回归
- tensorflow之线性回归
- TensorFlow之线性回归
- 回归分析之线性回归(N元线性回归)
- SparkML之回归(一)线性回归
- 线性回归、logistic回归
- 线性回归&Logistic回归
- 回归:多元线性回归
- 回归-线性回归
- 线性回归-1-问题引入
- Tensorflow学习:线性回归问题
- 网络安全领域内的资格认证相关
- 图像细化算法大全
- EventBus for Android 源码分析
- 平滑过渡的战争迷雾(二) 实现:真正的迷雾来了
- Android中的json
- 回归问题之线性回归
- altera的全局时钟
- Qt新安装之后出现Error while building/deploying (kit: Desktop Qt 5.7.0 GCC 64bit) When executing step "Make”
- 使用placement new来巧妙实现一个单例
- Objective-C 单例模式singleton(参考apple官方例子)
- document.querySelector和querySelectorAll方法
- angularjs的使用:模块,服务,控制器(2)
- android6.0权限问题
- xshell 在Oracle SQL Plus backspace键 变为 sele^H^H^H