Octave教程(六)
来源:互联网 发布:cst仿真软件价格 编辑:程序博客网 时间:2024/06/08 00:17
向量化
对于上图的假设函数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, ······
在向量化的情况下,我们可以按照图中所示的操作写出相关代码:
阅读全文
0 0
- Octave教程(六)
- Octave教程(一)
- Octave教程(二)
- Octave教程(三)
- Octave教程(四)
- Octave教程(五)
- Octave教程 Octave Tutorial
- Octave安装教程
- Octave安装教程
- Octave教程一:基本操作
- Octave教程四:Plotting Data
- 机器学习(六)梯度下降的优化算法和matlab/octave中的应用
- Octave
- Octave
- Draw2D教程(六)
- Draw2D教程(六)
- Angular2教程(六)
- 斯坦福机器学习笔记 第2周 五、Octave教程(一)
- Octave教程(二)
- Octave教程(三)
- Octave教程(四)
- 使用.net core ABP和Angular模板构建博客管理系统(实现自己的业务逻辑)
- Octave教程(五)
- Octave教程(六)
- 编程作业(一)
- 逻辑回归(一)
- 【中国大学MOOC-陈越、何钦铭-数据结构-2017秋】最大子列和问题
- 逻辑回归(二)
- 逻辑回归(三)
- 正则化
- 编程作业(二)
- 神经网络:表达(一)