チホノフ正則化

王林
リリース: 2024-01-23 09:33:16
転載
1284 人が閲覧しました

チホノフ正則化

チホノフ正則化は、リッジ回帰または L2 正則化とも呼ばれ、線形回帰に使用される正則化手法です。 L2 ノルム ペナルティ項をモデルの目的関数に追加することで、モデルの複雑さと一般化能力を制御します。このペナルティ項は、過剰な重みを回避するために二乗和によってモデルの重みにペナルティを課し、それによって過剰適合の問題を軽減します。この方法では、損失関数に正則化項を導入し、正則化係数を調整してモデルのフィッティング能力と一般化能力のバランスをとります。チホノフ正則化は実際のアプリケーションに幅広く応用でき、モデルのパフォーマンスと安定性を効果的に向上させることができます。

正則化する前、線形回帰の目的関数は次のように表すことができます:

J(w)=\frac{1}{2m }\sum_{i=1}^{m}(h_w(x^{(i)})-y^{(i)})^2

この目的関数ではw はモデルの重みベクトル、h_w(x^{(i)}) は i 番目のサンプル x^{(i)}、y^{(i)} に対するモデルの予測結果であることがわかります。は真のラベル、m はサンプル数です。この目的関数を最適化するために、勾配降下法などの手法がよく使用されます。これらの手法では、目的関数の勾配を計算し、重みベクトル w を更新することで目的関数の値を徐々に減らし、モデルの予測結果を実際のラベルに近づけます。このように、目的関数を最適化することでモデルのパフォーマンスを向上させることができます。

チホノフ正則化では、目的関数は次のようになります:

J(w)=\frac{1}{ 2m}\sum_{i =1}^{m}(h_w(x^{(i)})-y^{(i)})^2 \frac{\lambda}{2}||w||_2 ^2

#このうち、\lambda は正則化パラメータであり、ペナルティ項の強度を制御するために使用されます。 ||w||_2^2 は重みベクトルの L2 ノルムを表し、すべての重みの二乗の合計です。このペナルティ項は、重みの値が大きくなりすぎないように制限し、それによってモデルの過剰適合を防ぎます。

実際のアプリケーションでは、通常、正則化パラメーター \lambda の値は、相互検証やその他の方法によって決定する必要があります。 \lambda が小さすぎると、正則化の効果が弱くなり、モデルは依然として過学習する傾向があります。\lambda が大きすぎると、ペナルティ項が元の目的関数を圧倒し、モデルが過小学習になってしまいます。

チホノフ正則化には、他にもいくつかの特徴と用途があります。たとえば、関連する特徴の重みを互いに打ち消すことができるため、特徴間の相関関係をより適切に処理できます。また、重要でない特徴にペナルティを与えることで特徴の数を減らすことができるため、高次元データの処理にも使用できます。

以下は、Tikhonov 正則化を使用した線形回帰の例です。

2 つの特徴と 1 つのラベルを含むデータ セットがあるとします。これを実現するには、Python の Scikit-learn ライブラリを使用します。

from sklearn.linear_model import Ridge
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.datasets import make_regression

# 生成数据集
X, y = make_regression(n_samples=100, n_features=2, noise=0.5, random_state=42)

# 数据归一化
scaler = StandardScaler()
X = scaler.fit_transform(X)

# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 构建模型
ridge = Ridge(alpha=1.0)  # alpha为正则化参数

# 模型训练
ridge.fit(X_train, y_train)

# 模型评估
print("Train score:", ridge.score(X_train, y_train))
print("Test score:", ridge.score(X_test, y_test))
ログイン後にコピー

この例では、Scikit-learn ライブラリの make_regression 関数を使用して、2 つの特徴とラベルを含むデータセットを生成します。まずデータを正規化し、次に train_test_split 関数を使用してデータ セットをトレーニング セットとテスト セットに分割しました。次に、Ridge 関数を使用して、アルファ パラメーターが正則化パラメーターである Tikhonov 正則化線形回帰モデルを構築しました。最後に、fit 関数を使用してモデルをトレーニングし、score 関数を使用してトレーニング セットとテスト セットの R2 スコアをそれぞれ計算しました。

正則化パラメータ alpha の値は、相互検証やその他の方法によって決定する必要があることに注意してください。この例では、デフォルト値の alpha=1.0 を使用しました。アルファが小さすぎる場合、モデルは満足のいくパフォーマンスを発揮しない可能性があり、アルファが大きすぎる場合、モデルは適合不足になる可能性があります。

以上がチホノフ正則化の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:163.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート