[云炬python3玩转机器学习] 5-7,8 多元线性回归正规解及其实现

 

08 实现我们自己的 Linear Regression
import numpy as np
import matplotlib.pyplot as plt
from sklearn import datasets
import datetime;print("Run by CYJ,",datetime.datetime.now())
Run by CYJ, 2022-01-20 20:06:04.130127
boston = datasets.load_boston()X = boston.data
y = boston.targetX = X[y < 50.0]
y = y[y < 50.0]
X.shape
(490, 13)
from playML.model_selection import train_test_splitX_train, X_test, y_train, y_test = train_test_split(X, y, seed=666)
使用我们自己制作 Linear Regression
代码参见 这里from playML.LinearRegression import LinearRegressionreg = LinearRegression()
reg.fit_normal(X_train, y_train)
LinearRegression()
reg.coef_
array([-1.20354261e-01,  3.64423279e-02, -3.61493155e-02,  5.12978140e-02,-1.15775825e+01,  3.42740062e+00, -2.32311760e-02, -1.19487594e+00,2.60101728e-01, -1.40219119e-02, -8.35430488e-01,  7.80472852e-03,-3.80923751e-01])
reg.intercept_
34.11739972320593
reg.score(X_test, y_test)
0.8129794056212907

  封装的LinearRegression.py

import numpy as np
from .metrics import r2_scoreclass LinearRegression:def __init__(self):"""初始化Linear Regression模型"""self.coef_ = Noneself.intercept_ = Noneself._theta = Nonedef fit_normal(self, X_train, y_train):"""根据训练数据集X_train, y_train训练Linear Regression模型"""assert X_train.shape[0] == y_train.shape[0], \"the size of X_train must be equal to the size of y_train"X_b = np.hstack([np.ones((len(X_train), 1)), X_train])self._theta = np.linalg.inv(X_b.T.dot(X_b)).dot(X_b.T).dot(y_train)self.intercept_ = self._theta[0]self.coef_ = self._theta[1:]return selfdef predict(self, X_predict):"""给定待预测数据集X_predict,返回表示X_predict的结果向量"""assert self.intercept_ is not None and self.coef_ is not None, \"must fit before predict!"assert X_predict.shape[1] == len(self.coef_), \"the feature number of X_predict must be equal to X_train"X_b = np.hstack([np.ones((len(X_predict), 1)), X_predict])return X_b.dot(self._theta)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 "LinearRegression()"

封装的metrics.py

import numpy as np
from math import sqrtdef accuracy_score(y_true, y_predict):"""计算y_true和y_predict之间的准确率"""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) / len(y_true)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之间的MAE"""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)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)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/38934.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

手机号验证码登录的思路

引言 当前很多web端的应用登录方式主要分为以下几种&#xff1a; 账号密码登录手机号验证码登录扫码登录 这里我主要说一下我对于手机号验证码登录的思路&#xff0c;如果有遗漏或者差错的地方&#xff0c;请指正&#xff1b; 整体流程 大致流程如下&#xff1a; 大致就是…

手机验证码登录,账号登录结合

本项目基于腾讯外包框架&#xff08;wei框架&#xff09; 地址&#xff1a;https://github.com/twinh/wei/tree/master/docs/zh-CN#wei HTML页面&#xff1a; 【基于bootstrap前端框架】 头部&#xff1a;<ul id"js-reset-tabs" class"nav tab-underline…

手机号验证登录用例

手机号验证登录 1.手机号验证登录是我们现在比较常见的登录方式&#xff0c;下面分享一下基本的用例的编写。能帮助您是我的荣幸&#xff0c;不喜勿喷&#xff0c;谢谢&#xff01;

手机号验证码登录

登录入口 1.app 正常登录入口 2.app 网页登录&#xff0c;比如分享直播卡片时&#xff0c;进入直播间需要先进行登录 3.pc 登录 一&#xff0c;app常见的登录方式 1.手机号验证码登录 2.用户名密码登录 3.一键登录 二&#xff0c;手机验证码登录示意图 三&#xff0c;流…

chatgpt赋能python:Python代码的快捷键:让编程速度更加快速高效

Python代码的快捷键&#xff1a;让编程速度更加快速高效 Python是一种面向对象、直译式计算机程序设计语言&#xff0c;备受程序员喜爱。虽然Python本身已经趋于简洁易读&#xff0c;但使用Python代码编辑器的快捷键可以进一步提高编程效率&#xff0c;帮助合理利用时间。 为…

chatgpt赋能python:Python实现滚动小球

Python实现滚动小球 Python是一种高级编程语言&#xff0c;可以用于开发各种类型的应用程序。在此我们将介绍如何使用Python编写代码实现滚动小球。这个小球会在屏幕上滚动&#xff0c;给用户一个视觉效果。 实现滚动小球的Python代码 import pygameBLACK (0, 0, 0) WHITE …

流浪地球2的科学幻想与现实中的未来计算机科技

作为一个科幻迷、《三体》迷&#xff0c;从小时候第一次看《珊瑚岛上的死光》开始&#xff0c;一直期待一部国产科幻电影。等待了40余年&#xff0c;有生之年终于如愿以偿。 周末二刷了《流浪地球2》。丁老师认为这部科幻电影已经超越了1&#xff0c;以及原著&#xff0c;成为…

还在为投稿发愁吗?ICCVIT 2023,一个计算机、视觉与智能技术国际会议

◆ChatGPT热潮带来的行业革新大行其道&#xff0c;相关区块链、信息安全、视觉、机器学习....产业必将带来诸多变革。 本文为大家梳理了近期可投的4则EI检索的国际会议&#xff0c;均可推荐发表SCI&#xff0c;还有超多IEEE Fellow主讲&#xff0c;不仅涵盖计算机各个学科方向&…

不刷卡,不扫码,微信推出刷掌支付;Meta将再裁员6000人;AI“黑箱”被打开?谷歌找到大模型能力涌现机制|极客头条...

「极客头条」—— 技术人员的新闻圈&#xff01; CSDN 的读者朋友们早上好哇&#xff0c;「极客头条」来啦&#xff0c;快来看今天都有哪些值得我们技术人关注的重要新闻吧。 整理 | 梦依丹 出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09; 一分钟速览新闻点&#…

Chat-GPT有感

Chat-GPT有感 1、Chat-GPT是什么&#xff1f; ​ 2023年当红炸子鸡非Chat-GPT莫属&#xff0c;或许我们即将站在历史的开端、站在人工智能涌现的开端、站在科技百花齐放的开端&#xff0c;我也想问问Chat-GPT&#xff0c;它到底是什么呢&#xff1f; GPT全称为Generative Pre…

前端多语言开发,如何中英文切换

本文以vue为例&#xff1a; 在vue项目中配置两个js文件&#xff0c;一个中文一个英文 将main.js中引入配置好的文件 添加切换中英文的按钮 在methods中写入点击事件 js文件中&#xff0c;把需要的中英文分别写入 在需要的页面中写入 但需要注意的是&#xff0c;在标签中使用$t…

【TypeScript入门】了解TypeScript的工作流程

走进“前端的未来”TS——了解TS的工作流程 文章简介主要内容1 TypeScript工作流程1.1 图示简单解释1.2 理顺区分JS与其他语言 2 如何用TypeScript运行web2.1 为项目添加html文件2.2 用npm高效管理前端项目2.3 npm项目依赖 summary下期预告【基础入门】《前端的未来——TypeScr…

vue2实现中英文切换

简单的使用&#xff08;应用场景&#xff1a;少量几个页面的中英文切换&#xff09; 1、安装 vue-i18n依赖 yarn add vue-i18n 或者 npm install vue-i18n --save-dev 2、在src/components下新建文件夹language&#xff0c;并在文件夹language下新建zh.js及en.js 【src/compon…

vue实现中英文切换

简单的使用&#xff08;应用场景&#xff1a;15个以内页面的中英文切换&#xff09; 1、安装 vue-i18n依赖 yarn add vue-i18n 或者 npm install vue-i18n --save-dev 2、在src/components下新建文件夹language&#xff0c;并在文件夹language下新建zh.js及en.js 【src/co…

vue切换中英语言制作方法(Element+i18n的使用)

介绍&#xff1a; Vue I18n 是 Vue.js 的国际化插件。它可以轻松地将一些本地化功能集成到你的 Vue.js 应用程序中。 1、安装Element ui npm i element-ui -S2、全局引用Element ui 在 main.js 中写入以下内容&#xff1a; import Vue from vue; import ElementUI from elem…

vue3+antd 实现国际化 切换中英文

首先新建结构文件夹 1.下载i18n插件 npm install vue-i18n --save 2.配置i18n.js文件 import { createI18n} from vue-i18n import message from ./langs const localeData {legacy: true, // composition APIlocale: cn,messages: message, } const i18n createI18n(loca…

Vue项目切换语言,vue项目国际化,使用vue-i18n前端实现中英文切换

在项目需求中&#xff0c;我们会遇到国际化的中英文切换。 使用vue搭建的项目中我们可以使用i18n插件进行项目的中英文切换。 npm引入i18n npm install i18n --save-dev为了数据的使用方便&#xff0c;我们需要在src文件夹下建立一个如下图的文件夹 index.js&#xff1a; im…

【latex】论文或参考文献中出现俄文\西班牙文人名的解决方法

常用的latex的编辑器有&#xff1a;texstudio或者overleaf.值得说的是overleaf真的好用&#xff0c;因为它容错率高&#xff0c;即使你的编码语法有些小错误&#xff0c;它也能成功编译。缺点就是&#xff0c;某些论文投稿网站不支持overleaf.但它还是值得我喜欢&#xff0c;因…

前端多语言的切换

前端开发中多语言的切换&#xff0c;可使用js动态替换内容 1、在用户点击切换语言后&#xff0c;把选择的语言版本保存在cookie中 //写入cookie函数 function setCookie(name,value) {var Days 30;var exp new Date();exp.setTime(exp.getTime() Days*24*60*60*1000);docume…

chatgpt赋能python:Python动画制作指南:从入门到精通

Python动画制作指南&#xff1a;从入门到精通 Python作为一种易学易用的编程语言&#xff0c;在数据分析、机器学习等领域已经得到广泛应用。但是你知道吗&#xff1f;Python还可以用来制作动画&#xff01;本文将为你介绍如何用Python制作动画&#xff0c;从入门到精通&#…