广义线性模型2

article/2025/8/19 16:05:19

1.1.2 Ridge Regression[岭回归]

岭回归和普通最小二乘法回归的一个重要区别是前者对系数模的平方进行了限制。如下所示:

In [1]: from sklearn import linear_modelIn [2]: clf = linear_model.R
linear_model.RandomizedLasso
linear_model.RandomizedLogisticRegression
linear_model.Ridge
linear_model.RidgeCV
linear_model.RidgeClassifier
linear_model.RidgeClassifierCVIn [2]: clf = linear_model.Ridge(alpha = .5)In [3]: clf.fit([[0, 0], [0, 0], [1, 1]], [0, .1, 1])
Out[3]: 
Ridge(alpha=0.5, copy_X=True, fit_intercept=True, max_iter=None,normalize=False, solver='auto', tol=0.001)In [4]: clf.coef_
Out[4]: array([ 0.34545455,  0.34545455])In [5]: clf.intercept_
Out[5]: 0.13636363636363641

解析:

[1]sklearn.linear_model.Ridge类构造方法

class sklearn.linear_model.Ridge(alpha=1.0, fit_intercept=True, normalize=False, copy_X=True, max_iter=None, tol=0.001, solver='auto')

[2]sklearn.linear_model.Ridge类实例的属性和方法

[3]Ridge Regression[岭回归]

岭回归分析是一种专用于共线性数据分析的有偏估计回归方法,实质上是一种改良的最小二乘估计法,通过放弃最小二乘法的无偏性,以损失部分信息、降低精度为代价获得回归系数更为符合实际、更可靠的回归方法,对病态数据的耐受性远远强于最小二乘法。岭回归分析主要解决两类问题:数据点少于变量个数;变量间存在共线性。

Examples: Plot Ridge coefficients as a function of the regularization

print(__doc__)import numpy as np
import pylab as pl
from sklearn import linear_model# X is the 10x10 Hilbert matrix
X = 1. / (np.arange(1, 11) + np.arange(0, 10)[:, np.newaxis])
y = np.ones(10)###############################################################################
# Compute pathsn_alphas = 200
alphas = np.logspace(-10, -2, n_alphas)
clf = linear_model.Ridge(fit_intercept=False)coefs = []
for a in alphas:clf.set_params(alpha=a)clf.fit(X, y)coefs.append(clf.coef_)###############################################################################
# Display resultsax = pl.gca()
ax.set_color_cycle(['b', 'r', 'g', 'c', 'k', 'y', 'm'])ax.plot(alphas, coefs)
ax.set_xscale('log')
ax.set_xlim(ax.get_xlim()[::-1])  # reverse axis
pl.xlabel('alpha')
pl.ylabel('weights')
pl.title('Ridge coefficients as a function of the regularization')
pl.axis('tight')
pl.show()

图形输出,如下所示:

解析:

[1]希尔伯特矩阵

在线性代数中,希尔伯特矩阵是一种系数都是单位分数的方块矩阵。

[2]np.arange()方法

In [31]: 1. / (np.arange(1, 11))
Out[31]: 
array([ 1.        ,  0.5       ,  0.33333333,  0.25      ,  0.2       ,0.16666667,  0.14285714,  0.125     ,  0.11111111,  0.1       ])In [32]: (1. / (np.arange(1, 11))).shape
Out[32]: (10,)

[3]np.newaxis属性

In [5]: np.arange(0, 10)
Out[5]: array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])In [6]: type(np.arange(0, 10))
Out[6]: numpy.ndarrayIn [7]: np.arange(0, 10).shape
Out[7]: (10,)In [8]: np.arange(0, 10)[:, np.newaxis]
Out[8]: 
array([[0],[1],[2],[3],[4],[5],[6],[7],[8],[9]])In [9]: np.arange(0, 10)[:, np.newaxis].shape
Out[9]: (10, 1)

[4]广播原理

In [25]: x = np.arange(0, 5)In [26]: x[:, np.newaxis]
Out[26]: 
array([[0],[1],[2],[3],[4]])In [27]: x[np.newaxis, :]
Out[27]: array([[0, 1, 2, 3, 4]])In [28]: x[:, np.newaxis] + x[np.newaxis, :]
Out[28]: 
array([[0, 1, 2, 3, 4],[1, 2, 3, 4, 5],[2, 3, 4, 5, 6],[3, 4, 5, 6, 7],[4, 5, 6, 7, 8]])

[5]10阶希尔伯特矩阵X

In [33]: X = 1. / (np.arange(1, 11) + np.arange(0, 10)[:, np.newaxis])In [34]: X
Out[34]: 
array([[ 1.        ,  0.5       ,  0.33333333,  0.25      ,  0.2       ,0.16666667,  0.14285714,  0.125     ,  0.11111111,  0.1       ],[ 0.5       ,  0.33333333,  0.25      ,  0.2       ,  0.16666667,0.14285714,  0.125     ,  0.11111111,  0.1       ,  0.09090909],[ 0.33333333,  0.25      ,  0.2       ,  0.16666667,  0.14285714,0.125     ,  0.11111111,  0.1       ,  0.09090909,  0.08333333],[ 0.25      ,  0.2       ,  0.16666667,  0.14285714,  0.125     ,0.11111111,  0.1       ,  0.09090909,  0.08333333,  0.07692308],[ 0.2       ,  0.16666667,  0.14285714,  0.125     ,  0.11111111,0.1       ,  0.09090909,  0.08333333,  0.07692308,  0.07142857],[ 0.16666667,  0.14285714,  0.125     ,  0.11111111,  0.1       ,0.09090909,  0.08333333,  0.07692308,  0.07142857,  0.06666667],[ 0.14285714,  0.125     ,  0.11111111,  0.1       ,  0.09090909,0.08333333,  0.07692308,  0.07142857,  0.06666667,  0.0625    ],[ 0.125     ,  0.11111111,  0.1       ,  0.09090909,  0.08333333,0.07692308,  0.07142857,  0.06666667,  0.0625    ,  0.05882353],[ 0.11111111,  0.1       ,  0.09090909,  0.08333333,  0.07692308,0.07142857,  0.06666667,  0.0625    ,  0.05882353,  0.05555556],[ 0.1       ,  0.09090909,  0.08333333,  0.07692308,  0.07142857,0.06666667,  0.0625    ,  0.05882353,  0.05555556,  0.05263158]])

[6]np.ones()方法

In [35]: y = np.ones(10)In [36]: y
Out[36]: array([ 1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.])In [37]: y.shape
Out[37]: (10,)

[7]numpy.logspace()方法

numpy.logspace(start, stop, num=50, endpoint=True, base=10.0)

说明:Return numbers spaced evenly on a log scale. In linear space, the sequence starts at base ** start (base to the power of start) and ends with base ** stop (see endpoint below).

In [38]: n_alphas = 200In [39]: alphas = np.logspace(-10, -2, n_alphas)In [40]: alphas
Out[40]: 
array([  1.00000000e-10,   1.09698580e-10,   1.20337784e-10,1.32008840e-10,   1.44811823e-10,   1.58856513e-10,1.74263339e-10,   1.91164408e-10,   2.09704640e-10,...,5.23109931e-03,   5.73844165e-03,   6.29498899e-03,6.90551352e-03,   7.57525026e-03,   8.30994195e-03,9.11588830e-03,   1.00000000e-02])In [41]: alphas.shape
Out[41]: (200,)In [42]: 1.00000000e-10
Out[42]: 1e-10

[8]set_params(**params)方法

[9]matplotlib.pyplot.gca(**kwargs)方法

Return the current axis instance. This can be used to control axis properties either using set or the Axes methods, for example, setting the x axis range.

 

参考文献:

[1] 岭回归: http://baike.baidu.com/link?url=S1DwT9XFOthlB5hjGP6Ramxt-fvtCJ-RUXYVSw-z9t7-hZIojL7eroUQwKaJd5KE9-jVEQeRtxZeuUz59SBE6q

[2] 正则化、归一化含义解析: http://sobuhu.com/ml/2012/12/29/normalization-regularization.html

[3] 希尔伯特矩阵: http://zh.wikipedia.org/zh-cn/%E5%B8%8C%E5%B0%94%E4%BC%AF%E7%89%B9%E7%9F%A9%E9%98%B5

[4] 岭回归分析总结: http://download.csdn.net/detail/shengshengwang/7225251


http://chatgpt.dhexx.cn/article/wMFZhaW3.shtml

相关文章

R语言广义线性模型

1.广义线性模型和glm()函数 广义线性模型扩展了线性模型的框架,它包含了非正态因变量的分析。 广义线性模型通过拟合响应变量的条件均值的一个函数(不是响应变量的条件均值),假设响应变量服从指…

广义线性模型(GLM)初级教程

文章目录 广义线性模型指数分布族性质 连接函数正则连接函数(canonical link function)如何找这样的g? 模型详解参数估计极大似然估计Newton-Raphson MethodFisher Scoring MethodIteratively Reweighted Least Squares关于FS和IRLS区间估计 模型检验Pearson Residu…

广义线性模型(Generalized Linear Model)之二:Logistic回归

广义线性模型(Generalized Linear Model)之二:Logistic回归 一、引入:多元线性回归模型二、Logistic回归模型三、非条件logistic回归模型(一)介绍(二)模型的建立与检验(三…

广义线性模型(GLM)及其应用

广义线性模型[generalize linear model(GLM)]是线性模型的扩展,通过联系函数建立响应变量的数学期望值与线性组合的预测变量之间的关系。它的特点是不强行改变数据的自然度量,数据可以具有非线性和非恒定方差结构。是线性模型在研究响应值的非正态分布以…

广义线性回归模型

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、广义线性回归模型二、数据集简介三、使用步骤1.引入库和读入数据2.简单分析3.详细分析3.回归分析4.计算混淆矩阵和整体预测率 前言 提示:glm被…

广义线性模型GLM

本文转自 GLM(广义线性模型) 与 LR(逻辑回归) 详解(原作者:爱学习的段哥哥) GLM的内容,本应该较早之前就总结的,但一直觉得这种教科书上的基础知识不值得专门花时间copy到博客里来。直到某一天看到一篇不错的总结&…

广义线性模型--Generalized Linear Models

监督学习问题: 1、线性回归模型: 适用于自变量X和因变量Y为线性关系 2、广义线性模型: 对于输入空间一个区域改变会影响所有其他区域的问题,解决为:把输入空间划分成若干个区域,然后对每个区域用不同的多项…

广义线性模型(Generalized Linear Models, GLM)

上一篇博客中我们说到线性回归和逻辑回归之间隐隐约约好像有什么关系,到底是什么关系呢?我们就来探讨一下吧。(这一篇数学推导占了大多数,可能看起来会略有枯燥,但这本身就是一个把之前算法统一起来的抽象模型&#xf…

广义线性模型(Generalized Linear Model)——机器学习

零、前言 对于条件分布(y|x;θ),对于线性回归模型有,而对分类问题有。其实这些分布均是广义线性模型(GLM)的特殊情况。 我们通过定义广义线性模型,可以据此求出拟合函数h(x) 一、指数分布族(Exponential …

广义线性模型和线性回归

广义线性模型(GLM) 首先术语广义线性模型(GLM)通常是指给定连续和/或分类预测变量的连续响应变量的常规线性回归模型。它包括多元线性回归,以及ANOVA和ANCOVA(仅具有固定效果)。形式为 yi〜N&a…

机器学习之广义线性模型

深夜博客在今天开张啦 一年前接触了机器学习,纯属个人兴趣,还没想到要入坑,现在沉迷无法自拔了哈哈哈。好了也不说太多废话了,今天的主题是广义线性模型啦!这篇博客是参考斯坦福cs229 lecture1中的Generalize Linear …

广义线性模型理解

本文纯属个人理解,恳求指正。 广义线性回归能做什么?为什么我们要使用广义线性回归? 这俩天看到了广义线性回归这个概念,百度上面基本是吴恩达的copy版本,知乎上面都是大神写的,表示看完等于没看。 看了p…

广义线性模型1

1.1 Generalized Linear Models[广义线性模型] 线性模型[linear model],也称经典线性模型[classical linear model]或一般线型模型[general linear model,GLM]。广义线性模型[generalized linear model,GENMOD]由Nelder & Wedderburn[19…

R之广义线性模型

R之广义线性模型 一、广义线性模型和glm()函数 结果变量是类别型的。二值变量(比如:是/否、有效/无效、活着/死亡)和多分类变量(比如差/良好/优秀)都显然不是正态分布;结果变量是计数型的。(比…

第5章 广义与一般线性模型

第1章 多元统计分析概述 第2章 多元数据的数学表达 第3章 多元数据的直观表示 第4章 多元相关与回归分析 第5章 广义与一般线性模型 5.1 模型的选择5.2 广义线性模型5.3 一般线性模型 第6章 判别分析及R使用 第7章 聚类分析及R使用 第8章 主成分分析及R使用 第9章 因子分析及…

广义线性模型

今天我来介绍一种在机器学习中应用的比较多的模型,叫做广义线性模型(GLM)。这种模型是把自变量的线性预测 函数当作因变量的估计值。在机器学习中,有很多模型都是基于广义线性模型的,比如传统的线性回归模型&#xff…

广义线性模型(Generalized Linear Model)

转载于:广义线性模型(Generalized Linear Model) - 肉鹅阿笨 - 博客园 (cnblogs.com) 1.指数分布族 我们在建模的时候,关心的目标变量Y可能服从很多种分布。像线性回归,我们会假设目标变量Y服从正态分布,而…

R|广义线性模型知识点归纳

本文分为两个部分: (1)广义线性模型的分类及其运用场景; (2) 相关R代码。需要说明的是,参考资料是上课课件,根据本人理解整理,如果有不对的地方,欢迎探讨! 目录 引言 1. 广义线性模型 (1)二…

IOS CoreData 多表查询(上)

在网上搜索了下,发现只有部分讲解CoreData关系的,但对多表之间的查询并没有相应的介绍。 因此操作自己写了个。 先创建几个表。 1、部门表:department dp_id Integer primary key dp_deptname varchar(20) //使用coredata实体创建时用…

iOS CoreData详解(五)多线程

原创blog,转载请注明出处 blog.csdn.net/hello_hwc 欢迎关注我的iOS SDK详解专栏,这里有很多基础的文章 http://blog.csdn.net/column/details/huangwenchen-ios-sdk.html 前言:很多小的App只需要一个ManagedContext在主线程就可以了&…