Python机器学习:线型回归法04向量化运算
核心两行代码,
向量化
比较两者运算速度
运行速度提升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向量化运算相关推荐
- python机器学习——支持向量机回归与波士顿房价案例
支持向量机回归与波士顿房价案例 一.从传统回归模型到支持向量回归模型 二.核函数 三.常用的几种核函数 四.SVM 算法的优缺点 五.建模实例 (1)导入数据 (2)划分训练集测试集 (3)数据标准化 ...
- Python机器学习:线型回归法05衡量线性回归法的指标MES,RMS,MAE
import numpy as np import matplotlib.pyplot as plt from sklearn import datasets 数据 boston = datasets ...
- Python机器学习:线型回归法008实现多元线性回归
使用封装的:LinearRegression import numpy as np from Simple_linear_Regression.metrics import r2_score clas ...
- Python机器学习:线型回归法007多元线性回归和正规方程的解
- Python机器学习:线型回归法06最好的衡量线型回归法的指标RSquared
代码实现首先使用sklearn.metrics中的r2.score 依然使用波士顿房价数据集 #使用sklearn from sklearn.metrics import r2_score r2_sc ...
- Python机器学习:线型回归法02最小二乘法
损失函数 求极值,求导 把b带入 整理一下 现在看起来两个算式复杂度差不多..然而实现起来还是有区别
- Python机器学习:线型回归法01简单线型回归法
横轴纵轴都是样本特征 特征只有一个 找一个可导的损失函数 a,b未知数,xi,yi是已知的. 损失函数效用函数(目标函数) 损失函数尽可能小 效用函数尽可能大 本质,模型不同损失函数不同. 最优化原理 ...
- 机器学习基础-标准方程法-04
标准方程法Normal Equation import numpy as np from numpy import genfromtxt import matplotlib.pyplot as plt ...
- 【Python机器学习】回归模型:推土机售价预测
文章目录 使用机器学习预测推土机的售价 零.导入模块 一.EDA 1.1 查看基本信息 1.2 特征类型转换 1.3 联表+特征初筛 1.3.1 删除包含重复信息的特征 1.3.2 fiBaseMod ...
最新文章
- iredmail 邮件服务器搭建
- python和perl区别_对比平台--Perl与Python之间的差异
- element ui 设置全局样式不起作用
- 单链表——判断两个单链表(无头节点)是否相交,如果相交,返回单链表的第一个结点
- wampserver 搭建 php环境 运行方法
- Linux笔记-centos7源码安装Mysql5.6(图解详细)
- 【Vue.js源码解析 二】-- 虚拟 DOM
- 中国老工业基地吉林对外贸易重回历史高水平
- linux python pymssql,如何在UbuntuLinux上将pymssql安装到Python3.4而不是2.7?
- java Cannot find the class file for javax.servlet.http.HttpServletRequest.错误解决
- python编写脚本方法_python写dnf脚本录制自己点击
- 21王道计算机网络pdf百度云,王道计算机网络第五章.pdf
- 软件设计师中级考试备考资料
- 2021年十佳返利优惠券平台排名如下
- ABAP FIELD-SYMBOLS
- Pytorch创建模型-小试牛刀
- 有关电子商务平台的个人学习总结
- 晋升项目经理一个月,我想离职.........
- 利用requests模块爬取任意城市肯德基门店地址
- 01-初始化Vite项目
热门文章
- 2019 ACM/ICPC 南昌站 G,拉格朗日插值
- 【POJ1177】【HDU1828】【codevs2149】矩形面积周长并
- 贴一下目前的工作任务列表
- 10.傅里叶变换——正弦之和、时间和频率_2
- python 教材为什么喜欢用spam举例_斯坦福大学教授列举出的python入门最容易犯的错误,你中招了吗?...
- bzoj3124 [Sdoi2013]直径 直径+树形dp
- 输入长度_CAD怎么测量长度?
- 【英语学习】【Level 08】U04 What I love L1 What's on your playlist?
- python中函数的可变参数_Python中函数的参数定义和可变参数
- python写tcp服务器_用Python实现一个简单的多线程TCP服务器的教程