注釈
最後まで をクリックすると完全なサンプルコードをダウンロードできます。
3.4.8.7. 線形モデルにおけるプロット分散と正則化¶
import numpy as np
# Smaller figures
import matplotlib.pyplot as plt
plt.rcParams["figure.figsize"] = (3, 2)
データポイントが2つしかない場合を考えます
ノイズがなければ、線形回帰はデータに完全にフィットします。

[<matplotlib.lines.Line2D object at 0x7b2074693ce0>]
現実の状況では、データにノイズ (例えば測定ノイズなど) が含まれます:

見てわかるように、この線形モデルはデータのノイズをとらえ、増幅しています。 多くの分散を表示しています。
正則化を用いる別の線形推定器、 Ridge 推定器を用いることができます。 この推定量は、非常に高い相関は多くの場合あやしいという仮定の下で、係数をゼロに縮小することによって正則化します。alphaパラメータは、使用する収縮量を制御します。
regr = linear_model.Ridge(alpha=0.1)
np.random.seed(0)
for _ in range(6):
noisy_X = X + np.random.normal(loc=0, scale=0.1, size=X.shape)
plt.plot(noisy_X, y, "o")
regr.fit(noisy_X, y)
plt.plot(X_test, regr.predict(X_test))
plt.show()

Total running time of the script: (0 minutes 0.084 seconds)