岭系数对回归系数的影响

翻译者:@Loopy
校验者:@barrycg

本实例展示了回归模型系数间的共线性。

岭回归 是本例中使用的预测模型。每种颜色都分别表示不同特征下的回归系数向量,岭系数alpha是正则化项的参数。下图表示了岭系数作为变量参数,回归系数在岭回归模型中的变化。

这个示例还显示了将岭回归应用于高病态矩阵的有效性。在高病态矩阵中,一些变量的微小变化会导致计算权重(回归系数)的巨大差异。在这种情况下,设置一个确定的正则化项(alpha)可以减少这种不良差异(噪声)。

当alpha很大时,正则化项是平方损失函数的主要影响因子,回归系数的影响趋于零。在路径的末端,当alpha趋近零时,损失函数会慢慢变成普通最小二乘,回归系数表现出较大的波动。在实践中,有必要对alpha进行调优,以便在两者之间保持平衡。

  1. import numpy as np
  2. import matplotlib.pyplot as plt
  3. from sklearn import linear_model
  1. # X 是10x10的希尔伯特矩阵
  2. X = 1. / (np.arange(1, 11) + np.arange(0, 10)[:, np.newaxis])
  3. y = np.ones(10)
  1. # 计算不同岭系数时的回归系数
  2. n_alphas = 200
  3. alphas = np.logspace(-10, -2, n_alphas)
  4. coefs = []
  5. for a in alphas:
  6. ridge = linear_model.Ridge(alpha=a, fit_intercept=False)
  7. ridge.fit(X, y)
  8. coefs.append(ridge.coef_)
  1. #绘图
  2. ax = plt.gca()
  3. ax.plot(alphas, coefs)
  4. ax.set_xscale('log')
  5. ax.set_xlim(ax.get_xlim()[::-1])
  6. plt.xlabel('岭系数alpha')
  7. plt.ylabel('回归系数coef_')
  8. plt.title('岭系数对回归系数的影响')
  9. plt.axis('tight')
  10. plt.show()

png