Python3入门机器学习

3.4 向量化

1.向量化运算:
在这里插入图片描述

在上一节中,求解参数a时,使用的for循环依次求解出分子和分母的m项都是什么,然后将它们相加在一起。而使用for循环这种方式性能相对来讲是比较低的,如果有办法将这个计算变为向量计算,那么性能就会大大的提升,这就是向量化运算的意义。
在a的式子里,仔细观察分子和分母都属于以下这样一种模式:
在这里插入图片描述
而w是一个向量,v也是一个向量。有了这样两个向量,将它们进行点乘,就是两个向量对应的项相乘再相加。这样一来就可以使用numpy中向量的运算法则,非常快速高效。
在这里插入图片描述
2.具体实现代码:
将之前的for循环做如下的替换:

num = (x_train - x_mean).dot(y_train - y_mean)    #for循环改为向量化运算
d = (x_train - x_mean).dot(x_train - x_mean)      #其中点乘的意义为相乘再相加

其中dot函数为点乘。

3.向量化实现的性能测试:
在这里插入图片描述
由此可见使用向量化运算比使用for循环的效率提高了几十倍。

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐