线性回归

机器学习分为有监督学习和无监督学习。

有监督学习分为回归问题和分类问题。

Regression 回归问题是指我们想要预测连续的数值输出

Classification 分类是指我们设法预测一个离散值输出(0 or 1),有时也可以存在有两个以上的可能的输出值。

 

设有一组数据,x为自变量,y为因变量,(x(i),y(i))代表一组数据。

我们想要预测y,则设hθ(x(i))=θ_0+θ_1x(i)

那么这个单变量线性回归的代价函数为J(θ_0,θ_1)=1/2m   m∑i=1 (hθ(x(i))-y(i))^2   就是用预测的减去实际的,然后让他俩的平方和尽可能的小

我们要做的就是关于θ_0和θ_1对函数J(θ_0,θ_1)求最小值,这就是我们的代价函数也被称作平方误差函数。

既然要求θ_0和θ_1,就要用到梯度下降算法:

1.对θ_0,θ_1初始化,一般设为θ_0=0,θ_1=0;

2.一点点改变θ_0,θ_1的值,来使J(θ_0,θ_1)变小,直到我们找到最小或局部最小值

所以,一直进行以下这个公式,直到收敛。θj=θj-α(d/dθj)J(θ_0,θ_1)所有的θ同步更新

α是学习率,为常数量,控制梯度下降时我们迈出多大的步子(控制多大幅度的更新)α的值多为0.01,0.005,python中有其默认值

更新:正确方法:temp0=θ_0-α(d/dθ_0)J(θ_0,θ_1)      是的,我们要做到同步更新

                            temp1=θ_1-α(d/dθ_1)J(θ_0,θ_1)

                            θ_0=temp0

                            θ_1=temp1

 

梯度下降时没有必要再另外减小α,因为随着梯度下降,导数会变小,更新的幅度也会变小

对公式(d/dθj)J(θ_0,θ_1)进行计算

α(d/dθj)J(θ_0,θ_1)=α(d/dθj)  1/2m   m∑i=1 (hθ(x(i))-y(i))^2=α(d/dθj)  1/2m   m∑i=1 (θ_0+θ_1(x(i))-y(i))^2

带入梯度下降公式得,求的θ_0,θ_1得方法

repeat until convergence{

θ_0=θ_0-α  1/m   m∑i=1 (hθ(x(i))-y(i))

θ_1=θ_1- α 1/m   m∑i=1 (hθ(x(i))-y(i)) x(i)

}

posted @   fromzore  阅读(145)  评论(0编辑  收藏  举报
编辑推荐:
· C++代码改造为UTF-8编码问题的总结
· DeepSeek 解答了困扰我五年的技术问题
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· 用 C# 插值字符串处理器写一个 sscanf
· Java 中堆内存和栈内存上的数据分布和特点
阅读排行:
· 为DeepSeek添加本地知识库
· .NET程序员AI开发基座:Microsoft.Extensions.AI
· 精选4款基于.NET开源、功能强大的通讯调试工具
· 数据不出内网:基于Ollama+OneAPI构建企业专属DeepSeek智能中台
· 大模型工具KTransformer的安装
点击右上角即可分享
微信分享提示