本站原创文章,转载请说明来自《老饼讲解-机器学习》www.bbbdata.com
自实现一个岭回归模型,只需按公式计算岭回归模型的确即可
本文展示如何自实现一个岭回归模型,包括对数据中心化,并通过反中心化来得到阈值
通过本文,可以了解岭回归模型的自实现代码,进一步加深对岭回归模型的理解
本节展示如何自写代码来实现岭回归模型
自写代码求解岭回归
现有数据以下,需要我们建立岭模型,用变量 x1,x2 预测y
备注:以上数据的实际关系为:
下面实现一个带阈值的岭回归模型
根据《岭回归-算法流程》的求解流程, python代码如下:
# 本代码展示如何自实现岭回归
# 转载请说明来自 《老饼讲解机器学习》 www.bbbdata.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))
print("模型参数:"+str(w))
print("模型阈值:"+str(b))
运行结果如下
当前alpha:1
模型参数:[1.97256098 2.72865854]
模型阈值:2.7469512195121943
可以看到,它的实现效果与《sklearn实现岭回归》的结果是一致的
这侧面说明这与sklearn内部的实现基本是一样的
好了,以上就是如何自实现一个岭回归模型的代码了~
End