python Ridge 回归(岭回归)的原理及应用

岭回归的原理:

首先要了解最小二乘法的回归原理

设有多重线性回归模型   y=Xβ+ε  ,参数β的最小二乘估计为

当自变量间存在多重共线性,|XX|≈0时,设想|XX|给加上一个正常数矩阵(k>0)

那么|XX|+kI 接近奇异的程度就会比接近奇异的程度小得多。考虑到变量的量纲问题,

先要对数据标准化,标准化后的设计矩阵仍用X表示,定义称为的岭回归估计,其中,

k称为岭参数。由于假设X已经标准化,所以就是自变量样本相关阵。y可以标准化也可以未标准化,

如果y也经过标准化,那么计算的实际是标准化岭回归估计。(k)作为β的估计应比最小二乘估计稳定,当k=0时的岭回归估计就是普通的最小二乘估计.

因为岭参数k不是唯一确定的,所以得到的岭回归估计实际是回归参数的一个估计族。

则岭回归的参数估计为

python中岭回归的代码:

主要使用python中的 scikit-learn 模块

# 岭回归(Ridge 回归)
from sklearn import linear_model
X = [[0, 0], [1, 1], [2, 2]]
y = [0, 1, 2]
clf = linear_model.Ridge(alpha=0.1)  # 设置k值
clf.fit(X, y)  # 参数拟合
print(clf.coef_)  # 系数
print(clf.intercept_)  # 常量
print(clf.predict([[3, 3]]))  # 求预测值
print(clf.decision_function(X))  # 求预测,等同predict
print(clf.score(X, y))  # R^2,拟合优度
print(clf.get_params())  # 获取参数信息
print(clf.set_params(fit_intercept=False))  # 重新设置参数

后期的详细分析应用可以自己看linear_model的用法

时间: 2024-11-10 14:41:51

python Ridge 回归(岭回归)的原理及应用的相关文章

用Python实现岭回归算法与Lasso回归算法并处理Iris数据集

在介绍岭回归算法与Lasso回归算法之前,先要回顾一下线性回归算法.根据线性回归模型的参数估计公式可知可知,得到的前提是矩阵可逆.换句话说就是样本各个特征(自变量)之间线性无关.然而在实际问题中,常常会出现特征之间出现多重共线性的情况,使得行列式的值接近于0,最终造成回归系数无解或者无意义. 为了解决这个问题,岭回归算法的方法是在线性回归模型的目标函数之上添加一个l2的正则项,进而使得模型的回归系数有解.具体的岭回归目标函数可表示为如下: 在Python中,岭回归算法的实现方法如下. 在Pyth

Ridge Regression(岭回归)

Ridge Regression岭回归 数值计算方法的"稳定性"是指在计算过程中舍入误差是可以控制的. 对于有些矩阵,矩阵中某个元素的一个很小的变动,会引起最后计算结果误差很大,这种矩阵称为"病态矩阵".有些时候不正确的计算方法也会使一个正常的矩阵在运算中表现出病态.对于高斯消去法来说,如果主元(即对角线上的元素)上的元素很小,在计算时就会表现出病态的特征. 回归分析中常用的最小二乘法是一种无偏估计. 当X列满秩时,有 X+表示X的广义逆(或叫伪逆). 当X不是列满

机器学习之线性回归、岭回归、Lasso回归

1.回归算法分类算法的目标值是标称型数据,而回归的目标变量是连续型数据,主要包括线性回归,岭回归,lasso回归,前向逐步回归. 2.线性回归线性回归主要用于处理线性数据,结果易于理解,计算复杂度不高,但是处理不了非线性数据.线性回归用最适直线(回归线)去建立因变量Y和一个或多个自变量X之间的关系.可以用公式来表示:Y = wX + b.其中w为权重,也称为回归系数,b为偏置顶. 3.理解线性回归线性回归从高中数学就接触过了,不过我们主要学习二维形式的线性回归,即y = kx + b.其中斜率k

岭回归

Ridge Regression岭回归 数值计算方法的“稳定性”是指在计算过程中舍入误差是可以控制的. 对于有些矩阵,矩阵中某个元素的一个很小的变动,会引起最后计算结果误差很大,这种矩阵称为“病态矩阵”.有些时候不正确的计算方法也会使一个正常的矩阵在运算中表现出病态.对于高斯消去法来说,如果主元(即对角线上的元素)上的元素很小,在计算时就会表现出病态的特征. 回归分析中常用的最小二乘法是一种无偏估计. 当X列满秩时,有 X+表示X的广义逆(或叫伪逆). 当X不是列满秩,或者某些列之间的线性相关性

岭回归与Lasso回归

线性回归的一般形式 过拟合问题及其解决方法 问题:以下面一张图片展示过拟合问题 解决方法:(1):丢弃一些对我们最终预测结果影响不大的特征,具体哪些特征需要丢弃可以通过PCA算法来实现:(2):使用正则化技术,保留所有特征,但是减少特征前面的参数θ的大小,具体就是修改线性回归中的损失函数形式即可,岭回归以及Lasso回归就是这么做的. 岭回归与Lasso回归 岭回归与Lasso回归的出现是为了解决线性回归出现的过拟合以及在通过正规方程方法求解θ的过程中出现的x转置乘以x不可逆这两类问题的,这两种

岭回归技术原理应用

岭回归技术原理应用                 作者:马文敏 岭回归分析及其SPSS实现方法 岭回归分析(RidgeRegression)是一种改良的最小二乘估计方法,它是用于解决在线性回归分析中自变量存在共线性的问题.什么?共线性是什么?共线性就是指自变量之间存在一种完全或良好的线性关系,进而导致自变量相关矩阵之行列式近似为0,导致最小二乘估计失效.此时统计学家就引入了k个单位阵(I),使得回归系数可估计. 岭回归分析就是用来解决多重共线性的问题.在医学科研的实际工作中,往往不需要创造算法

R语言统计分析技术研究——岭回归技术的原理和应用

岭回归技术的原理和应用 作者马文敏 岭回归分析是一种专用于共线性分析的有偏估计回归方法,实质上是一种改良的最小二乘估计法,通过放弃最小二乘法的无偏性,以损失部分信息,降低精度为代价获得回归系数更为符合实际,更可靠的回归方法,对病态数据的耐受性远远强于最小二乘法. 回归分析:他是确立两种或两种以上变量间相互依赖的定量关系的一种统计分析法.运用十分广泛,回归分析按照设计量的多少,分为一元回归和多元回归分析,按照因变量的多少,可分为简单回归分析和多重回归分析,按照自变量和因变量的多少类型可分为线性回归

Python之岭回归

实现:# -*- coding: UTF-8 -*- import numpy as npfrom sklearn.linear_model import Ridge __author__ = 'zhen' X = 2 * np.random.rand(100, 1)y = 4 + 3 * X + np.random.randn(100, 1)# 岭回归ridge_reg = Ridge(alpha=1, solver='sag')ridge_reg.fit(X, y)print("="

线性回归——lasso回归和岭回归(ridge regression)

目录 线性回归--最小二乘 Lasso回归和岭回归 为什么 lasso 更容易使部分权重变为 0 而 ridge 不行? References 线性回归很简单,用线性函数拟合数据,用 mean square error (mse) 计算损失(cost),然后用梯度下降法找到一组使 mse 最小的权重. lasso 回归和岭回归(ridge regression)其实就是在标准线性回归的基础上分别加入 L1 和 L2 正则化(regularization). 本文的重点是解释为什么 L1 正则化会