繪製 Ridge 係數作為正規化的函數#

顯示共線性對估計器係數的影響。

此範例中使用 Ridge 回歸作為估計器。每個顏色代表係數向量的不同特徵,並顯示為正規化參數的函數。

此範例也顯示了將 Ridge 回歸應用於高度病態條件矩陣的實用性。對於此類矩陣,目標變數的輕微變化可能會導致計算權重的巨大差異。在這種情況下,設定一定的正規化 (alpha) 以減少這種變化 (雜訊) 會很有用。

當 alpha 非常大時,正規化效果會主導平方損失函數,並且係數趨向於零。在路徑的末端,隨著 alpha 趨向於零,並且解決方案趨向於普通最小平方法,係數會呈現很大的震盪。實際上,必須調整 alpha,以便在兩者之間保持平衡。

# Authors: The scikit-learn developers
# SPDX-License-Identifier: BSD-3-Clause

import matplotlib.pyplot as plt
import numpy as np

from sklearn import linear_model

# X is the 10x10 Hilbert matrix
X = 1.0 / (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()
Ridge coefficients as a function of the regularization

腳本的總執行時間: (0 分鐘 0.420 秒)

相關範例

嶺迴歸係數與 L2 正規化的關係

嶺迴歸係數與 L2 正規化的關係

模型正規化對訓練和測試誤差的影響

模型正規化對訓練和測試誤差的影響

線性模型係數解釋中的常見陷阱

線性模型係數解釋中的常見陷阱

具有強離群值的資料集上的 HuberRegressor 與嶺迴歸

具有強離群值的資料集上的 HuberRegressor 與嶺迴歸

由 Sphinx-Gallery 產生之範例集