Octave教程(六)

作者: SmallRookie | 来源:发表于2017-08-16 21:04 被阅读108次
向量化

对于上图的假设函数h,我们在非向量化的情况下可写出如下代码:

prediction = 0.0;

for j = 1:n+1,
    prediction = prediction + theta(j) * X(j);
end;

注:j从1~n+1是因为在Octave中下标是从1开始,虽然我们手工标注是从0开始的。

但若我们在向量化的情况下可写出如下代码:

prediction = theta' * X

从上述对比中,我们可以看出在向量化的情况下,我们只需一行代码即可完成假设函数h的计算,效率比非向量化的情况下的代码运行效率高。

现在,让我们看看使用C++语言,在非向量化的情况下的代码:

double prediction = 0.0;

for (int j = 0; j <= n; j++)
    prediction += theta[j] * X[j];

然后,我们再看看在向量化的情况下的代码:

double prediction = theta.tanspose() * X

通过上述代码,我们推荐在计算矩阵或向量时进行向量化操作(和使用相应的库函数),使我们代码变得简洁高效。

对于线性回归的梯度下降算法,在非向量化的情况下,我们要分别计算出θ0,θ1,θ2, ······

在向量化的情况下,我们可以按照图中所示的操作写出相关代码:

相关文章

  • Octave教程(六)

    向量化 对于上图的假设函数h,我们在非向量化的情况下可写出如下代码: 注:j从1~n+1是因为在Octave中下标...

  • Octave教程(二)

    如何求矩阵、向量的维数 其中,length()表示求出矩阵或向量的最大维数。 如何导入数据 在导入数据之前,需要用...

  • Octave教程(三)

    矩阵运算 其中,“.”表示元素位运算。 如何求转置矩阵 一些有用的函数 其中,flipud()实现矩阵的上下翻转。

  • Octave教程(四)

    ####### 绘制图表 绘制sin函数图: 结果如图所示: 绘制cos函数图: 结果如图所示: 将两个函数图放置...

  • Octave教程(五)

    控制语句 函数 我们先创建costFunctionJ.m文件,并在其添加如下代码: 然后,我们在Octave的CL...

  • Octave教程(一)

    基本操作 加减乘除和幂次方操作 布尔运算 在Octave的命令行界面,即CLI中,在一条语句的后面添加一个分号,不...

  • Octave教程(1)

    1、Octave简介: Octave 是一款用于数值计算和绘图的开源软件。和 Matlab 一样,Octave 尤...

  • Octave使用教程

  • 【机器学习】-Week2 6.Octave/Matlab Res

    Octave/MATLAB resources Octave Resources At the Octave co...

  • Octave简明教程

    这里就不介绍octave是什么了,如果你真心想学习ML的话,octave是一个可以帮助你进行计算的强大工具 符号 ...

网友评论

    本文标题:Octave教程(六)

    本文链接:https://www.haomeiwen.com/subject/harwrxtx.html