【机器学习基础】Least squares最小二乘法
2016-12-05 15:19
267 查看
最小二乘法是求线性回归问题最基础的方法之一,最近花了一点时间深入研究了一下,然后简单的整理一下思路。
先从一个简单的例子开始,对于点A(1,1),B(2,2),C(3,2)
拟合出一条直线 y = C + D x
首先我们把这三个点带入直线方程,写成矩阵的形式。
现在得到一个矩阵方程
通过矩阵我们得到了两个方程,两个变量对应两个方程组,这样我们可以分别解出这两个方程组,对于斜率D,我们可以得到
通过观察,我们继续对D进行变形,
这样我们就得到了求解斜率的公式。同理,我们也可以得到C的公式。
本来推到这里已经结束了,但是如果仔细思考一下,会发现哪里有些不对劲,对于给定的直线方程,这三个点都没办法在这条直线上,那我们为什么还要将点的坐标带入方程里去呢?
下面是Least Squares的核心思想,我们首先引入均方差(Square Loss)这个概念。
这里R2是关于C,D 的凸函数,所以当它关于C,D 的导数均为0时,得到C,D的最优解。
这时我们可以发现这里得到的两个方程正是之前矩阵变换得到的两个方程,即这两个方程就是求最优解的方程。
我们可以直接通过方程来得到所求直线方程的两个参数。
参考文档:Least Squares Fitting
参考视频:MIT线性代数相关课程
先从一个简单的例子开始,对于点A(1,1),B(2,2),C(3,2)
拟合出一条直线 y = C + D x
首先我们把这三个点带入直线方程,写成矩阵的形式。
现在得到一个矩阵方程
通过矩阵我们得到了两个方程,两个变量对应两个方程组,这样我们可以分别解出这两个方程组,对于斜率D,我们可以得到
通过观察,我们继续对D进行变形,
这样我们就得到了求解斜率的公式。同理,我们也可以得到C的公式。
本来推到这里已经结束了,但是如果仔细思考一下,会发现哪里有些不对劲,对于给定的直线方程,这三个点都没办法在这条直线上,那我们为什么还要将点的坐标带入方程里去呢?
下面是Least Squares的核心思想,我们首先引入均方差(Square Loss)这个概念。
这里R2是关于C,D 的凸函数,所以当它关于C,D 的导数均为0时,得到C,D的最优解。
这时我们可以发现这里得到的两个方程正是之前矩阵变换得到的两个方程,即这两个方程就是求最优解的方程。
我们可以直接通过方程来得到所求直线方程的两个参数。
参考文档:Least Squares Fitting
参考视频:MIT线性代数相关课程
相关文章推荐
- 用Python从零实现贝叶斯分类器的机器学习的教程
- My Machine Learning
- 机器学习---学习首页 3ff0
- Spark机器学习(一) -- Machine Learning Library (MLlib)
- 反向传播(Backpropagation)算法的数学原理
- 关于SVM的那点破事
- 也谈 机器学习到底有没有用 ?
- #ML-SDN
- TensorFlow人工智能引擎入门教程之九 RNN/LSTM循环神经网络长短期记忆网络使用
- TensorFlow人工智能引擎入门教程之十 最强网络 RSNN深度残差网络 平均准确率96-99%
- TensorFlow人工智能引擎入门教程所有目录
- Tensorflow 杂记
- 如何用70行代码实现深度神经网络算法
- 机器学习算法比较
- 机器学习Python识别图片验证码原理
- 量子计算机编程原理简介 和 机器学习
- EM算法 - 2 - EM算法在高斯混合模型学习中的应用
- 近200篇机器学习&深度学习资料分享(含各种文档,视频,源码等)
- 已经证实提高机器学习模型准确率的八大方法