• sklearn1.1.2.Ridge Regression


    1.1.2 Ridge Regression

    Ridge回归通过对系数的惩罚值来解决最小二乘法的系数问题。岭系数的最小化惩罚残差平方和的公式:


    这里,是用来控制收缩量的复杂参数:参数值越大,收缩量也越大,因此系数对共线性变得更加稳健。


    与其他线性模型一样,岭模型对数组X,y进行拟合,并将线性模型的系数存储在coef_成员中

    from sklearn import linear_model
    reg=linear_model.Ridge(alpha=0.5)
    print(reg.fit([[0,0],[0,0],[1,1]],[1,0.1,1]))#Ridge(alpha=0.5, copy_X=True, fit_intercept=True, max_iter=None,normalize=False, random_state=None, solver='auto', tol=0.001)
    print(reg.coef_)#[0.16363636 0.16363636]

    例子

    1、画出岭系数的正则函数

    展现共线性对估计参数系数的影响

    岭回归在本例中被使用。每一种颜色代表一种不同的系数向量,这时作为正则参数的函数显示的。

    此例将岭回归应用在了高度异常的矩阵上,对于这个矩阵,小小的改变可以导致计算权重产生巨大的差异。在这种情况下,设置一定的正则化(参数)对减少这张变化(噪音)是由用的。

    当参数很大的时候,正则化之后的影响的贡献对二次损失函数以及系数的影响趋近于零。在图像的末尾,由于参数趋近于零,选用的是普通的最小二乘法,最后的系数产生了较强的震荡。在实际情况下,需要手动调参保持两者平衡。(上面标题是代码的链接)

    2、使用较少的特征对文本文档进行分类

    这个例子展示了怎么通过scikit-learn进行bag-of-words的方法对文档进行分类。

    1.1.2.1复杂度

    这个方法与最小二乘法的复杂度相同

    1.1.2.2设置一个正则化的参数:广义的交叉验证

    RidgeCV通过alpha参数的内置交叉验证实现岭回归,这个对象的工作原理与GridSearchCV(这个是找最好梯度的一个函数),没有参数会默认给出参数(0.1 1 10)用于做交叉验证,这时一个有效的留一法的交叉验证:

    from sklearn import linear_model
    reg=linear_model.RidgeCV()
    print(reg.fit([[0, 0], [0, 0], [1, 1]], [0, .1, 1]))#RidgeCV(alphas=(0.1, 1.0, 10.0), cv=None, fit_intercept=True, gcv_mode=None,normalize=False, scoring=None, store_cv_values=False)
    print(reg.alpha_)#0.1

    参考

    关于最小二乘法的详解我是超链接


  • 相关阅读:
    【SQL】含有NULL值的排序
    【SQL】结构化查询语言
    【Oracle】体系结构
    【PL/SQL】匿名块、存储过程、函数、触发器
    【Linux】VMware安装VMware Tools工具
    【SQL】INTERVAL YEAR TO MONTH 和 INTERVAL DAY TO SECOND
    Tornado源码浅析
    【Python之路】特别篇--property()函数 和 @property 装饰符
    【Python之路】特别篇--生成器(constructor)、迭代器(iterator)、可迭代对象(iterable)
    【Python之路】特别篇--基于领域驱动模型架构设计的京东用户管理后台
  • 原文地址:https://www.cnblogs.com/csnd/p/16675638.html
Copyright © 2020-2023  润新知