多元线性回归
1 多元线性回归
1.1 猜想
1.2 代价函数
1.3 梯度下降法
1.3.1 特征缩放
椭圆空间变为圆形空间:
1.3.2 均值归一化
1.3.3 参数 α 的选取
为了加快收敛速度;避免发散。
采用多次实验的方法,一般遵循的思路为
Repeat{小 –> 大}
1.4 特征与多项式回归
寻找合适的多项式模型,例如
hθ(x)=θ0+θ1xhθ(x)=θ0+θ1x+θ2x2hθ(x)=θ0+θ1x+x√hθ(x)=θ0+θ1x+θ2x2+θ3x3...
2 正规方程
2.1 正规方程不可逆性
正规方程提供了一种求
θ
的解析解法。
Xθ=y→XTXθ=XTy→θ=(XTX)−1XTy
例如
x0 | a | y | |
---|---|---|---|
1 | 4 | 5 | 3 |
1 | 1 | 2 | 1 |
1 | 3 | 2 | 2 |
则
梯度法和正规方程方法对比
梯度法 | 正规方程 |
---|---|
1) 取 α | 1) 求矩阵逆 (XTX)−1 |
2) 多次迭代 | 特征数 n 大时,效率低 |
3) 处理特征数 |
3 Octave/MATLAB 入门
3.1 基本命令
PS1(‘>>’); 在 Command 命令中
disp(sprint(‘6 decimals: %0.6f’, a));
hist(x, 50); % x 变量的分布图
3.2 数据传递
路径 pwd
改变路径 cd ‘path’
ls 当前路径下的对象
load(‘filename’); 或者 load filename
who 变量信息
whos 变量详细信息
save filename varname 将 varname 保存至 filename
3.3 数据处理
flipud 矩阵左右翻转
3.4 数据绘图
imagesc 矩阵可视化实现
3.5 控制语句 for while if
搜索路径 addpath
3.6 向量化
MATLAB, python, Java, C, C++ 都有线性运算库
θ0=θ1=θ2=θ0−α1m∑i=1m(hθ(x(i))−y(i))x(i)0θ1−α1m∑i=1m(hθ(x(i))−y(i))x(i)1θ2−α1m∑i=1m(hθ(x(i))−y(i))x(i)2⎫⎭⎬⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪→θ=θ−αδwhereδ=1m(hθ(x)−y)Tx