人工智能——岭回归(Python)

article/2025/9/13 3:51:44

目录

1 概述

1.1 线性回归

1.2 岭回归 

1.3 过拟合

2 sklearn中的岭回归

3 案例 

3.1 数据介绍:

3.2 实验目的:

3.3 数据特征如下:

4 Python实现 

4.1 代码

4.2 结果 

5 正则化 


1 概述

1.1 线性回归

对于一般地线性回归问题,参数的求解采用的是最小二乘法,其目标函数如下:
                                     argmin\left \| Xw-y \right \|^{2}
参数 w 的求解,也可以使用如下矩阵方法进行:
                                      w=(X^{T}X)^{-1}X^{T}y
这个公式看着吓人,其实推导过程简单由( y=wX推导而来,纸老虎)
对于矩阵 X ,若某些列线性相关性较大(即训练样本中某些属性线性相关),就会导致X^{T}X
的值接近 0 ,在计算\left ( X^{T}X\right )^{-1} 时就会出现不稳定性。
结论 传统的基于最小二乘的线性回归法缺乏稳定性。

1.2 岭回归 

岭回归的优化目标:
                        argmin\left \| Xw-y \right \|^{2}+\partial \left \| w \right \|^{2}
对应的矩阵求解方法为:
w=(X^{T}X+\partial I)^{-1}X^{T}y
岭回归(ridge regression) 是一种专用于共线性数据分析的有偏估计回归方法。
是一种改良的最小二乘估计法,对某些数据的拟合要强于最小二乘法。

1.3 过拟合

图二就是正常拟合,符合数据的趋势,而图三,虽然在训练集上拟合得很好,但是出现未知数据时,比如Size很大时,根据目前拟合来看,可能得到的结果很小,与实际误差会很大。 

                   

sklearn中的岭回归

在sklearn库中,可以使用sklearn.linear_model.Ridge调用岭回归模型,其主要参数有:
alpha:正则化因子,对应于损失函数中的 𝜶
fit_intercept:表示是否计算截距,
solver:设置计算参数的方法,可选参数‘auto’、‘svd’、‘sag’等。

3 案例 

                                        交通流量预测实例:

3.1 数据介绍:

数据为某路口的交通流量监测数据,记录全年小时级别的车流量。

3.2 实验目的:

根据已有的数据创建多项式特征,使用岭回归模型代替一般的线性模型,对 车流量 的信息进行 多项式回归

3.3 数据特征如下:

HR :一天中的第几个小时(0-23)
WEEK_DAY :一周中的第几天(0-6)
DAY_OF_YEAR :一年中的第几天(1-365)
WEEK_OF_YEAR :一年中的第几周(1-53)
TRAFFIC_COUNT :交通流量
全部数据集包含2万条以上数据(21626)

 

4 Python实现 

4.1 代码

#*================1. 建立工程,导入sklearn相关工具包====================**
import numpy as np
from sklearn.linear_model import Ridge   #通过sklearn.linermodel加载岭回归方法
from sklearn import model_selection     #加载交叉验证模块
import matplotlib.pyplot as plt      #加载matplotilib模块
from sklearn.preprocessing import PolynomialFeatures     #通过加载用于创建多项式特征,如ab、a2、b2#*=================2. 数据加载=========================================**
data=np.genfromtxt('岭回归.csv',delimiter=',')     #使用numpy的方法从csv文件中加载数据
print(data)
print(data.shape)
plt.plot(data[:,4])                #使用plt展示车流量信息
#plt.show()
#*================3. 数据处理==========================================**
X=data[:,:4]                  #X用于保存0-3维数据,即属性
y=data[:,4]                   ##y用于保存第4维数据,即车流量
poly=PolynomialFeatures(6)    #用于创建最高次数6次方的的多项式特征,多次试验后决定采用6次
X=poly.fit_transform(X)       #X为创建的多项式特征#*================4. 划分训练集和测试集=================================**
train_set_x, test_set_x , train_set_y, test_set_y =model_selection.train_test_split(X,y,test_size=0.3,
random_state=0)
#将所有数据划分为训练集和测试集,test_size表示测试集的比例,
# #random_state是随机数种子#*==============5. 创建回归器,并进行训练===============================**
clf=Ridge(alpha=1.0,fit_intercept = True)
#接下来我们创建岭回归实例
clf.fit(train_set_x,train_set_y) #调用fit函数使用训练集训练回归器
clf.score(test_set_x,test_set_y) #利用测试集计算回归曲线的拟合优度,clf.score返回值为0.7375
#拟合优度,用于评价拟合好坏,最大为1,无最小值,当对所有输入都输出同一个值时,拟合优度为0。#*============6. 画出拟合曲线=========================================**
start=100                      #接下来我们画一段200到300范围内的拟合曲线
end=200
y_pre=clf.predict(X)           #是调用predict函数的拟合值
time=np.arange(start,end)
plt.plot(time,y[start:end],'b', label="real")
plt.plot(time,y_pre[start:end],'r', label='predict')   #展示真实数据(蓝色)以及拟合的曲线(红色)
plt.legend(loc='upper left') #设置图例的位置
plt.show()

4.2 结果 

                  

分析结论 :预测值和实际值的走势大致相同

 

5 正则化 

原理解析-过拟合与正则化


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

相关文章

岭回归(Ridge Regression)和Lasso回归

1、岭回归(Ridge Regression) 标准线性回归(简单线性回归)中: 如果想用这个式子得到回归系数,就要保证(X^TX)是一个可逆矩阵。 下面的情景:如果特征的数据比样本点还要多,数据特征…

岭回归详解 从零开始 从理论到实践

岭回归详解 从零开始 从理论到实践 一、岭回归的理解1.1、LinearRegression的回顾1.2、岭回归 - Ridge Regression 二、sklearn的使用2.1、方法、参数与属性2.1.1、特征标准化 - StandardScaler2.1.2、岭回归 - Ridge2.1.3、内置交叉验证岭回归 - RidgeCV 2.2、实例应用2.2、简…

分布式之Quorum NWR算法

写在前面 假设现在我们实现了AP 系统,但是公司突然要对某些业务进行实时的数据计算,并且要求按照强一致性的方式来读取数据,此时作为系统设计这的我们该怎么办呢?单独为这部分业务实时抽出最新数据?还是修改原有系统&…

glusterfs:Server-quorum和Client Quorum

overview 这两个参数在容错场景中发挥着巨大的作用。用户借助这两个参数 既可以手动控制存在多少个活着的节点表示集群健康,也可以把这个控制权交给集群。 Server-quorum 由两个参数组成 cluster.server-quorum-type: none | server 如果设置为server表示启动了s…

Quorum机制

/******************************************************** 原文链接:http://www.cnblogs.com/jzhlin/archive/2012/07/23/2605077.html ********************************************************/ 分布式系统的设计中会涉及到许多的协议、机制用来解决可靠性问…

Elasticsearch:理解 Master,Elections,Quorum 及 脑裂

集群中的每个节点都可以分配多个角色:master、data、ingest、ml(机器学习)等。 我们在当前讨论中感兴趣的角色之一是 master 角色。 在 Elasticsearch 的配置中,我们可以配置一个节点为 master 节点。master 角色的分配表明该节点…

Quorum简介部署

文章目录 简介账户/密钥管理隐私私有交易管理器 (Private transaction Manager)enclave公有/私有状态 状态验证交易和合约隐私 (Transaction and Contract Privacy)参考 简介 GoQuorum基于geth,在其基础上增加了一些联盟链需要的组件,主要包括以下几点&…

分布式系统理论之Quorum机制

一,Quorum机制介绍 对于数据存储而言,为了提高可用性(Availability),采用了副本备份,比如对于HDFS,默认每块数据存三份。某数据块所在的机器宕机了,就去该数据块副本所在的机器上读…

Hyperledger/Quorum等区块链技术综述

[1]邵奇峰,张召,朱燕超,周傲英.企业级区块链技术综述[J].软件学报,2019,30(09):2571-2592. 摘要:在传统跨机构交易的企业应用中,各个机构都是独立记录己方的交易数据,机构间数据的差异会引起争议,通常需要人工对账或中介机构来解决,因而增加了结算时间和交易费用.区…

基于以太坊项目quorum多机多节点搭建_1

准备工作 环境搭建 我这里使用4台虚拟机来模拟实际网络,在这四台虚拟机里分别搭建了quorum节点。 我这里使用quorum maker 工具来搭建quorum quorum maker 是一个带UI界面的自动化搭建quorum的工具。 quorum maker 安装 git clone https://github.com/synechr…

Quorum白皮书

Quorum白皮书下载

【quorum源码】quorum tessera源码剖析

目录 概述1. 项目结构2. 数据库结构3. 主要流程3.1 服务启动3.2 交易处理3.3 加密交易 4. Restful API4.1 Q2TRestApp4.2 ThirdPartyRestApp4.3 P2PRestApp4.4 EnclaveApplication 5. 一些核心接口App、Enclave相关的类图:com.quorum.tessera.server.TesseraServerc…

Quorum NWR算法

假如我们遇到这样一种事情:你开发实现了一套 AP 型的分布式系统,实现了最终一致性。业务也接入了,运行正常,一起看起来都那么美好。可是,突然有同事说,我们要拉这几个业务的数据做实时分析,希望…

paxosquorum

注: 这里谈论的2PC不同于事务中的2PC,而是专门为了同步和高可用改过的2PC协议 问题: 寻求一种能够保证,在给定多台计算机,并且他们之间由网络相互连通,中间的数据没有拜占庭将军问题(数据不会被伪造)的前…

分布式共识算法随笔 —— 从 Quorum 到 Paxos

分布式共识算法随笔 —— 从 Quorum 到 Paxos 概览: 为什么需要共识算法? 昨夜西风凋碧树,独上高楼,望尽天涯路 复制(Replication) 是一种通过将同一份数据在复制在多个服务器上来提高系统可用性和扩展写吞吐的策略, 。常见的复制策略有主从…

Quorum工作原理

文章目录 1. 概述2. 逻辑架构2.1 Quorum Node2.2 Constellation(星座)2.3 Tessera(特赛拉)2.4 Transaction Manager2.5 Enclave 3. 交易(事务)处理3.1 公开交易3.2 隐私交易3.3 交易处理3.4 隐私交易流程&a…

Quorum共识简析

背景 区块链共识是指多个节点或代理在给定的时间点就区块链状态达成一致的能力。当涉及区块链上分散记录保存和验证的核心功能时,单独依靠信任来确保添加到账本的信息是正确的可能会存在问题。因为没有中央实体来进行仲裁,这种问题在去中心化网络中更为…

Quorum区块链原理及其概念

Quorum概述 Quorum是由摩根大通研发的企业级区块链,用于解决金融或满足于企业需求的行业的需求的平台[56]。Quorum是基于以太坊扩展研发的一种联盟链,适用于对交易效率和吞吐量比较高的企业应用。Quorum作为以太坊的许可实施方案,对以太坊设…

Quorum 机制(分布式系统)

Quorum 机制,是一种分布式系统中常用的,用来保证数据冗余和最终一致性的投票算法,其主要数学思想来源于鸽巢原理。 基于Quorum投票的冗余控制算法 在有冗余数据的分布式存储系统当中,冗余数据对象会在不同的机器之间存放多份拷贝…

xgboost的原理,损失函数,优化,

不经感叹大佬真多,本文转自https://www.jianshu.com/p/7467e616f227 xgboostd多颗树的损失子树cart树,并且叶子节点为分数,不是类别,所有多棵树损失和容易优化,速度快分步提升,先优化一棵树,后面…