繪制正則化函數的嶺系數圖?

該圖顯示了估計器系數的共線性的影響。

嶺回歸是在這個例子中使用的估計器。每種顏色都表示系數向量的不同特征,這將顯示為正則化參數的函數。

此示例還顯示了將嶺回歸應用于高度病態矩陣的有效性。對于這樣的矩陣,目標變量的微小變化會導致計算權重的巨大差異。在這種情況下,設置一定的正則化(Alpha)以減少這種變化(噪聲)是有用的。

當alpha很大時,正則化效應控制平方損失函數,系數趨于零。在路徑的末尾,當alpha趨于零,解趨于普通的最小二乘時,系數會出現很大的振蕩。在實踐中,有必要對alpha進行調優,以便在兩者之間保持平衡。

# Author: Fabian Pedregosa -- <fabian.pedregosa@inria.fr>
# License: BSD 3 clause

print(__doc__)

import numpy as np
import matplotlib.pyplot as plt
from sklearn import linear_model

# X is the 10x10 Hilbert matrix
X = 1. / (np.arange(111) + np.arange(010)[:, np.newaxis])
y = np.ones(10)

# #############################################################################
# Compute paths

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_)

# #############################################################################
# Display results

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.174秒)

Download Python source code: plot_ridge_path.py

Download Jupyter notebook: plot_ridge_path.ipynb