机器学习笔记(3)多变量线性回归
模型介绍
多变量线性回归类似于单变量线性回归,只是需要考虑的影响特征数目变多,通过对多个变量xi进行分析,进而预测结果y。类似于单变量线性回归的假设函数,给出多变量线性回归的假设函数:
hθ(x)=θ0+θ1x1+θ2x2+…+θnxn
利用线性代数的知识,可以将系数θ定义为一个向量:
θ=[θ0θ1θ2⋮θn]
变量x定义为:
x=[x0x1x2⋮xn]
则假设函数可以写成:
hθ=θTx
代价函数
类似于单变量线性回归,我们有n个特征值,我们写出代价函数:
J(θ)=12mm∑i=1(hθ(x(i))−y(i))2
梯度下降
θj:=θj−α∂∂θjJ(θ)
(for(j=0,……n))
解开之后的规律为:
θj:=θj−α1mm∑i=1(hθ(x(i))−y(i))x(i)j
当然对于某些情况,例如对于一个多变量的模型,其各个变量的取值范围差异很大,就会导致在执行梯度下降的过程中,速度缓慢且可能产生波动。所以引出一个技巧:
特征缩放
对于上述的情况,希望能将各变量的取值范围保持在−1≤x≤1类似的一个范围里,并且使得各变量的取值范围一致。
利用均值归一化,可以得到一个比较理想的结果:
xi=xi−μisi
其中μ为x训练集的平均数,s为范围的标准差。
学习率α的选择
可以通过描绘以迭代层数为x轴的J(θ)图像来观察梯度下降算法是否合理运行。以此为依据,调整合理的学习率α。
正规方程
梯度下降算法中的偏导数,可能不一定好计算,在之前的单变量线性回归中,分析过当∂∂θjJ(θ)=0时算法到达边界,根据这个条件,给出下列算法:
对于一组训练集:
x0 | x1 | x2 | x3 | x4 | y |
---|---|---|---|---|---|
1 | 2104 | 5 | 1 | 45 | 460 |
1 | 1416 | 3 | 2 | 40 | 232 |
1 | 1534 | 3 | 2 | 30 | 315 |
1 | 852 | 2 | 1 | 36 | 178 |
可以分别写成矩阵:
X=[12104514511416324011534323018522136]
和向量:
y=[460232315178]
则θ公式为:
θ=(XTX)−1XTy
与梯度下降的选择
- 梯度下降算法需要选择学习率α,正规方程不需要
- 梯度下降算法需要很多次迭代,正规方程不需要
- 梯度下降算法在在特征量很多的时候依然运行良好,而正规方程的时间复杂度为O(n3),在特征量数量很大的时候,效率会变低。(大约为104这个量级)
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 理解Rust引用及其生命周期标识(下)
· 从二进制到误差:逐行拆解C语言浮点运算中的4008175468544之谜
· .NET制作智能桌面机器人:结合BotSharp智能体框架开发语音交互
· 软件产品开发中常见的10个问题及处理方法
· .NET 原生驾驭 AI 新基建实战系列:向量数据库的应用与畅想
· 2025成都.NET开发者Connect圆满结束
· 后端思维之高并发处理方案
· 在 VS Code 中,一键安装 MCP Server!
· 千万级大表的优化技巧
· langchain0.3教程:从0到1打造一个智能聊天机器人