前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Matlab开源替代工具Octave基础入门-ML Note27

Matlab开源替代工具Octave基础入门-ML Note27

作者头像
讲编程的高老师
发布2020-08-14 10:38:29
8820
发布2020-08-14 10:38:29
举报

本文是吴恩达《机器学习》视频笔记第27篇,对应第2周第9个视频。

“Octave Tutorial——Basic operations”

01

笔记

前面学了很多的机器学习的理论知识了,但是纸上得来终觉浅,绝知此事要躬行,接下来几个视频一起来学习一些机器学习编程工具Octave的一些基础编码知识。

为什么要选择Octave?

吴老师在以往的机器学习教学中,尝试过很多种编码语言来进行实验,包括C++、Java、Python的Numpy,以及Octave。结果,吴老师发现使用Octave一类的高级语言的时候,学生能高效的学习机器学习的算法、更快速的写出算法原型。

在硅谷的好多需要实际使用机器学习的公司中,他们在算法原型构建阶段都是使用Octave一类的高级语言。等到算法固化,需要生产部署的时候才使用C++、Java来进行重写以提高执行效率。

时间分两种,一种是我们开发人员开发合适的机器学习算法的时间;一种是机器学习算法在解决实际问题时耗费的计算机计算时间。第一种时间,我们通过Octave一类的语言快速构建算法来节约;后一种时间,我们通过C++、Java一类的高效语言重写固化好的机器学习算法来节约。

机器学习领域,常见的编程语言有:Matlab、Octave、Python、Numpy、R。Matlab很好,但是很贵,对我们中国的研究人员还存在被禁用的危险;而Python、R一类的对非计算机专业的同学来说不是特别友好。所以呢,最后Octave成为非常不错的一种选择。

接下来介绍一些基础的Octave操作,更详细的可以去Octave的官网看文档。

启动

在桌面上找到快捷方式“GNU Octave (CLI)”,以命令行的方式启动Octave。

基础运算

做一些加、减、乘、除、幂指数的运算,你会发现和latex里面写数学公式差不多。也不怎么需要考虑数据类型转换啊、地板除啊之类恼人的计算机语法,看上去非常友善。

还可以做一些逻辑运算,比如:

从上面的图,你看出来了吧。判断两个数是否不等于,用的是"~=", 而不是其它语言常用的"!="。另外,注释符号是"%"。用过matlab的同学可能也发现了,它的语法几乎就是照搬Matlab,非常友好。

可以使用”PS1('>>')"命令将Octave前面提示去掉,如下图:

变量

还可以定义变量,像下面这样:

上图中注意,“a=3;",这行命令后面加入了一个分号";",然后Octave下面就不再打印结果出来了。

还可以定义字符串变量,还可以定义一个bool型变量,分别如下图的b、c。

还有类似于Python语言中print函数的存在,disp()函数,disp的使用也是相当的灵活。

上图最后一行的disp中sprintf函数的语法和c语言的语法是不是很像?所以从c语言过渡过来也是很丝滑。

向量和矩阵

定义一个3*2的矩阵:

定义中的分号就是矩阵的换行。

定义向量和定义矩阵本质上是一样的,下面这样是定义一个行向量:

如果定义列向量呢?

还有一种比较有意思的向量的定义方法,下图中的办法可以定义一个从1开始到2结束间隔(步长)为0.1的向量。

或者省略步长:

还可以定义全为1的矩阵:

可以灵活使用ones(m, n)

当然,类似的办法可以用函数定义全0的矩阵,或者随机数矩阵。

灵活使用上面的这些基础操作,可以得到一些比较复杂的数。比如按照公式得到一组随机数,这个随机数如果用randn函数,它们服从高斯分布。

上图得到一个1行10000列的随机数向量,使用hist(w)函数画一下直方图看看:

还可以让直方图的竖条来的更多一点。

定义单位阵的函数是eye().

帮助

Octave的帮助也是很方便的,直接使用help函数即可。

以上就是Octave基础的快速介绍,从下次视频开始将会讲解如何使用Octave来处理数据。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-07-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 讲编程的高老师 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 为什么要选择Octave?
  • 启动
  • 基础运算
  • 变量
  • 向量和矩阵
  • 帮助
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档