大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新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_1np.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
如有不理解,欢迎留言,大家共同进步!!!
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/171770.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...