目录
老饼讲解:一步一步上手学习

【代码】岭回归(Ridge)-代码复现

作者 : 老饼 发表日期 : 2026-01-07 08:15:27 更新日期 : 2026-05-21 21:59:52
老饼讲解-简单易懂,干货满满,爽过嗦螺!


自实现一个岭回归模型,只需按公式计算岭回归模型的确即可,本文展示如何自实现一个岭回归模型,包括对数据中心化,并通过反中心化来得到阈值,通过本文,可以了解岭回归模型的自实现代码,进一步加深对岭回归的理解。

一、自写代码-实现岭回归

本节展示如何自写代码来实现岭回归模型。

1.1. 自写代码求解岭回归

下面实现一个带阈值的岭回归模型,根据《岭回归-算法流程》的求解流程,python代码如下:

"""
# 本代码展示如何自实现岭回归
本代码来自《老饼讲解-机器学习》www.bbblearn.com
"""
import numpy as np

#--------------------输入数据----------------
x = np.array([[0, 2], [1, 1], [2,3],[3,2],[4,5],[5,2]])       # 输入数据x
y = np.array([8,7,15,14,25,18])                               # 输出数据y

# 参数设置
alpha = 1                                                     # 设置惩罚系数alpha
#--------------------模型求解----------------
# 计算数据的中心点
xm    = x.mean(axis=0)                                        # x的中心点
ym    = y.mean(axis=0)                                        # y的中心点

#将数据进行中心化,再用公式求解基础岭回归的权重
X = x - xm                                                    # 对x进行中心化
Y = y - ym                                                    # 对y进行中心化
w = np.linalg.inv(X.T@X+np.eye(x.shape[1])*alpha)@X.T@Y       # 用公式求解权重

# 计算原始数据对应的模型阈值
b = ym-(w@xm)                                                 # 计算模型阈值

# 输出模型系数和阈值
print("当前alpha:"+str(alpha))                                # 打印alpha
print("模型参数:"+str(w))                                    # 打印模型系数
print("模型阈值:"+str(b))                                    # 打印模型阈值

运行结果如下:

模型的权重和阈值

可以看到,它的结果与《岭回归-sklearn实现》的结果是一致的,侧面说明这与sklearn内部的实现基本是一样的。

结束语

从代码中可以看出,自实现岭回归是非常简单的,只需要先中心化数据,再按公式求出系数,最后再计算出阈值就可以了,只要理解公式的原理,基本就没什么问题了。



图标 评论
添加评论