线性回归-初步

1.1.1. Ordinary Least Squares

from sklearn import linear_model
reg = linear_model.LinearRegression()
reg.fit([[0,0],[1,1],[2,2]],[0,1,2])
  • reg使用的参数:

    LinearRegression(copy_X=True, fit_intercept=True, n_jobs=1, normalize=False)

reg.coef_
array([0.5, 0.5])

最小二乘法的代价函数表述为:

1.1.2 Ridge Regression

岭回归通过对最小二乘法的系数做出惩罚以解决部分的问题,最小化了惩罚的残差平方和

  • 现行回归含有惩罚项的代价函数表述为:
  • 正则化的背后的概念是引入额外的信息(偏差)来对极端参数的权重做出惩罚,此处的正则化则是引入的L2正则化。
  • 代价函数的参数α的变化导致权重稀疏的变化,岭回归即L2正则化(L2收缩),也叫权重衰减
from sklearn import linear_model
reg= linear_model.Ridge(alpha=0.5)
reg.fit([[0,0],[0,0],[1,1]],[0,0.1,1])
  • reg使用的参数
    Ridge(alpha=0.5, copy_X=True, fit_intercept=True, max_iter=None,
    normalize=False, random_state=None, solver='auto', tol=0.001)
 reg.intercept_ 
0.1363636363636364
reg.coef_
array([0.34545455, 0.34545455])

1.1.2.1 Setting the regularization parameter: generalized Cross-Validation 通过交叉验证获得回归效果最恰当的惩罚项的参数

from sklearn import linear_model
reg=linear_model.RidgeCV(alphas=[0.1, 1.0, 10.0])
reg.fit([[0,0],[0,0],[1,1]],[0,0.1,1])
  • reg使用的参数
    RidgeCV(alphas=[0.1, 1.0, 10.0], cv=None, fit_intercept=True, gcv_mode=None,
    normalize=False, scoring=None, store_cv_values=False)
reg.alpha_
0.1

1.1.3 Lasso(权重稀疏)

  • L1正则化可生成稀疏的特征向量,且大多数的权值为0,当高维的数据集中包含许多不想管的特征,尤其是在不相关的特征数量大于样本数量是,权重的稀疏化可以发挥特征选择的作用。
  • 损失函数可以表示为:
from sklearn import linear_model
reg= linear_model.Lasso(alpha=0.1)
reg.fit([[0,0],[1,1]],[0,1])
  • reg使用的参数:

    Lasso(alpha=0.1, copy_X=True, fit_intercept=True, max_iter=1000,
    normalize=False, positive=False, precompute=False, random_state=None,
    selection='cyclic', tol=0.0001, warm_start=False)

import numpy as np
reg.predict([[1,1]])
# 如果是一维数组的话,需要使用np.array([1,1]).reshape(1,-1)  保证是一行多列数据,如果是(-1,1)保证是一列多行数据。-1 表示会根据原始数据的shape自动的更改
array([0.8])
reg
  • reg使用的参数:

    Lasso(alpha=0.1, copy_X=True, fit_intercept=True, max_iter=1000,
    normalize=False, positive=False, precompute=False, random_state=None,
    selection='cyclic', tol=0.0001, warm_start=False)

reg.coef_

array([0.6, 0. ])
reg.intercept_
0.2
原文地址:https://www.cnblogs.com/onemorepoint/p/9295274.html