• Sklearn库例子3:分类——岭回归分类(Ridge Regression )例子


    为了解决数据的特征比样本点还多的情况,统计学家引入了岭回归。

    岭回归通过施加一个惩罚系数的大小解决了一些普通最小二乘的问题。回归系数最大限度地减少了一个惩罚的误差平方和。

    underset{w}{min\,} {{|| X w - y||_2}^2 + alpha {||w||_2}^2}

    这里alpha geq 0是一个复杂的参数,用来控制收缩量,其值越大,就有更大的收缩量,从而成为更强大的线性系数。

    Ridge和Line_Model一样,用fit(x,y)来训练模型,回归系数保存在coef_成员中

    例子:

    在这个例子使用岭回归作为估计器。结果中的每个颜色表示的系数向量的一个不同的功能,这是显示作为正则化参数的函数。在路径的最后,作为α趋于零和解决方案往往对普通最小二乘,系数表现出大的振荡。

    代码如下:

    #-*- encoding:utf-8 -*-
    """
    岭回归example1
    @Dylan
    """
    import numpy as np
    import matplotlib.pyplot as plt
    from sklearn import linear_model
    
    #x是10*10 的Hilbert 矩阵
    x=1./(np.arange(1,11)+np.arange(0,10)[:,np.newaxis])
    # print(x)
    y=np.ones(10)
    
    #####compute path
    n_alphas=200
    alphas=np.logspace(-10,-2,n_alphas)
    # print(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_)
    
    ###展示结果
    ax=plt.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])
    plt.xlabel('alpha')
    plt.ylabel('weights')
    plt.title('ridge coefficients as a function of reqularization')
    plt.axis('tight')
    plt.show()
    

    其中 x为hilbert矩阵,生成方式值得借鉴。np.logspace()函数文档链接如下:here

    结果如下:

  • 相关阅读:
    linux basename 和 dirname 获取当前路径
    灵活的装饰器
    ubuntu 20version install wechat
    git pull 总提示让输入merge 信息
    Linux脚本中$#、$0、$1、$@、$*、$$、$?
    ansible
    MMD讲解
    再生希尔伯特空间与核函数讲解
    流形学习
    聚类
  • 原文地址:https://www.cnblogs.com/itdyb/p/5842019.html
Copyright © 2020-2023  润新知