最小二乘拟合,L1、L2正则化约束
2017-12-13 19:13
585 查看
原文地址:http://blog.csdn.net/u013164528/article/details/45042895
最小二乘法(又称最小平方法)是一种数学优化技术。它通过最小化误差的平方和寻找数据的最佳函数匹配。利用最小二乘法可以简便地求得未知的数据,并使得这些求得的数据与实际数据之间误差的平方和为最小。
从维基百科中摘取的最小二乘的拟合曲线。
解法:其中Y为列向量,X为N*K的矩阵,W为K*1的行向量
虽说Matlab中有现成的拟合函数,但是,当有些正则化约束来限制W的取值时,就无法用拟合函数来实现。这时,需要我们自己写出求解的代码,才行。
与前面提到的相同,
下面公式中,X为N*K矩阵,Y为N维列向量,而W为K*1的行向量
无约束的线性最小二乘拟合:
。解法
L1正则化约束的最小二乘拟合:
,解法
L2正则化约束的最小二乘拟合:
,解法
而相应的代码实在是太简单了,代码中,
默认为1,而
为常数项。
Matlab代码:
x=[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1;
195,189,193,162,189,182,211,167,176,154,169,166,154,247,193,202;
36,37,38,35,35,36,38,34,31,33,34,33,34,46,36,37;
50,52,58,62,46,56,56,60,74,56,50,52,64,50,46,62]
y=[60,60,101,37,58,42,38,40,40,250,38,115,105,50,31,120]
%无约束
K0=inv(x*x')*x*y'
%L1正则化约束
K1=inv(x*x')*(x*y'-0.5)
%L2正则化约束
K2=inv(x*x'+eye(4))*x*y'
执行结果:
K0 =125.6309 -1.6503 6.9934 0.0385
K1 =116.3166 -1.6595 7.2063 0.0984
K2 =6.4473 -1.7536 9.6298 0.8152
L1的正则化约束结果不是那么明显,但L2的正则化约束结果还是相当不错的!
最小二乘法(又称最小平方法)是一种数学优化技术。它通过最小化误差的平方和寻找数据的最佳函数匹配。利用最小二乘法可以简便地求得未知的数据,并使得这些求得的数据与实际数据之间误差的平方和为最小。
从维基百科中摘取的最小二乘的拟合曲线。
解法:其中Y为列向量,X为N*K的矩阵,W为K*1的行向量
虽说Matlab中有现成的拟合函数,但是,当有些正则化约束来限制W的取值时,就无法用拟合函数来实现。这时,需要我们自己写出求解的代码,才行。
与前面提到的相同,
下面公式中,X为N*K矩阵,Y为N维列向量,而W为K*1的行向量
无约束的线性最小二乘拟合:
。解法
L1正则化约束的最小二乘拟合:
,解法
L2正则化约束的最小二乘拟合:
,解法
而相应的代码实在是太简单了,代码中,
默认为1,而
为常数项。
Matlab代码:
x=[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1;
195,189,193,162,189,182,211,167,176,154,169,166,154,247,193,202;
36,37,38,35,35,36,38,34,31,33,34,33,34,46,36,37;
50,52,58,62,46,56,56,60,74,56,50,52,64,50,46,62]
y=[60,60,101,37,58,42,38,40,40,250,38,115,105,50,31,120]
%无约束
K0=inv(x*x')*x*y'
%L1正则化约束
K1=inv(x*x')*(x*y'-0.5)
%L2正则化约束
K2=inv(x*x'+eye(4))*x*y'
执行结果:
K0 =125.6309 -1.6503 6.9934 0.0385
K1 =116.3166 -1.6595 7.2063 0.0984
K2 =6.4473 -1.7536 9.6298 0.8152
L1的正则化约束结果不是那么明显,但L2的正则化约束结果还是相当不错的!
相关文章推荐
- 正则化方法:L1和L2 regularization及区别、数据集扩增、dropout
- L1 和L2 正则化的理解
- 正则化方法:L1和L2 regularization、数据集扩增、dropout
- 过拟合以及正则化(L0,L1,L2范数)
- TensorFlow学习笔记4——正则化方法:L1和L2 regularization、数据集扩增、dropout
- 【深度学习理论】正则化方法:L1、L2、数据扩增、Dropout
- 非负矩阵分解中基于L1和L2范式的稀疏性约束
- 非负矩阵分解中基于L1和L2范式的稀疏性约束
- 正则化方法:L1和L2 regularization、数据集扩增、dropout
- 正则化方法L1和L2
- 正则化方法/防止过拟合提高泛化能力的方法:L1和L2 regularization、数据集扩增、dropout
- L1 L2范式的详解以及Scikit-learn上基于L1 L2范式正则化的实例
- 正则化方法:L1和L2 regularization、数据集扩增、dropout
- 机器学习笔记(二)L1,L2正则化
- 初学者如何学习机器学习中的L1和L2正则化
- 过拟合与L1,L2正则化
- dropout和L1,L2正则化的理解笔记
- L1以及L2正则化
- 正则化方法:L1和L2 regularization、数据集扩增、dropout
- L1 L2 正则化