回归 线性模型

 LinearRegression​ 是拟合一个带有回归系数的, 使得数据的实际观测值和线性近似预测的预测值之间的残差平方和最小的一个线性模型。

 LinearRegression​将采用它的 fit 方法去拟合数组x,y,并将线性模型的回归系数\omega存储在它的coef_中:

>>> from sklearn import linear_model
>>> reg = linear_model.LinearRegression()
>>> reg.fit([[0, 0], [1, 1], [2, 2]], [0, 1, 2])
LinearRegression()
>>> reg.coef_
array([0.5, 0.5])

普通最小二乘的系数估计依赖于特征的独立性。当特征相关且设计矩阵X的列之间具有近似线性相关性时, 设计矩阵趋于奇异矩阵,最小二乘估计对观测目标的随机误差高度敏感,可能产生很大的方差。例如,在没有实验设计的情况下收集数据时,就可能会出现这种多重共线性的情况。

回归:Ridge 通过对系数的大小施加惩罚来解决普通最小二乘的一些问题。与其他线性模型一样, Ridge 用 fit 方法完成拟合,并将模型系数存储在其 coef_ 成员中:

>>> from sklearn import linear_model

>>> reg = linear_model.Ridge(alpha=.5)
>>> reg.fit([[0, 0], [0, 0], [1, 1]], [0, .1, 1])
Ridge(alpha=0.5)
>>> reg.coef_
array([0.34545455, 0.34545455])
>>> reg.intercept_
0.13636...

分类:

Ridge 有一个分类器变体:RidgeClassifier。该分类器首先将二分类目标转换为{-1,1},然后将问题作为一个回归任务处理, 以优化上述目标。预测类对应于回归预测的符号。对于多分类,该问题被视为多输出回归,预测的类对应于具有最高值的输出。

使用(受惩罚的)最小二乘损失来拟合分类模型,而不是更传统的 logistic损失或hinge损失,似乎有些问题。然而,在实践中,所有这些模型都可能导致类似的交叉验证分数, 例如准确性或精确度/召回率,而受惩罚的最小二乘损失使用的岭分类有一个明显的计算机性能剖面选择。

RidgeClassifierRidgeClassifier可以明显快于LogisticRegressionLogisticRegressionLogisticRegression,因为它只计算投影矩阵一次。

这种分类器有时被称为具有线性核的最小二乘支持向量机最小二乘支持向量机最小二乘支持向量机。

正则化函数的领系数图:

该图显示了估计器系数的共线性的影响。

岭回归是在这个例子中使用的估计器。每种颜色都表示系数向量的不同特征,这将显示为正则化参数的函数。

此示例还显示了将岭回归应用于高度病态矩阵的有效性。对于这样的矩阵,目标变量的微小变化会导致计算权重的巨大差异。在这种情况下,设置一定的正则化(Alpha)以减少这种变化(噪声)是有用的。

当alpha很大时,正则化效应控制平方损失函数,系数趋于零。在路径的末尾,当alpha趋于零,解趋于普通的最小二乘时,系数会出现很大的振荡。在实践中,有必要对alpha进行调优,以便在两者之间保持平衡。

print(__doc__)
import numpy as np
import matplotlib.pyplot as plt
from sklearn import linear_model
X = 1. / (np.arange(1, 11) + np.arange(0, 10)[:, np.newaxis])
y = np.ones(10)

n_alphas = 200
alphas = np.logspace(-10, -2, n_alphas)
coefs = []
for a in alphas:
    ridge = linear_model.Ridge(alpha=a, fit_intercept=False)
    ridge.fit(X, y)
    coefs.append(ridge.coef_)
ax = plt.gca()
ax.plot(alphas, coefs)
ax.set_xscale('log')
ax.set_xlim(ax.get_xlim()[::-1])  # reverse axis
plt.xlabel('alpha')
plt.ylabel('weights')
plt.title('Ridge coefficients as a function of the regularization')
plt.axis('tight')
plt.show()

图:

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值