美文网首页
岭回归及其实例

岭回归及其实例

作者: 闫_锋 | 来源:发表于2018-05-23 00:43 被阅读12次

对于一般地线性回归问题,参数的求解采用的是最小二乘法,其目标函数如下:

argmin||X * w - y||^(2)

参数w的求解,也可以使用如下矩阵方法进行:

w = (X.T * X)^(-1) * X.T * y 

对于矩阵X,若某些列线性相关性较大(即训练样本中某些属性线性相关,不满秩,稀疏矩阵),就会导致X.T * X的值接近0,在计算(X.T * X)^(−1)时就会出现不稳定性。

结论:传统的基于最小二乘的线性回归法缺乏稳定性。

岭回归的优化目标: (正则项)

argmin||X * w - y||^(2) + alpha * ||w||^(2)
w = (X.T * X + alpha * I)^(-1) * X.T * y 
  • 岭回归(ridge regression)是一种专用于共线性数据分析的有偏估计回归方法。
  • 是一种改良的最小二乘估计法,对某些数据的拟合要强于最小二乘法。

在sklearn库中,可以使用sklearn.linear_model.Ridge调用岭回归模型,其
主要参数有:
• alpha:正则化因子,对应于损失函数中的α。
• fit_intercept:表示是否计算截距。
• solver:设置计算参数的方法,可选参数‘auto’、‘svd’、‘sag’等。

import numpy as np
from sklearn.linear_model import Ridge
from sklearn import model_selection
import matplotlib.pyplot as plt
from sklearn.preprocessing import PolynomialFeatures

def main():
    #data = np.genfromtxt('岭回归.csv')
    data = np.genfromtxt('岭回归.csv', delimiter=',', skip_header=1, usecols=(1, 2, 3, 4, 5))

    #data = data.reshape(data.shape[0], 6)
    #print(data.shape)
    plt.subplot(211)
    plt.plot(data[:, 4])

    X = data[:, :4]
    y = data[:, 4]

    ploy = PolynomialFeatures(6)
    X = ploy.fit_transform(X)

    train_set_X, test_set_X, train_set_Y, test_set_y = \
        model_selection.train_test_split(X, y, test_size=0.3, random_state=0)

    clf = Ridge(alpha=1.0, fit_intercept=True)
    clf.fit(train_set_X, train_set_Y)
    print(clf.score(test_set_X, test_set_y))

    start = 200
    end = 300

    y_pre = clf.predict(X)
    time = np.arange(start, end)
    plt.subplot(212)
    plt.plot(time, y[start:end], 'b', label='real')
    plt.plot(time, y_pre[start:end], 'r', label='predict')
    plt.legend(loc="upper left")
    plt.show()


if __name__ == '__main__':
    main()

相关文章

  • 岭回归及其实例

    对于一般地线性回归问题,参数的求解采用的是最小二乘法,其目标函数如下: 参数w的求解,也可以使用如下矩阵方法进行:...

  • 岭回归及其sklearn实现

    概述   对于普通最小二乘的参数估计问题,当模型的各项是相关时,最小二乘估计对于随机误差非常敏感,会产生很大的方差...

  • sklearn学习笔记——线性回归

    “广义线性模型”,是指线性模型及其简单的推广,包括岭回归,lasso,LAR,logistic回归,感知器等等。 ...

  • ElasticNet回归的python实现及与岭回归、lasso

    ElasticNet回归与岭回归、Lasso回归ElasticNet回归也叫弹性网络回归,是岭回归和Lasso回归...

  • (Ridge, Lasso) Regression

    岭回归 岭回归 的损失函数 MSE+L2 岭回归还是多元线性回归 y = wTx 只不过损失函数MSE添加了损失...

  • JavaScript门道之标准库

    目录1.什么是标准库2.Object对象及其实例3.Number对象及其实例4.String对象及其实例5.Boo...

  • 公众号-科研私家菜学习记录(4)

    岭回归 定义:岭回归,又称脊回归、吉洪诺夫正则化(Tikhonov regularization),是对不适定问题...

  • 岭回归

    岭回归 岭回归和lasso解决回归中重大疑难问题:排除多重共线性,进行变量的选...

  • sklearn的常用函数以及参数——2. 回归算法

    回归算法 1. 最小二乘回归 2. 岭回归 3. 核岭回归 4. 套索回归 5. 弹性网络回归 6. 多项式...

  • 线性回归、岭回归

    用sklearn内置的波士顿房屋数据集做一下房价预测,练习线性回归的API。 正规方程法 梯度下降法 岭回归 获取...

网友评论

      本文标题:岭回归及其实例

      本文链接:https://www.haomeiwen.com/subject/hucljftx.html