机器学习之MLR

article/2025/11/9 22:19:11

线性回归(Linear regression)是利用称为线性回归方程的最小二乘函数对一个或多个自变量和因变量之间关系进行建模的一种回归分析。这种函数是一个或多个称为回归系数的模型参数的线性组合。只有一个自变量的情况称为一元回归,大于一个自变量情况的叫做多元回归。。

多元线性回归模型的一般形式
在这里插入图片描述
其中,Y为因变量,X为自变量,上式中共有k个自变量和一个常数项。如果自变量经过标准化处理,则上式没有常数项,换句话说,Y的期望值与自变量的函数关系如下:
在这里插入图片描述
上式也被称为多元总体线性回归方程。
如果有n组观测数据,
在这里插入图片描述
则可以采用方程组形式表示
在这里插入图片描述
其矩阵形式为
在这里插入图片描述
简化形式为
在这里插入图片描述
使用多元线性回归必须满足如下的几个条件:(1) 因变量Y和自变量X之间具有线性关系。(2) 各观测值Y相互独立。(3) 残差e服从均值为0,方差为δ^2的正态分布,也就是对自变量的任意一组观测值,因变量Y具有相同的方差,且服从正态分布。

本次数据集为machine.data,要求我们在给定硬件的其他相关属性的情况下预测计算机硬件的相对性能。
接下来我们开始编程吧

首先导入库
在这里插入图片描述
载入数据集
在这里插入图片描述
打印前几行看看是否载入成功了
在这里插入图片描述
结果如下

在这里插入图片描述

接下来就是选择特征,我们需要选择适合模型拟合的数值字段
怎么看字段是否适合呢?使用data.info就可以了
完整代码在2.py
结果如下
在这里插入图片描述
我们可以看到,除了前两个变量之外,其余的都是数字。 我们只选择数字字段。
所以使用下面的代码进行过滤
在这里插入图片描述
同样打印出来看看是否合适了
完整代码在3.py
结果如下
在这里插入图片描述
然后我们来选择预测值和目标变量
在这里插入图片描述
切割训练集,测试集
在这里插入图片描述
在我们进行拟合之前,让我们对数据进行标准化,使数据以均值为中心并具有单位标准差。
在这里插入图片描述
接下来该进行拟合了
在这里插入图片描述
下面代码中系数R ^ 2定义为(1-u / v),其中u是残差平方和((y_true-y_pred)** 2).sum()和v是平方和的总和((y_true - y_true.mean())** 2).sum()。
在这里插入图片描述
完整代码在4.py
打印出系数的预测值、均方误差、方差分
在这里插入图片描述
可以看到R^2和MSE的结果都很好。
MSE在前面的实验中有提到,这里解释下R^2
决定系数R^2,取值范围为[0,1],代表自变量能够解释因变量的比例,其值越接近1,说明模型对数据的拟合程度越好。

我在最开始使用了matplotlib库,现在就可以绘出通过预测得出的一条线,我们可视化拟合的好处。
完整代码在MLR.py
运行结果如下
在这里插入图片描述
这条线是由模型根据数据集训练后得出的,而蓝色的点是测试集,可以看到蓝色的点基本分布在线上或者左右,比较好地拟合了我们的训练结果。
参考:
1.《机器学习》(西瓜书)
2. https://zh.wikipedia.org/wiki/%E7%B7%9A%E6%80%A7%E5%9B%9E%E6%AD%B8
3. https://acadgild.com/blog/multiple-linear-regression
4. https://www.jianshu.com/p/2ce27e88d78c
5. https://blog.csdn.net/wx_blue_pig/article/details/79791906


http://chatgpt.dhexx.cn/article/loXYtT65.shtml

相关文章

MLR(mixed logistic regression)模型

基本形式 MLR模型是阿里巴巴12年提出(17年发表)点击率预估模型,它利用分段方式对数据进行拟合,相比LR模型,能够学习到更高阶的特征组合。其基本表达式如下 p ( y 1 ∣ x ) g ( ∑ j 1 m σ ( u j T x ) η ( w j …

MLR(mixed logistic regression)算法原理及实现

MLR(mixed logistic regression)算法 参考https://zhuanlan.zhihu.com/p/77798409?utm_sourcewechat_session 盖坤ppt : https://wenku.baidu.com/view/b0e8976f2b160b4e767fcfdc.html 原文:《Learning Piece-wise Linear Models from Large…

多元线性回归MLR

多元线性回归(MLR) 文章目录 多元线性回归(MLR)由极大似然估计(MLE, Maximum likelihood estimation)推导MSE简单导数知识推导解析解( θ ( X T X ) − 1 X T Y \theta (X^TX)^{-1}X^TY θ(XTX)−1XTY)来个例子试一试吧 不用解析解, 用梯度下降求解 θ \theta θ梯度下降法另…

MySql MVCC 详解

注意以下操作都是以InnoDB引擎为操作基准。 一,前置知识准备 1,MVCC简介 MVCC 是多版本并发控制(Multiversion Concurrency Control)的缩写。它是一种数据库事务管理技术,用于解决并发访问数据库的问题。MVCC 通过创…

MVCC总结

MVCC多版本并发控制 数据库中的并发分为三种情况: 读读:不存在任何问题,也不需要并发控制 读写:有数据安全问题,脏读,幻读,不可重复读 写写:有数据安全问题,可能存在…

Mysql中的MVCC

Mysql到底是怎么实现MVCC的?这个问题无数人都在问,但google中并无答案,本文尝试从Mysql源码中寻找答案。 在Mysql中MVCC是在Innodb存储引擎中得到支持的,Innodb为每行记录都实现了三个隐藏字段: 6字节的事务ID&#xf…

MVCC原理

在并发读写数据库时,读操作可能会不一致的数据(脏读)。为了避免这种情况,需要实现数据库的并发访问控制,最简单的方式就是加锁访问。由于,加锁会将读写操作串行化,所以不会出现不一致的状态。但…

MVCC机制

MVCC 1. MVCC是什么? MVCC,全称Multi-Version Concurrency Control,即多版本并发控制。MVCC是一种并发控制的方法,一般在数据库管理系统中,实现对数据库的并发访问,在编程语言中实现事务内存。 MVCC的具体…

MVCC实现原理

1、什么是MVCC mvcc多版本并发控制。 mvcc在mysql innodb中主要是为了提高数据库并发性能,用更好的方式去处理读写冲突,做到即使有读写冲突时,也能做到不加索,非阻塞并发读。。 2、实现原理: mvcc的实现是通过保存…

MySQL的MVCC及实现原理

一 概要 1.什么是 MVCC ? MVCC,全称 Multi-Version Concurrency Control ,即多版本并发控制。MVCC 是一种并发控制的方法,一般在数据库管理系统中,实现对数据库的并发访问,在编程语言中实现事务内存。 MVCC 在 MySQL…

InnoDB MVCC 机制

本文详细的介绍了什么是MVCC?为什么要有MVCC?以及MVCC的内部实现原理:包括Undo Log的版本链是如何组织的,RR、RC两个级别下一致性读是如何实现的等。通过案例、插图,以最通俗易懂的方式,让你彻底掌握MVCC的…

mysql mvcc 实例说明_Mysql MVCC

一、MVCC概述 MVCC,全称Multi-Version Concurrency Control,即多版本并发控制。整个MVCC多并发控制的目的就是为了实现读-写冲突不加锁,提高并发读写性能,而这个读指的就是快照度, 而非当前读,当前读实际上是一种加锁的…

MVCC

一、什么是MVCC MVCC(Multiversion concurrency control )是一种多版本并发控制机制。 二、MVCC是为了解决什么问题? 并发访问(读或写)数据库时,对正在事务内处理的数据做多版本的管理。以达到用来避免写操作的堵塞,从而引发读操…

MVCC详解

一、前言 全称Multi-Version Concurrency Control,即多版本并发控制,主要是为了提高数据库的并发性能。以下文章都是围绕InnoDB引擎来讲,因为myIsam不支持事务。 同一行数据平时发生读写请求时,会上锁阻塞住。但mvcc用更好的方式…

MVCC 机制的原理及实现

什么是 MVCC MVCC (Multiversion Concurrency Control) 中文全程叫多版本并发控制,是现代数据库(包括 MySQL、Oracle、PostgreSQL 等)引擎实现中常用的处理读写冲突的手段,目的在于提高数据库高并发场景下的吞吐性能。 如此一来…

深入浅出:MVCC详解

什么是MVCC: MVCC(Multi Version Concurrency Control的简称),代表多版本并发控制。与MVCC相对的,是基于锁的并发控制,Lock-Based Concurrency Control)。 MVCC最大的优势:读不加锁,读写不冲突。在读多写少…

什么是MVCC?MVCC解决了什么问题?MVCC的实现原理?

1.什么是MVCC? MVCC全称是【Multi-Version ConCurrency Control】,即多版本控制协议。 多版本控制(Multiversion Concurrency Control): 指的是一种提高并发的技术。最早的数据库系统,只有读读之间可以并发&#xff…

MVCC详解,深入浅出简单易懂

一、什么是MVCC? mvcc,也就是多版本并发控制,是为了在读取数据时不加锁来提高读取效率和并发性的一种手段。 数据库并发有以下几种场景: 读-读:不存在任何问题。读-写:有线程安全问题,可能出…