岭回归算法_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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Pycharm如何创建Django项目「建议收藏」

    Pycharm如何创建Django项目「建议收藏」打开pycharm,点击File——>NewProiect 点击Django 设置Django项目路径及相关配置(因为有很多文件我们用不上所以不选Projectlnterpreter选项,而选择Existinginterpreter,创建一个相对干净的的Django项目工程) 点击创建之后,pycharm会自动帮我们创建一个Django项目 启动Django项目 点击链接进入浏览器 出现这个画面就表示创建成功了…

    2022年8月27日
  • ubuntu root默认密码(初始密码)

    ubuntu root默认密码(初始密码)ubuntu安装好后,root初始密码(默认密码)不知道,需要设置。1、先用安装时候的用户登录进入系统2、输入:sudopasswd按回车3、输入新密码,重复输入密码,最后提示passwd

    2022年10月24日
  • python & 0xFFFFFFFF打印输出负数的补码[通俗易懂]

    python & 0xFFFFFFFF打印输出负数的补码[通俗易懂]-7的有符号原码和补码表示-7的原码:0b10000111(8位)-7的补码:0b11111001(8位)python中的输出a=-7print(bin(a))#输出-0b111python直观地打印输出了带负号的原码显示为了能够打印输出对应的补码表示进行如下运算:a=-7b=a&0xFF#-7的补码print(b)#249print(0b11111001)print(bin(b)#输出249//249原码0

    2022年5月17日
  • java classpath环境变量(linux配置java环境变量)

    刚学Java的时候,很多jdk配置教程都要求设置JAVA_HOME、Path、CLASSPATH3个变量。而Java官网有这么一句话:jdk1.5之后的版本在安装时不用设置CLASSPATH变量。今天我就以jdk1.5为例,总结下三者的区别。Path当我们安装完jdk之后,打开cmd(在非安装目录的路径下)输入javac、java,会提示找不到命令。我们需要将命令所在的路径添加到Path系…

    2022年4月15日
  • 利用树莓派搭建 web 服务器 (个人认为是网上步骤最全,也是最新的方式了 使用 PHP7)[通俗易懂]

    利用树莓派搭建 web 服务器 (个人认为是网上步骤最全,也是最新的方式了 使用 PHP7)[通俗易懂]#前言在暑假的时候想玩玩树莓派,就买了一块树莓派3B+,结果买回来也没太玩就放在宿舍吃灰,最近突然对网站很感兴趣,于是就在网上查找资料去搭建了这个web服务器,它是使用的nginx+PHP7+typecho组成的服务器。#首先安装raspbian系统引用了树莓派实验室的下载地址,大家可以直接下载。下载链接:http://downloads.raspberrypi.org/raspbian_…

    2022年6月6日
  • 调试coredump步骤(coredump原理)

    linux系统中某个进程突然崩溃终止,该从哪方面入手分析问题?

    2022年4月12日

发表回复

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

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