核心两行代码,
向量化
比较两者运算速度
运行速度提升100倍

#性能测试
#性能测试
m = 10000000
big_x = np.random.random(size=m)
print(big_x)
big_y = big_x * 2.0 + 3.0 + np.random.normal(size=m)

向量化的

%timeit reg2.fit(big_x,big_y)

没向量化的

%timeit reg1.fit(big_x,big_y)
11.8 s ± 249 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)
134 ms ± 3.2 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)
num = (x_train - x_mean).dot(y_train - y_mean)
d = (x_train - x_mean).dot(x_train - x_mean)
class Simple_linear_Regression2:def __init__(self):"""初始化Simple Line Regression模型"""self.a_ = Noneself.b_ = Nonedef fit(self,x_train,y_train):"""根据训练数据集x_train和y_train训练Simple_linear_Regression模型"""assert x_train.ndim == 1,\"Simple Linear Regression can only solve single feature training data"assert len(x_train) == len(y_train),\"the size of x_train must be equal to the size of y_train"# self.x_train = x_train# self.y_train = y_trainx_mean = np.mean(x_train)y_mean = np.mean(y_train)num = 0.0d = 0.0#使用向量化运算num = (x_train - x_mean).dot(y_train - y_mean)d = (x_train - x_mean).dot(x_train - x_mean)# for x,y in zip(x_train,y_train):#     num += (x - x_mean) * (y - y_mean)#     d += (x -x_mean) ** 2self.a_ = num / d #a_一般这样写是给函数里面计算得出的属性的self.b_ = y_mean - self.a_ * x_meanreturn self#这块自己写的没sklearn内味儿# def predict(self,x_predict):#     """给定待测数据集x_predict,返回表示x_predict的结果向量"""#     y_predict = [ x * self.a_ + self.b_ for x in x_predict]#     return y_predict#重新写的def predict(self, x_predict):"""给定待测数据集x_predict,返回表示x_predict的结果向量"""assert x_predict.ndim == 1,\"Simple Linear Regression can only solve single feature training data."assert self.a_ is not None and self.b_ is not None,\"must fit before predict!"return np.array([self._predict(x)  for x in x_predict])def _predict(self,x_single):"""给定单个待遇测数据x_single,返回x_single的预测结果值"""return self.a_ * x_single + self.b_def __repr__(self):return 'Simple_linear_Regression2'




Python机器学习:线型回归法04向量化运算相关推荐

  1. python机器学习——支持向量机回归与波士顿房价案例

    支持向量机回归与波士顿房价案例 一.从传统回归模型到支持向量回归模型 二.核函数 三.常用的几种核函数 四.SVM 算法的优缺点 五.建模实例 (1)导入数据 (2)划分训练集测试集 (3)数据标准化 ...

  2. Python机器学习:线型回归法05衡量线性回归法的指标MES,RMS,MAE

    import numpy as np import matplotlib.pyplot as plt from sklearn import datasets 数据 boston = datasets ...

  3. Python机器学习:线型回归法008实现多元线性回归

    使用封装的:LinearRegression import numpy as np from Simple_linear_Regression.metrics import r2_score clas ...

  4. Python机器学习:线型回归法007多元线性回归和正规方程的解

  5. Python机器学习:线型回归法06最好的衡量线型回归法的指标RSquared

    代码实现首先使用sklearn.metrics中的r2.score 依然使用波士顿房价数据集 #使用sklearn from sklearn.metrics import r2_score r2_sc ...

  6. Python机器学习:线型回归法02最小二乘法

    损失函数 求极值,求导 把b带入 整理一下 现在看起来两个算式复杂度差不多..然而实现起来还是有区别

  7. Python机器学习:线型回归法01简单线型回归法

    横轴纵轴都是样本特征 特征只有一个 找一个可导的损失函数 a,b未知数,xi,yi是已知的. 损失函数效用函数(目标函数) 损失函数尽可能小 效用函数尽可能大 本质,模型不同损失函数不同. 最优化原理 ...

  8. 机器学习基础-标准方程法-04

    标准方程法Normal Equation import numpy as np from numpy import genfromtxt import matplotlib.pyplot as plt ...

  9. 【Python机器学习】回归模型:推土机售价预测

    文章目录 使用机器学习预测推土机的售价 零.导入模块 一.EDA 1.1 查看基本信息 1.2 特征类型转换 1.3 联表+特征初筛 1.3.1 删除包含重复信息的特征 1.3.2 fiBaseMod ...

最新文章

  1. iredmail 邮件服务器搭建
  2. python和perl区别_对比平台--Perl与Python之间的差异
  3. element ui 设置全局样式不起作用
  4. 单链表——判断两个单链表(无头节点)是否相交,如果相交,返回单链表的第一个结点
  5. wampserver 搭建 php环境 运行方法
  6. Linux笔记-centos7源码安装Mysql5.6(图解详细)
  7. 【Vue.js源码解析 二】-- 虚拟 DOM
  8. 中国老工业基地吉林对外贸易重回历史高水平
  9. linux python pymssql,如何在UbuntuLinux上将pymssql安装到Python3.4而不是2.7?
  10. java Cannot find the class file for javax.servlet.http.HttpServletRequest.错误解决
  11. python编写脚本方法_python写dnf脚本录制自己点击
  12. 21王道计算机网络pdf百度云,王道计算机网络第五章.pdf
  13. 软件设计师中级考试备考资料
  14. 2021年十佳返利优惠券平台排名如下
  15. ABAP FIELD-SYMBOLS
  16. Pytorch创建模型-小试牛刀
  17. 有关电子商务平台的个人学习总结
  18. 晋升项目经理一个月,我想离职.........
  19. 利用requests模块爬取任意城市肯德基门店地址
  20. 01-初始化Vite项目

热门文章

  1. 2019 ACM/ICPC 南昌站 G,拉格朗日插值
  2. 【POJ1177】【HDU1828】【codevs2149】矩形面积周长并
  3. 贴一下目前的工作任务列表
  4. 10.傅里叶变换——正弦之和、时间和频率_2
  5. python 教材为什么喜欢用spam举例_斯坦福大学教授列举出的python入门最容易犯的错误,你中招了吗?...
  6. bzoj3124 [Sdoi2013]直径 直径+树形dp
  7. 输入长度_CAD怎么测量长度?
  8. 【英语学习】【Level 08】U04 What I love L1 What's on your playlist?
  9. python中函数的可变参数_Python中函数的参数定义和可变参数
  10. python写tcp服务器_用Python实现一个简单的多线程TCP服务器的教程