ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

机器学习-吴恩达-学习自用笔记4

机器学习-吴恩达-学习自用笔记4 多特征线性回归多元线性回归多特征线性回归多元线性回归使线性回归更快、更强大在最初的房价预测问题中只有一个特征即 房屋的价格但是实际上我们可以有更多的特征来更好的描述这个问题如下图。图中表格的第一行为不同的特征即“房屋大小”“卧室数量”“楼梯数量”等其中的符号解释如下xjx_jxj​表示“第j个特征” ;nnn表示特征的数量 ;x⃗(i)\vec{x}^{(i)}x(i)表示包含第iii个特征样本的所有向量 ;xj(i)x_j^{(i)}xj(i)​表示第j个特征中第i个训练样本的值。如果用到了这些内容现在我们的回归模型变成什么了按照最初的那个公式来走此刻加入新的特征模型就已经变样了。不同的xxx代表着不同的变量而前面的数字则代表着不同特征所对应或者说所学习/预测的值在这里我们继续吧上述图片的最后一条公式换个更简单的样式其中bbb是个数字w,xw,xw,x分别是向量。w⃗[w1,w2,w3,...,wn]\vec{w}[w_1,w_2,w_3,...,w_n]w[w1​,w2​,w3​,...,wn​]x⃗[x1,x2,x3,...,xn]\vec{x}[x_1,x_2,x_3,...,x_n]x[x1​,x2​,x3​,...,xn​]即fw⃗,b(x⃗)w⃗⋅x⃗bf_{\vec{w},b}(\vec{x})\vec{w}·\vec{x}bfw,b​(x)w⋅xb其中的 “ · ”表示向量对应的值相互乘积即上述图片这便是多特征线性回归多元线性回归实现它的一个技巧叫“向量化”。向量化让我们从一个例子出发我们可以看到这个例子中的特征的数量为3并且这里利用了一个叫numpy的Python数值线性代数库需要注意的是线性代数中的第一个值由 1 表示而 python 代码中第一个由 0 表示( w[0] 表示向量的第一个值)当我们不用向量化时这里的代码估计都能看懂就是老实相乘但是也能看出来当n越来越大时计算的复杂度也会越来越高。这里我们用了一个for循环可以发现会更简单些但是这仍然达不到我们想要的速度当然这也不算向量化。当我们用向量化时上面的是数学公式下面的是对应的代码实现一行这个numpy函数通过将两个向量相互点击来实现向量化。可以发现1.向量化让代码更加简洁 2.向量化让代码运行更加高效。之所以 “np.函数” 能够速度更快是因为 “np.函数 能够利用计算机中的并行硬件为什么向量化会更快正常计算是从前往后一步一步的计算公式而向量化的代码在GPU/CPU中是被 “拿出来” 同时计算并行计算的那样的话就使得你在大规模数据操作中的速度更快。再看最后一个例子对于求上述公式在没有向量化的情况下我们最好的方法是写一个for循环函数一个公式一个公式的计算而在向量化代码中计算机硬件一次性拿到w和d的16个数同时计算这就比for循环快得多了。
返回列表