岭回归算法_tikhonov正则化与岭回归

岭回归算法_tikhonov正则化与岭回归岭回归算法简介回归算法的本质上就是为了解决一个线性方程:Ax=b标准估计方法是普通的最小二法的线性回归,然而如果x是一个病态的矩阵,在这种情况下使用普通最小二法估计会导致过拟合或者欠拟合的情况。此外,岭回归还可以处理矩阵阵列的多重共线性问题。通常最小二乘法寻求的是最小花平方残差的综合,公式:在岭回归中,在这种最小化中加入正则化项:其中Г是Tikhonovmatrix矩阵,在许…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

岭回归算法简介

回归算法的本质上就是为了解决一个线性方程:
Ax = b
标准估计方法是普通的最小二法的线性回归,然而如果x是一个病态的矩阵,在这种情况下使用普通最小二法估计会导致过拟合或者欠拟合的情况。此外,岭回归还可以处理矩阵阵列的多重共线性问题。

通常最小二乘法寻求的是最小花平方残差的综合,公式:
在这里插入图片描述
在岭回归中,在这种最小化中加入正则化项:
在这里插入图片描述
其中Г是Tikhonov matrix矩阵,在许多情况下,这个矩阵被选为单位矩阵的倍数,Г=αI(注意:此处考虑的是具有较小范数的解决方案,不是较小系数,这里的系数指的是“回归系数”)

岭回归性质

1)岭回归与OLS的关系:
在这里插入图片描述
由于岭回归与OLS相差无几,这里就不在详细赘述了,直接上代码。
#实现岭回归的函数
def ridge_regression(array_x,array_y,lambda_1):
#创建设计矩阵
X = np.column_stack((np.ones(array_x[0]),array_x))
#计算上面公式中A.TA+lambda单位矩阵I
alpha_vector = np.dot(X.T,X)+lambda_1
np.identity(X.shape[0])
#行列式判断A.TA是否可逆
if np.abs(linalg.det(alpha_vector))-0.0 < 10*-14:
#如果不可逆,直接结束程序
return
#如果可逆,计算回归系数
alpha = np.dot(alpha_vector,np.dot(X.T,array_y))
#将得到的截距项和回归系数返回
return alpha

#计算回归系数,有X_train,X_test,y_train,y_test数据集
ridge_data = ridge_regression(X_train,y_train,0.1)
#预测(此处ridge_data[0]是截距项,ridge_data[1]是回归系数)
pre_data = ridge_data[0] + ridge_data[1]*X_test

如有不理解,欢迎留言,大家共同进步!!!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/171770.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号