在之前关于机器学习的BLOG中,我很多次都提到了一个比较冷门的编程语言——Octave,在这篇BLOG中,就让我们走进Octave的大门吧。 Octave简介 Octave是一种编程语言,旨在解决线性和非线性的数值计算问题。Octave为GNU项目下的开源软件,早期版本为命令行交互方式,4.0.0版本发布基于QT编写的GUI交互界面。但在我们的学习中,更多地还是使用我们的命令行交互形式,...
在之前的BLOG里,我们介绍了通过梯度下降法来解决回归问题。在这篇BLOG中,就让我们学习一种新的解析方法——正规方程法吧。 正规方程法 到之前的BLOG中,我们一直在使用梯度下降法来解决线性回归问题,也就是使用的迭代算法,经过很多步迭代来计算最值所对应的 θ 。但正规方程法(Normal Equation) 提供了一种求 θ 的解析解法,也就是可以一次求解最优时 θ 的值。 在讲正规方...
为了求解回归问题,我们一般采取梯度下降法来实现。但是往往因为一些优化还不到位,导致我们的梯度下降法用了很长时间才达到我们预期的结果,下面,就让我们一同康康梯度下降法的一些优化方法吧! 特征缩放 首先,让我们一同来看看一个叫做特征缩放 (feature scaling) 的常用方法。其主要思想就是 当我们在一个问题中涉及到多个特征时,如果你能确保这些特征都处在一个相近的范围,那梯度下降法就...
在之前的BLOG中我们介绍了单变量的线性回归问题及其解决方法——梯度下降算法,在这篇BLOG中,我们将会从单元走向多元,探讨进一步多元的线性回归问题,并以此为基础学习多项式回归。 多元线性回归 在之前的BLOG中,我们初步介绍了线性回归,特别是单元线性回归,但其实在实际的生活情景中,更多的情况我们往往不止一个变量,所以现在就让我们看看多元线性回归是如何操作的。 在之前我们学习过的线性回归...
在上一篇BLOG中我们介绍了线性回归模型和代价函数,下面我们就来一同学习最小化代价函数的一种算法——梯度下降算法吧。 什么是梯度下降算法 我们先回顾一下我们的问题: 在这里,为了简化问题,我们有一个只关于两个参数的函数J(θ0, θ1),它可以是一个线性回归的代价函数,也可以是一些其他函数,我们的目标是要使其最小化,这时我们就可以用到我们的梯度下降算法。 我们要做的是,随机初始化定义一...