チホノフ正則化は、リッジ回帰または 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))
以上がチホノフ正則化の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。