赞
踩
CSDN话题挑战赛第2期
参赛话题:学习笔记
线性模型:即两个变量之间是一次函数关系的模型预测,为一元线性回归模型;而当所选取的x为多元时(例如x为多元的情况:房屋价格要考虑,位置、面积、小区环境、卧室数量等等),则多元线性回归就要涉及到向量的概念。
通常情况下,向量的表达形式更加简洁,而且向量运算的效率通常优于使用循环进行计算,故笔者通过使用Numpy和for循环的方式进行了相关的对比。
线性回归模型:
成本函数:
梯度下降算法:
上面两个式子的推导过程:
二、代码实例
比较利用Numpy和直接用for循环,向量运算的运算效率
1、利用Numpy库
- import numpy as np
- import datetime
-
- f = 0
- b = 9
- x = range(1, 100000)
- w = range(1, 100000)
-
- c = datetime.datetime.now()
- f = np.dot(w, x) + b
- c1 = datetime.datetime.now()
- print(f, c1-c)
2、使用for循环
- import datetime
-
- f = 0
- b = 9
- w = range(0, 100000)
- x = range(0, 100000)
- c = datetime.datetime.now()
- for j in range(0, 100000):
- f = f + w[j] * x[j]
- f = f + b
- # print(f, type(f))
- c1 = datetime.datetime.now()
- print(f, c1 - c)
运行速度如下:
运行时间利用Numpy比使用for循环时间少0.09s
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。