




虽然没有强制要求,最好还是通过缩进来表达逻辑关系

整个if结束了才用end
因为之前是按照上课演示的敲,发现每个条件后面都会跟一个逗号,所以测试一下没有逗号是否可以运行







向量化(Vectorization):
向量化是指将数据通过矩阵和向量的方式进行计算,使得过程更易于理解也更易于编写
对于很多数据,如果直接计算则需要多个for循环,不仅麻烦还不好理解,以假设函数为例:

在未向量化之前,我们若想求h(x),代码如上图中一般用过for循环,不易理解且繁琐,然而若通过向量化,直接θ'*X得到假设值的向量矩阵
下求梯度下降法的向量化:
假设特征数为2,假设方程为h(x)
此时要不断循环

于是对于θ中的每一项都得写个for循环进行赋值
此时将整个赋值过程,改为:

其中 α 仍为学习速率,是一个实数,而 θ 和 δ 都是一个n+1维的向量,其中 θ为:

根据定义 δ 应为:

改为矩阵表示为:

左边的矩阵就是X的矩阵的转置,而右边的矩阵可通过h(x)的向量减去y得到,最终计算的过程应为:

一步可以直接计算,非常方便
网友评论