精华内容
下载资源
问答
  • 岭回归原理以及代码实现--机器学习
    千次阅读
    2020-10-16 22:52:45

    过拟合与欠拟合了解

    在机器学习中模型的泛化能力很重要,泛化能力强的模型(本人理解为该模型对于大部分数据的拟合都能达到较好的效果即为泛化能力强的模型)是好模型。这里面就涉及到欠拟合与过拟合问题。

    1.欠拟合underfitting:简单来说,就是用简单的模型去拟合复杂的数据,这会导致高Bias(偏差,即模型的期望输出与真实的输出之间的差异)
    2.过拟合overfitting:用复杂的模型去拟合简单的数据,会导致高Variance(方差,刻画了不同的训练集得到的模型的输出与这些模型期望输出的差异)

    用图可能更好理解一些,依次为欠拟合,拟合效果好,和过拟合。
    在这里插入图片描述
    想解决欠拟合,就要添加多项式特征,或者添加其他特征减少正则化参数。
    而想改善或解决过拟合,最好的办法就是正则化,即保留所有的特征,减少参数的大小。

    正则化与岭回归

    岭回归就是在损失函数中加入正则化,(正则化就是所有参数 θ \theta θ的平方和,也就是l2范数,其中算平方和的时候不包括 θ 0 \theta_{0} θ0)改变了梯度下降法中的 θ \theta θ更新公式,用正则化改善or减少模型的过拟合问题,用一个例子来理解:

    我们知道线性回归的损失函数为: J θ = 1 2 m ∑ i = 1 m ( h θ ( x i ) − y i ) 2 J_{\theta}=\dfrac{1}{2m}\sum\limits_{i=1}^{m}(h_{\theta}(x^{i})-y^{i})^{2} Jθ=2m1i=1m(hθ(xi)yi)2

    而岭回归的损失函数是线性回归的损失函数加正则化:
    J θ = 1 2 m ∑ i = 1 m ( h θ ( x i ) − y i ) 2 + λ ∑ j = 1 x θ j 2 J_{\theta}=\dfrac{1}{2m}\sum\limits_{i=1}^{m}(h_{\theta}(x^{i})-y^{i})^{2}+\lambda\sum\limits_{j=1}^{x}\theta_{j}^{2} Jθ=2m1i=1m(hθ(xi)yi)2+λj=1xθj2

    λ \lambda λ就是正则化的参数,该值选取过大,会把所有的 θ \theta θ参数都最小化,造成欠拟合。选取过小,会解决不了过拟合问题。

    知道以上所说的含义之后,现在给出一个式子:
    m i n θ = 1 2 m ∑ i = 1 m ( h θ ( x i ) − y i ) 2 + 1000 θ 3 2 + 10000 θ 4 2 min_{\theta}=\dfrac{1}{2m}\sum\limits_{i=1}^{m}(h_{\theta}(x^{i})-y^{i})^{2}+1000\theta_{3}^{2}+10000\theta_{4}^{2} minθ=2m1i=1m(hθ(xi)yi)2+1000θ32+10000θ42
    在这个式子中我们设定的 λ \lambda λ值一个为1000,一个10000,很大了对吧?现在呐,这个式子要求最小值,要咋办呐,在 λ \lambda λ值给定很大的情况下,我们只能让参数 θ \theta θ值减少到最小,这样才保证最终的结果最小。这个过程就是上面所说的,解决过拟合就是添加正则化(即保留所有特征,减少参数大小)

    了解以上原理之后,再来看下面的多项式,
    h θ = θ 0 + θ 1 x + θ 2 x 2 + θ 3 x 3 + θ 4 x 4 h_{\theta}=\theta_{0}+\theta_{1}x+\theta_{2}x^{2}+\theta_{3}x^{3}+\theta_{4}x^{4} hθ=θ0+θ1x+θ2x2+θ3x3+θ4x4
    根据以上分析,该公式想要求得最优解(逼近至最小值)就可使用梯度下降法进行迭代逼近。而梯度下降法中的代价函数(损失函数)部分即为岭回归的损失函数。
    由于岭回归是加入正则化的损失函数(减少了参数大小),所以梯度下降法中的 θ \theta θ更新公式也加入了正则化,推导结果如下:
    θ j = ( 1 − α λ m ) θ j − α m ∑ i = 1 m ( ( h θ ( x i ) − y i ) x j i \theta_{j}=(1-\dfrac{\alpha\lambda}{m})\theta_{j}-\dfrac{\alpha}{m}\sum\limits_{i=1}^{m}((h_{\theta}(x^{i})-y^{i})x_{j}^{i} θj=(1mαλ)θjmαi=1m((hθ(xi)yi)xji
    把上面的更新公式向量化之后就可以转成代码进行岭回归实现了。

    θ \theta θ更新公式推导敲出来太麻烦了,感兴趣的盆友可以私我发手推笔记)

    岭回归代码实现

    #代码规范化,用函数包装成代码块,不要散着写
    #岭回归代码,只有theta更新公式不一样,加了正则化
    import numpy as np
    import matplotlib.pyplot as plt
    from sklearn.metrics import mean_absolute_error,mean_squared_error,median_absolute_error,r2_score
    
    #1.首先读取数据,写一个读取数据的函数
    def getData():
        data=np.loadtxt("F:/comdata/aqi2.csv",delimiter=',',skiprows=1,dtype=np.float32)
        X=data[:,1:]  #二维矩阵
        Y=data[:,0]  #打印结果为一行
        Y=Y.reshape(-1,1) #将y的一行转为一列二维矩阵,行数由列数自动计算
        X=dataNumalize(X) #归一化之后的X
        return X,Y
    
    #2.将特征集数据进行归一化处理,处理后的数据也是要进行输出,所以此函数要在读取数据的函数中进行调用
    #归一化是对一个矩阵进行归一化,所以此函数有一个参数
    #归一化使用(某个值-均值)/标准差
    def dataNumalize(X):
        mu=X.mean(0)  #对X特征集的第一列的均值 X(n)
        std=np.std(X)  #S(n)
        X=(X-mu)/std   #将归一化处理结果赋值X
        index=np.ones((len(X),1)) #最后一列1
        X=np.hstack((X,index)) #进行合并 ,此合并函数只含一个参数,所以将X,index带个括号看成一个参数
        return X
    
    #3.下面计算损失函数,在损失函数中有3个参数:theta,X,Y
    def lossFuncation(X,Y,theta):
        m=X.shape[0]  #m是X特征集的样本数,即行数
        loss=sum((np.dot(X,theta)-Y)**2)/(2*m)
        return loss
    
    #4.下面实现批量下降梯度算法
    #此算法的theta更新公式中有四个参数,X,Y,theta,alpha
    #另外我们需要定义一个迭代次数num_iters,就是更新多少次(alpha走多少步)才能下降到最低点,每迭代一次,theta就更新一次
    def BGD(X,Y,theta,alpha,lamba,num_iters):
        m=X.shape[0]
        loss_all=[]  #定义loss值列表,把每次theta更新时跟着变动的loss函数值存入展示
        for i in range(num_iters):
        #参数的更新公式向量化如下两行代码
            theta=theta-alpha*np.dot(X.T,np.dot(X,theta)-Y)/m
            theta[:-1]=theta[:-1]-alpha*(lamba/m)*theta[:-1]
            loss=lossFuncation(X,Y,theta)
            loss_all.append(loss)  #吧loss值添加到loss_all列表中去
            print("第{}次的loss值为{}".format((i+1),loss))
        return theta,loss_all
    
    #5.主函数进行测试
    #此测试没有区分text和predict,所有的数据用来做测试集
    if __name__=='__main__':
        X,Y=getData()
        theta=np.ones((X.shape[1],1))  #对theta起点值进行初始化
        num_iters=1000  #初始化迭代次数为500
        alpha=0.01  #初始化α(下降步长)为0.01
        lamba=0.05#参数lambda
        theta,loss_all=BGD(X,Y,theta,alpha,lamba,num_iters) #调用BGD函数求theta更新参数,和每次更新后的loss函数值
        print(theta)
        #做模型预测
        y_predict=np.dot(X,theta)
    
    
    
    #最后进行一个模型的评价----根据模型评价指标与所的结果进行判定,结果与迭代次数有关
    print("平均绝对误差:",mean_absolute_error(Y,y_predict))
    print("均方误差:",mean_squared_error(Y,y_predict))
    print("中之绝对误差:",median_absolute_error(Y,y_predict))
    print('r2',r2_score(Y,y_predict))
    
    #模型测试完毕,模型预测结果进行数据可视化
    plt.scatter(np.arange(100),Y[:100],c='red')  #真实label
    plt.scatter(np.arange(100),y_predict[:100],c='green') #预测的label
    plt.show()
    #绘制损失函数随着迭代次数改变所进行变化曲线
    plt.plot(np.arange(num_iters),loss_all,c='black')
    #plt.show()
    

    运行结果如下:
    在这里插入图片描述

    更多相关内容
  • 岭回归原理简单分析与理解

    千次阅读 多人点赞 2020-03-02 18:19:43
    岭回归原理简单分析与理解 首先说明一下,岭回归用于线性回归。学习岭回归,给我的感受是,它的数学公式推导比较简单,然而理解其含义相对难一些,所以本文着重引导你去理解它,而不仅仅是会推导公式。至于背景介绍...

    岭回归原理简单分析与理解

    首先说明一下,岭回归用于回归。学习岭回归,给我的感受是,它的数学公式推导比较简单,然而理解其含义相对难一些,所以本文着重引导你去理解它,而不仅仅是会推导公式。至于背景介绍,网络上很多,这里就不再“复制”了。

    这里对数据以及直线方程等全部进行定义与说明,后面就不再重复,直接使用。
    现在有一些数据(𝐱_1 , y_1 ) , (𝐱_2 , y_2 ) , … , (𝐱_n , y_n ),其中𝐱_i,i=1 , 2 , … , n 表示第i个样本的一些特征,y_i,i=1 , 2 , … , n 表示第i个样本的数值。
    对于拟合的线性方程
    在这里插入图片描述
    这里,为了使式子变得简化,可以进行一定的变换,令
    在这里插入图片描述
    则原线性方程可写成
    在这里插入图片描述

    先看一下岭回归的目标函数:
    在这里插入图片描述
    显然,它是在最小二乘的基础之上,在目标函数中增加了后面一项,为了完全弄明白上面这个式子的含义,我们还是先简单说一下最小二乘法。
    这里就不介绍背景部分了,直接进入正题,简单介绍最小二乘法。
    现在,想一个问题:下面的这些样本,用哪条直线进行拟合比较好?
    在这里插入图片描述
    显然,我们会觉得使用绿色的线进行拟合相对来讲更好一些,那么,我们为什么会觉得绿色的这条线,好一些呢?能不能给出一个比较合理的解释呢?
    每一个x都对应一个相应的y值,那么,我们可以设计一条直线使得每个x在这个函数上的y‘值与y很接近,当然,如果每个y’与y值都相等是最好的。所以就可以写出目标函数
    在这里插入图片描述
    用图形来表示,大概如下图所示(注:此时x是1维的)
    在这里插入图片描述
    然后,我们再进行求解这个目标函数 ,为了使公式更为简洁,令
    在这里插入图片描述
    在这里插入图片描述
    则目标函数可以写成
    在这里插入图片描述
    由于这个函数是凸函数,而且是求极小值,所以可以对其求导,导数为0的点,即是极小值点,简化过程(具体如何求导,这里就不仔细讲了)如下
    在这里插入图片描述
    令其导数等于0,得
    在这里插入图片描述
    在这里插入图片描述
    似乎,写到这里,最开始的那个问题就解决了,因为XY是训练样本,都已知,完全可以求出w的值。
    但是,还有一下几个问题需要考虑

    1. 如果X的转置与X的乘积如果不可导,这个方法可行吗?
      :如果不可导,那这个方法就不太可行。
    2. 在什么情况下,X的转置与X的乘积不可导?
      :假设X是列不满秩的,X的转置与X的乘积就不可导,比如每个样本有N个维度(属性),但训练样本的总个数小于N个。(这只是它不满秩的情况之一,但很常见)
    3. 针对不可导的情况,有没有什么比较好的解决办法呢?
      :岭回归就是专门为解决X的转置与X的乘积不可导而设计的,其具体方法在后面详细介绍。

    当然,“天下没有免费的午餐”,解决了某个问题,很可能会出现另外一个问题,但如果另外一个问题的影响不那么大,一般还是可以接受的。
    下面是思考过程
    先看一下刚才计算的w
    在这里插入图片描述
    此时的w是理论上的最优解(至于是不是现实的最优解还不一定),但X的转置与X的乘积一般不可导,很可能求不出w
    这个方法还是很好的,不能直接舍弃,那么如何去改进呢?(改进一般比创造新方法相对简单)
    最直接的想法就是:既然X的转置与X的乘积一般不可导,那在后面加上一个单位阵,相当于是对w进行小小的扰动,最后得到的w*一般不是最优解,但也比较接近最优解了。(当最优解很难很难求解出来,然而可以较为简单的求出接近最优解的解一般是一种很好的选择)
    将刚才解出来的,添加一些扰动(大小由λ控制),变为
    在这里插入图片描述
    再反推一下目标函数,可以得到
    在这里插入图片描述

    注意:这里,通过增加一个单位阵使得w 有解,从而推出极小化的目标函数只是我个人猜测,仅供参考!
    这个含义很明显,就是使得所有的w_i平方和更小,为了更方便理解其具体含义,暂且将其设置成二维的,即w = (w_1 , w_2),那么该式用图形可表示为
    在这里插入图片描述
    其中,每个蓝色的点表示可以选择的(w_1 , w_2)的值,然后选择其中平方和最小的那一个。
    例如,在上面的图中,平方和最小的那个点,显然就是有红色虚线画成的圆上的那个点。
    那么,这样选择有什么好处呢?
    一般来讲,拟合的线性回归方程中w_i , i = 1 , 2 , … , n 越“简单”,用来预测新的样本时效果更好一些。具体原因,可以了解“奥卡姆剃刀定律
    那么,怎么样才算简单呢?下面看几个例子在这里插入图片描述
    假设这3个式子拟合同一样本,且拟合效果相差不大,那么即便第二个式子的拟合效果差一点点,一般人很可能还是更愿意选择第二条直线当作拟合的直线。(如果相信奥卡姆剃刀定律,那就不要犹豫了,选第二条直线吧)
    那么,现在想一下,怎么样才能用数学公式选择出那个更为简单的式子?
    思考过程:经过简单观察,第2个式子有个特点,那就是每个变量的系数比较小,那先暂且假设,所有的系数之和越小,函数简单。经过计算,发现第3个式子系数之和等于0,显然,刚才的假设不太好,那现在更改一下假设,所有系数的绝对值之和越小,函数越简单,好像这样假设没什么问题了。但还需要注意的是,计算机计算绝对值的速度比计算平方要慢,所以刚才那个假设,也可以大致等价为,所有系数的平方和越小,函数越简单
    注意:所有思考的最终结果,都不可能绝对完美,所以你才需要学习,然后慢慢改进啊。毕竟,再贵的电脑也有出bug的时候,再完美的人也会有缺点。

    上面,理解了岭回归目标函数的后面那个函数(称为L2正则化)的大概含义,下面我们换种方式理解“最小二乘法”目标函数的含义,先来看看这个目标函数
    在这里插入图片描述
    这里的x_i , y_i都是已知的,未知参数只有w,现在换成一种你们最常见的函数的样子。(这里只是为了方便理解,注意:字母含义都变了!)
    w只有1维的,则可以化简为
    在这里插入图片描述

    其中A,B,C都是常数。显然,这是一个一元二次方程,然后求它的极小值点(注意:这里的极值点必然是极小值点,想一下为什么?)
    函数图像大概如下图所示(蓝色的线)
    在这里插入图片描述
    与此同时,再考虑一下另外一个目标函数,可以写成
    在这里插入图片描述
    将这个目标函数用红色的线画在上一个图中
    在这里插入图片描述
    给定一个平衡的常数λ,将两者相加(用绿色的线表示),如下图所示
    在这里插入图片描述
    显然,现在的(绿色线条)极值点比原来的(蓝色线条)极值点,更接近原点O。
    再看看二维的情况,这里就不一一计算了,直接上图
    在这里插入图片描述

    这里解释一下上面那张图的含义,此时考虑的是w = (w_1 , w_2)二维的情况,其中绿色的图形是“最小二乘法”函数的图形,红色的图形是“L2正则化”(也就是岭回归目标函数后面的那个函数)的图形,最后那个虚线蓝色的图形表示给定λ情况下岭回归函数(给定λ,绿色和红色相加)的大致图形。
    显然,从图中可以看出,岭回归的极值点比最小二乘法的极值点更接近原点,在“最小二乘法”的基础上,增加一个L2正则项,得到的最优的 w* 更为“简单”(这里再看一下刚才的假设所有系数的平方和越小,函数越简单
    写到这里,我所理解的岭回归的含义就基本写完了。
    接下来,写一下岭回归的计算过程(矩阵求导部分,本文略过):
    目标函数
    在这里插入图片描述
    因为该函数是凸函数,所以极值点就是导数为0的点,先对w求偏导
    在这里插入图片描述
    令偏导等于0,有
    在这里插入图片描述
    此时,一般情况下w是可以计算出来的(一般不会有不可逆的情况了)。至于特殊情况,那就需要你继续努力的改进了啊!

    如果,有什么问题,欢迎留言!

    展开全文
  • 岭回归原理及代码实现

    千次阅读 2020-03-26 14:08:19
    岭回归 特征数量比样本数量多的情况 ???????????? + ???????? 主要做了这部分修改,加上了特征值乘以单位矩阵,使得原始矩阵变成可逆矩阵。求导过程: 使用Longley数据集实现岭回归 import numpy as np from ...

    岭回归
    特征数量比样本数量多的情况
    在这里插入图片描述
    𝑋𝑇𝑋 + 𝜆𝐼 主要做了这部分修改,加上了特征值乘以单位矩阵,使得原始矩阵变成可逆矩阵。求导过程:
    在这里插入图片描述在这里插入图片描述
    在这里插入图片描述
    使用Longley数据集实现岭回归

    import numpy as np
    from numpy import genfromtxt
    from sklearn import linear_model
    import matplotlib.pyplot as plt
    # 读入数据 
    data = genfromtxt(r"longley.csv",delimiter=',')
    print(data)
    # 切分数据
    #特征值为从第一行开始的所有行/从第二列开始的所有列
    x_data = data[1:,2:]  
    #样本值为第一行第一列
    y_data = data[1:,1]
    print(x_data)
    print(y_data)
    
    # 创建模型
    # 生成50个值
    alphas_to_test = np.linspace(0.001, 1)
    # 创建模型,保存误差值
    #使用岭回归  RidgeCV 调用了交叉验证法 alphas是岭回归系数在50个值中选择
    model = linear_model.RidgeCV(alphas=alphas_to_test, store_cv_values=True)
    model.fit(x_data, y_data)
    
    # 岭系数
    print(model.alpha_)
    # loss值
    print(model.cv_values_.shape)
    
    # 画图
    # 岭系数跟loss值的关系
    plt.plot(alphas_to_test, model.cv_values_.mean(axis=0))
    # 选取的岭系数值的位置
    plt.plot(model.alpha_, min(model.cv_values_.mean(axis=0)),'ro')
    plt.show()
    

    在这里插入图片描述

    使用标准方程法求解

    import numpy as np
    from numpy import genfromtxt
    import matplotlib.pyplot as plt  
    
    
    
    # 读入数据 
    data = genfromtxt(r"longley.csv",delimiter=',')
    print(data)
    
    # 切分数据
    x_data = data[1:,2:]
    y_data = data[1:,1,np.newaxis]
    print(x_data)
    print(y_data)
    
    print(np.mat(x_data).shape)
    print(np.mat(y_data).shape)
    # 给样本添加偏置项
    X_data = np.concatenate((np.ones((16,1)),x_data),axis=1)
    print(X_data.shape)
    
    print(X_data[:3])
    
    # 岭回归标准方程法求解回归参数,公式参考原理部分
    def weights(xArr, yArr, lam=0.2):
        xMat = np.mat(xArr)
        yMat = np.mat(yArr)
        xTx = xMat.T*xMat # 矩阵乘法
        rxTx = xTx + np.eye(xMat.shape[1])*lam
        # 计算矩阵的值,如果值为0,说明该矩阵没有逆矩阵
        if np.linalg.det(rxTx) == 0.0:
            print("This matrix cannot do inverse")
            return
        # xTx.I为xTx的逆矩阵
        ws = rxTx.I*xMat.T*yMat
        return ws
    
    ws = weights(X_data,y_data)
    print(ws)
    
    # 计算预测值
    np.mat(X_data)*np.mat(ws)
    
    
    展开全文
  • 岭回归原理公式推导

    千次阅读 2018-09-12 14:31:58
    对应<...P146的岭回归公式 另外注意: 根据参考文献可知: Z is assumed to be standardized (mean 0, unit variance) (标准化) y is assumed to be centered(必须减去平均值) 参考: ...

    对应<机器学习实战>P146的岭回归公式

     

    #--------------------------------------------------------------------------------------------------------------------------------------------

     上面的不太详细,来个详细版本的吧。

    变量定义举例属性
    X\left\{ \begin{matrix} x_{11},x_{12} \\ x_{21},x_{22}\\ x_{31},x_{32}\\ \end{matrix} \right\}\left\{ \begin{matrix} 1,2\\ 2,3\\ 4,5\\ \end{matrix} \right\}

    矩阵,输入array是一个二维数组,每一行是一个样本(一条数据),每一列是一个特征(一条数据的特征的取值)。

    所以,举例中是三条数据,你可以想象一下:

    xi=(是否长发,声音高低频)

    yi=(根据上述属性判断此人是男是女)

     

    显然,李宇春只有上述两个属性,可以被分类器误判为男的。(只是举例,没有人身攻击的意思)

     

     

    Y(y_1,y_2,y_3)^T(1.5,2.5,4.5)^T列向量
    W(w_1,w_2)^T(0.47457627,0.47457627)^T列向量

    sklearn代码如下:

    from sklearn.linear_model import Ridge
    X = [[1,2],[2,3],[4,5]]
    y = [1.5,2.5,4.5]
    clf.fit(X,y)
    print(clf.intercept_)
    0.14406779661017
    print(clf.coef_)
    [0.47457627 0.47457627]

    所以根据上述实验结果可知,岭回归中有如下关系

    Y=XW+误差列
    #--------------------------------------------------------------------------------------------------------------------------------------------

     

     

    我们的目标是求min(Y-XW)^T(Y-XW)+W^TW时,W矩阵中每个元素的取值

    那么为了求得最小值,令\frac{\partial[(Y-XW)^T(Y-XW)+||W||^2]}{\partial W}=0(高中的知识,极小值处,导数为0)

    注意,这里不要基于上面的式子展开,否则下面的计算量会比较大

    \frac {\partial [(Y-XW)^T(Y-XW)+||W||^2]}{\partial w}

    =\frac{\partial [\sum_{i=1}^n(y_i-w_i*x_i)^2+\lambda\sum_{i=1}^nw_i^2]}{\partial [w_1,w_2,w_3]}(因为行向量乘以列向量=一个数)
    =-2\sum_{i=1}^n[(y_i-w_i*x_i)*x_i]+2\lambda \sum_{i=1}^nw_i(这里注意,y_i中不存在w_i因子,所以无需对y_i求导)

    (有人会想,我要的不就是Y=WX吗?怎么会y_i中不存在w_i因子呢?)

    注意,这里的y_i是你的真实数据,w_i是你对真实数据集建模后得到的系数,前者来自客观世界,后者是你主观建模。

    =2\sum_{i=1}^n w_i(\lambda+x_i^2)-2\sum_{i=1}^ny_ix_i

    =2(\lambda+x_1^2,\lambda+x_2^2,...,\lambda+x_i^2) \left\{ \begin{matrix} w_1 \\ w_2\\ w_3\\ ...\\ w_i\\ \end{matrix} \right\}-2X^TY

    =2(x_1^2+\lambda,x_2^2+\lambda,...,x_i^2+\lambda)\left\{ \begin{matrix} w_1 \\ w_2\\ w_3\\ ...\\ w_i\\ \end{matrix} \right\}-2X^TY=0

    =>(X^TX+\lambda I)W=X^TY

    =>W=(X^TX+\lambda I)^{-1}X^TY

    这里X^TY是一个列向量,(X^TX+\lambda I)是一个对角矩阵

     

     这个证明最困难的地方是哪里?

    需要一开始就十分清楚XY、W的严格定义以及各自的维度,这样才能顺利推导下来。

    至于决定他们维度的依据,Y其实是整套数据集的类别标签,X其实是不带类别标签的裸数据集,W是模型系数。

     

    另外注意:

    根据参考文献[2]可知:

    Z is assumed to be standardized (mean 0, unit variance) (标准化)

    y is assumed to be centered(必须减去平均值)

     

    参考:

    [1]https://arxiv.org/pdf/1509.09169.pdf

    [2]http://statweb.stanford.edu/~tibs/sta305files/Rudyregularization.pdf

    展开全文
  • 岭回归_ridge_

    2021-10-01 00:54:03
    利用python语言实现了Ridge回归算法
  • 岭回归算法的原理和代码实战

    千次阅读 2020-07-03 08:41:25
    学过吴恩达老师的机器学习入门课程都...而岭回归在这里的作用是一样的,同样也是防止模型过拟合。这两者的区别在于,同样在使用差平方作为所损失值后,前者使用梯度下降法进行参数优化,而后者使用最小二乘法计算参数。
  • 线性回归、岭回归、Lasso回归前言一,线性回归——最小二乘二,Lasso回归三,岭回归四, Lasso回归和岭回归的同和异五, 为什么 lasso 更容易使部分权重变为 0 而 ridge 不行?参考资料 前言 如果对L1和L2正则化,...
  • 岭回归详解 从零开始 从理论到实践

    万次阅读 多人点赞 2021-01-21 22:13:30
    岭回归详解 从零开始 从理论到实践一、岭回归的理解1.1、LinearRegression的回顾1.2、岭回归 - Ridge Regression二、sklearn的使用2.1、方法、参数与属性2.2、简单案例2.3、超参数的设定方法 -RidgeCV2.4、多项式...
  • 岭回归(Ridge Regression)

    万次阅读 多人点赞 2020-01-10 21:09:41
    岭回归(Ridge Regression)岭回归基本原理sklearn实现岭回归标准方程法实现岭回归 岭回归基本原理        岭回归的代价函数加入了一个L2正则项(没有正则项的是无偏估计,加入正则项的代价...
  • 岭回归

    千次阅读 2020-07-09 12:20:56
    岭回归(Kernel Ridge Regression) 核岭回归(Kernel Ridge Regression, KRR)结合了岭回归和分类(带l2范式正则项的线性最小二乘)和核技巧。它学到了由对应核和数据所构建空间的线性函数。对于非线性核,这对应了原始...
  • 岭回归的原理:首先要了解最小二乘法的回归原理设有多重线性回归模型 y=Xβ+ε ,参数β的最小二乘估计为当自变量间存在多重共线性,|X‘X|≈0时,设想|X‘X|给加上一个正常数矩阵(k>0)那么|X‘X|+kI 接近奇异的...
  • 贝叶斯岭回归

    千次阅读 2019-03-07 10:38:06
    https://blog.csdn.net/qq_37353105/article/details/80612561?utm_source=blogxgwz9 https://blog.csdn.net/qq_32742009/article/details/81485887
  • 一、岭回归引进的原因 当数据之间存在多重共线性(自变量高度相关)时,就需要使用岭回归分析。在存在多重共线性时,尽管最小二乘法(OLS)测得的估计值不存在偏差,它们的方差也会很大,从而使得观测值与真实值...
  • 内核岭回归

    2019-05-15 14:44:21
    Kernel ridge regression (KRR) (内核岭回归) 它所学习到的在空间中不同的线性函数是由不同的内核和数据所导致的。对于非线性的内核,它与原始空间中的非线性函数相对应。 由KernelRidge学习的模型的形式与支持...
  • 贝叶斯岭回归理论

    万次阅读 2017-07-11 23:10:11
     贝叶斯线性回归的引入主要是在最大似然估计中很难决定模型的复杂程度,ridge回归加入的惩罚参数其实也是解决这个问题的,同时可以采用的方法还有对数据进行正规化处理,另一个可以解决此问题的方法就是采用贝叶斯...
  • 参考 https://zhuanlan.zhihu.com/p/440482410(示例) https://blog.csdn.net/fq_wallow/article/details/104555623/(原理) ...wd=
  • 岭回归技术的原理和应用作者马文敏岭回归分析是一种专用于共线性分析的有偏估计回归方法,实质上是一种改良的最小二乘估计法,通过放弃最小二乘法的无偏性,以损失部分信息,降低精度为代价获得回归系数更为符合实际...
  • 基于sklearn的岭回归实现及效果分析

    千次阅读 2018-05-22 20:11:16
    岭回归也是一种用于回归的线性模型,预测公式与最小二乘法相同,但在岭回归中,对系数w的选择不仅要在训练数据上得到好的预测结果,而且还要拟合附加约束。我们还希望系数尽量小。换句话说,w的所有元素都应接近于...
  • 岭回归,Lasso回归及弹性网络回归原理及R实现

    千次阅读 多人点赞 2020-10-24 09:53:48
    Table of Contents 收缩方法 岭回归 Lasso回归 弹性网络回归 加载R包 准备数据 计算惩戒线性回归 准备数据 R函数 计算岭回归 计算lasso回归 计算弹性网络回归 模型比较 收缩方法 岭回归 岭回归缩小了回归系数,因此...
  • 转载于:https://www.cnblogs.com/DavidLeeYYL/p/8732697.html
  • ...   注:正则化是用来防止过拟合的方法。...但是一直也无法对其基本原理有一个透彻、直观的理解。直到最近再次接触到这个概念,经过一番苦思冥想后终于有了我自己的理解。   0. 正则化(Regulariz...
  • 简单易学的机器学习算法——岭回归(Ridge Regression)

    万次阅读 多人点赞 2014-05-27 20:35:10
    一、一般线性回归遇到的问题 二、
  • 岭回归分析(SPSS+SAS)

    千次阅读 2021-04-21 08:27:28
    岭回归 岭回归岭回归分析是在构建多重线性回归模型时, 对基于“最小二乘原理”推导出的估计回归系数的计算公式作一下校正,使回归系数更稳定。当自变量之间存在较强的多重共线性时,求得的多重线性回归模型很不...
  • 岭回归-回归实操

    千次阅读 2021-01-21 15:06:37
    python 岭回归算法之回归实操 基本概念 正则化 正则化是指对模型做显式约束,以避免过拟合。本文用到的岭回归就是L2正则化。(从数学的观点来看,岭回归惩罚了系数的L2范数或w的欧式长度) 正则化的具体原理就不在...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,776
精华内容 1,510
关键字:

岭回归原理

友情链接: PoorStudents.zip