乐趣区

关于机器学习:机器学习4吴恩达笔记

Octave 语言前言

  • 在硅谷的大规模机器学习中,人们个别先用 Octave 实现算法的根本想法,而后用其余语言(java、C++)改写。这是因为 python、numpy、r 语言等机器学习语言绝对于 Octave、matlab 更繁琐,先应用 octave 可能提高效率

Octave 命令

https://blog.csdn.net/u011415481/article/details/49969447
https://blog.csdn.net/u011415481/article/details/49969447

数学运算命令

逻辑运算命令

  • 不等于符号为~=, 不是!=
  • xor 示意异或运算
变量申明命令

  • 如果咱们心愿调配变量,然而不心愿在屏幕上显示后果,能够在申明后加分号,克制打印输出
  • disp 函数:能够间接将要显示的字符放入括号中
  • sprintf 函数:其表白格局为:sprint(‘%d’,a);其中 %d 为数字,%s 为字符串
  • 然而咱们发现,sprintf 表白会将字符加上单引号,而用 disp 表白不会有单引号。disp(sprintf('%s',name))联结 disp 和 sprintf 函数,能够防止显示字符串时呈现单引号
向量矩阵命令



  • 申明矩阵时,分号 示意矩阵换行
  • 申明向量,用空格 隔开是行向量,用分号 隔开是列向量
  • ones 是生成各元素不为 0 且相等矩阵的快捷方式,zeros 是各元素为 0 的矩阵,eyes 构建单位矩阵
  • rand 生成数值介于 0~1 之间的随机数;randn 高斯随机变量,产生规范正态分布的随机数
  • hist 绘制直方图命令。将元素平均分到几个等距离的容器中(默认为 10 个),并且返回每个容器的元素个数
如何挪动、加载、操作数据

  • size 返回矩阵的行数和列数,能够都返回,也能够抉择返回某一个
  • length 返回向量的维度,若为矩阵,则返回矩阵的最大维度。咱们个别不将其用于矩阵


  • Octave 初始时有一个默认门路,pwd 查看;cd‘’转到其余目录;ls 是 linux 中的命令,查看当下目录的文件
  • who 查看当前工作空间的所有变量,whos 则是具体查看,能够看到数据维度、占用的内存空间、数据类型等
  • clear 用来革除当前工作空间存储的所有变量,然而若咱们先把变量 v 保留在文件中,在 load hello.mat 后能够间接读取 v 变量(v 变量曾经存在了 hello.mat 文件中)
  • save 命令把数据依照二进制模式压缩存储,而且文件越大,压缩的幅度越大。咱们也能够通过把数据用 acsii 存成文本文档,把数据存成一个人能看懂的模式
数据计算命令
  • .*将两个矩阵中雷同地位元素相乘;./将矩阵中雷同地位元素相除
  • log是求 e 的对数,exp是求 e 的指数,abs求绝对值
  • -V是每个元素去相反数,V+1是每个元素都 +1
  • max(A) 示意求出 A 中的最大值,然而须要留神,如果 A 是矩阵的话,是对每一列求出最大值,如果 A 是向量,则是间接求出最大值

向量化思维的重要意义

  • 无论 octave、matlab 还是 python,都自带各种线性代数库。这些库通过了高度优化,容易浏览和获取。如果咱们在实现机器学习算法时,能好好利用这些库,而不是本人重构函数,不仅能进步工作效率,而且能放慢算法运行速度,用更少的代码实现更多的性能
  • 下图是两种写法,显然后者简略,这充沛表明向量化实现简略无效,因而向量化思维是重要的

退出移动版