ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

线性回归算法的原理及参数优化方案

2020-05-07 09:54:54  阅读:615  来源: 互联网

标签:误差 函数 直线 算法 参数 w1 w0 线性


线性回归算法的原理及参数优化方案

 

简单的线性回归算法

y = w0 + w1x  

x = 1 ,y = 2

x = 2 ,y = 3

两点确定一条直线,可以求得w0 和 w1

 

如果给了3组数据,可不可以准确求得w0 和 w1

x = 1 ,y = 2

x = 2 ,y = 3

x = 3 ,y = 5

由于这3点不在一条直线,所以不能准确求得w0 和 w1。这道错题其实是一个机器学习问题

 

如果给了3亿组数据,不在一条直线上,如果找到一条完美直线,使得误差最小

3亿组数据找到规律,规律就是w参数

完美直线:空间的点到直线的距离最近

 

量化公式,m个点

J = 1/2m 求和 (h(xi) - yi)的平方   

 

 

h = w0 + w1x

使得量化公式越小越好

 

问题转化为求J的极小值

首签确定J的形状,是凹函数,有极小值

为什么是凹函数?y = x平方 是凹函数 y = x平方 + 1  是凹函数

(w0,w1) 乘以(1,x) 的转置 = w0+w1x

J = 1/2m (W转置 X - yi)的平方

J =  (W转置)的平方    凹函数

 

w(w0,w1)  与J

 

 

 

 

求导,导数等于0

对w0和w1分别求偏导,导数为0 

海量数据下,x特别多(x1,x2,x3......),通过偏导为零反推求解 w参数,基本不可能,需要很多的算力

 

其他方法?

反推不行,正向试

随机给w参数,和 3亿组数据,代到 误差函数 损失函数 目标函数,求得误差值

误差值不可能为0,因为3亿组数据不在一条直线上

人为设置一个能够容忍的误差值,比如0.01,不断迭代当误差值小于0.01,此时的w参数就是最佳参数,此时的直线是最佳直线

 

迭代次数

误差阈值

当这两个条件达到其一,就停止迭代

 

1、随机w0,w1参数值

2、训练集数据和随机出来的w参数误差函数中求解出误差

3、如果误差小于用户设置的误差阈值,此时的w参数就是最佳参数

4、否则继续调整w参数,循环2 3步

 

求解出w参数后,模型训练完毕,

当未来有了x值,求得的y值就是预测的值

 

参数策略,调参工程师

 

如果误差非常小,模型可能过拟合

 

为什么求得的误差是点到直线在y方向上的误差

 

 

为什么不求点到直线的垂直距离

 

 因为是要预测的y值更精准,所以是在y方向上的误差

 

 

w参数的调整方向和幅度?

梯度下降法指导w的调参

 

标签:误差,函数,直线,算法,参数,w1,w0,线性
来源: https://www.cnblogs.com/xiyouzhi/p/12838778.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有