import numpy as np
from .metrics import r2_scoreclass SimpleLinearRegression:def __init__(self):"""初始化Simple Linear 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 Regressor 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"x_mean = np.mean(x_train)y_mean = np.mean(y_train)self.a_ = (x_train - x_mean).dot(y_train - y_mean) / (x_train - x_mean).dot(x_train - x_mean)#向量化 点乘运算self.b_ = y_mean - self.a_ * x_meanreturn selfdef predict(self, x_predict):"""给定待预测数据集x_predict,返回表示x_predict的结果向量"""assert x_predict.ndim == 1, \"Simple Linear Regressor 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,返回x的预测结果值"""return self.a_ * x_single + self.b_def score(self, x_test, y_test):"""根据测试数据集 x_test 和 y_test 确定当前模型的准确度"""y_predict = self.predict(x_test)return r2_score(y_test, y_predict)def __repr__(self):return "SimpleLinearRegression()"

衡量线性回归模型误差的三种方式

def mean_squared_error(y_true, y_predict):"""计算y_true和y_predict之间的MSE"""assert len(y_true) == len(y_predict), \"the size of y_true must be equal to the size of y_predict"return np.sum((y_true - y_predict)**2) / len(y_true)def root_mean_squared_error(y_true, y_predict):"""计算y_true和y_predict之间的RMSE"""return sqrt(mean_squared_error(y_true, y_predict))def mean_absolute_error(y_true, y_predict):"""计算y_true和y_predict之间的RMSE"""assert len(y_true) == len(y_predict), \"the size of y_true must be equal to the size of y_predict"return np.sum(np.absolute(y_true - y_predict)) / len(y_true)

计算最终模型预测准确度R方

def r2_score(y_true, y_predict):"""计算y_true和y_predict之间的R Square"""return 1 - mean_squared_error(y_true, y_predict)/np.var(y_true)

转载于:https://www.cnblogs.com/Erick-L/p/9031064.html

简单线性回归预测实现相关推荐

  1. python预测股票价格_python用线性回归预测股票价格

    原标题:python用线性回归预测股票价格 线性回归在整个财务中广泛应用于众多应用程序中.在之前的教程中,我们使用普通最小二乘法(OLS)计算了公司的beta与相对索引的比较.现在,我们将使用线性回归 ...

  2. python线性回归预测pm2.5_李宏毅 线性回归预测PM2.5

    作业说明 给定训练集train.csv,要求根据前9个小时的空气监测情况预测第10个小时的PM2.5含量. 训练集介绍: (1):CSV文件,包含台湾丰原地区240天的气象观测资料(取每个月前20天的 ...

  3. python线性回归预测pm2.5_线性回归预测PM2.5----台大李宏毅机器学习作业1(HW1)

    一.作业说明 给定训练集train.csv,要求根据前9个小时的空气监测情况预测第10个小时的PM2.5含量. 训练集介绍: (1).CSV文件,包含台湾丰原地区240天的气象观测资料(取每个月前20 ...

  4. 大数据线性回归预测学生成绩

    通过训练集训练和测试集测试来生成多个线性模型,从而预测学生成绩,本文所有代码请点击Github 1. 实验数据背景 1.1 数据来源 本项目的数据来源于kaggle.com,数据集的名称为Studen ...

  5. python实现一元线性回归预测电影票房收入

    数据集请点赞关注收藏后私信博主要 利用回归分析来确定多个变量的依赖关系的方程称为回归方程.如果回归方程所呈现的图形为一条直线,则称为线性回归方程 y=kx+b即称为一元线性回归,也就是大家初中学的一次 ...

  6. 机器学习:使用scikit-learn的线性回归预测Google股票

    这是机器学习系列的第一篇文章. 本文将使用Python及scikit-learn的线性回归预测Google的股票走势.请千万别期望这个示例能够让你成为股票高手.下面按逐步介绍如何进行实践. 准备数据 ...

  7. 【视频】什么是Bootstrap自抽样及应用R语言线性回归预测置信区间实例|数据分享

    最近我们被客户要求撰写关于Bootstrap的研究报告,包括一些图形和统计输出. 自抽样统计是什么以及为什么使用它? 本文将自抽样方法与传统方法进行比较,并了解它为何有用.并在R语言软件中通过对汽车速 ...

  8. 线性回归预测波士顿房价

    波士顿房价数据集(Boston housing prices dataset) #加载数据集 from sklearn import datasets import sklearn from skle ...

  9. python多元线性回归预测法,Python-Tensorflow2.3.0-多元线性回归预测(学习笔记)

    Python-Tensorflow2.3.0-多元线性回归预测(学习笔记) Python-Tensorflow2.3.0-多元线性回归预测(学习笔记) 编译器环境:win10-Anaconda3-py ...

最新文章

  1. Windows 根据进程名杀死进程 kill
  2. Struts2中表单与Action传递数据三种方式
  3. 5.2 matlab多项式计算(多项式的四则运算、求导、求值、求根)
  4. Python小知识: List的赋值方法,不能直接等于
  5. gradle镜像配置:使用阿里云仓库服务的代理仓库地址代替jcenter()、mavenCentral()及google()
  6. spring入门-----spring中遍历各种集合
  7. html 圆球的百分比,HTML5 很酷的球形器皿中水波状的进度条
  8. P4414 [COCI2006-2007#2] ABC(python3实现)
  9. Java 中的5个代码性能提升技巧,最高提升近10倍
  10. 用女朋友动态图做微信二维码,小白都会
  11. webpack2 项目
  12. centos8安装mysql_Linux宝塔面板安装
  13. js模拟select控件
  14. SQL教程——TCL语言
  15. go 并发编程之-工作池
  16. 不懂zencart该如何找出路-新手soho建站指南
  17. 一次 Young GC 的优化实践(FinalReference 相关)
  18. 学习嵌入式Linux开发——RK3288开发板学习规划及目标
  19. 十一大开源机器人平台
  20. 消息队列之RabbitMQ原理

热门文章

  1. vue.js 三种方式安装--npm安装
  2. 设计过程中常见的 10 个小问题
  3. 洛谷 P3521 [POI2011]ROT-Tree Rotations 解题报告
  4. jquery append 动态添加的元素事件on 不起作用的解决方案
  5. 怎么说呢。留个纪念,关于字符串的重载
  6. 网易2017校招编程:优雅的点
  7. SQLServer常见性能问题
  8. eclipse和myeclipse中如何关闭自动补全括号,花括号,双引号等功能
  9. python的一些基本语法
  10. 乐在其中设计模式(C#)系列文章索引