Tikhonov-Regularisierung

王林
Freigeben: 2024-01-23 09:33:16
nach vorne
1285 Leute haben es durchsucht

Tikhonov-Regularisierung

Tikhonov-Regularisierung, auch bekannt als Ridge-Regression oder L2-Regularisierung, ist eine Regularisierungsmethode, die für die lineare Regression verwendet wird. Es steuert die Komplexität und Generalisierungsfähigkeit des Modells, indem es der Zielfunktion des Modells einen L2-Norm-Strafterm hinzufügt. Dieser Strafterm bestraft die Gewichtung des Modells um die Summe der Quadrate, um eine übermäßige Gewichtung zu vermeiden und so das Problem der Überanpassung zu mildern. Diese Methode führt einen Regularisierungsterm in die Verlustfunktion ein und passt den Regularisierungskoeffizienten an, um die Anpassungsfähigkeit und die Generalisierungsfähigkeit des Modells auszugleichen. Die Tikhonov-Regularisierung hat ein breites Anwendungsspektrum in der Praxis und kann die Leistung und Stabilität des Modells effektiv verbessern.

Vor der Regularisierung kann die Zielfunktion der linearen Regression ausgedrückt werden als:

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

In dieser Zielfunktion können wir sehen, dass w der Gewichtsvektor des Modells ist, h_w(x^{(i)}) der Gewichtsvektor des Modells für Das Vorhersageergebnis der i-ten Stichprobe x^{(i)}, y^{(i)} ist die wahre Bezeichnung und m ist die Anzahl der Stichproben. Um diese Zielfunktion zu optimieren, werden häufig Methoden wie der Gradientenabstieg verwendet. Diese Methoden berechnen den Gradienten der Zielfunktion und aktualisieren den Gewichtsvektor w, wodurch der Wert der Zielfunktion schrittweise verringert wird, wodurch die Vorhersageergebnisse des Modells näher an der tatsächlichen Bezeichnung liegen. Auf diese Weise können wir die Leistung des Modells verbessern, indem wir die Zielfunktion optimieren.

Und in der Tikhonov-Regularisierung wird die Zielfunktion zu:

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

wobei Lambda der Regularisierungsparameter ist, der zur Steuerung der Straftermstärke von verwendet wird. ||w||_2^2 stellt die L2-Norm des Gewichtsvektors dar, die die Summe der Quadrate aller Gewichte ist. Dieser Strafterm begrenzt die Werte der Gewichte, sodass sie nicht zu groß werden können, und verhindert so eine Überanpassung des Modells.

In praktischen Anwendungen muss der Wert des Regularisierungsparameters Lambda normalerweise durch Kreuzvalidierung und andere Methoden bestimmt werden. Wenn Lambda zu klein ist, wird der Regularisierungseffekt schwach und das Modell neigt immer noch zur Überanpassung. Wenn Lambda zu groß ist, wird der Strafterm die ursprüngliche Zielfunktion überfordern, was zu einer Unteranpassung des Modells führt.

Die Tikhonov-Regularisierung hat einige andere Funktionen und Anwendungen. Beispielsweise kann es Korrelationen zwischen Merkmalen besser verarbeiten, da sich verwandte Merkmalsgewichte gegenseitig aufheben. Es kann auch zur Verarbeitung hochdimensionaler Daten verwendet werden, da es die Anzahl der Merkmale durch die Bestrafung unwichtiger Merkmale reduzieren kann.

Das Folgende ist ein Beispiel für eine lineare Regression unter Verwendung der Tikhonov-Regularisierung.

Angenommen, es gibt einen Datensatz, der zwei Merkmale und eine Bezeichnung enthält. Dazu verwenden wir die Scikit-learn-Bibliothek von Python:

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))
Nach dem Login kopieren

In diesem Beispiel verwenden wir die make_regression-Funktion der Scikit-learn-Bibliothek, um einen Datensatz mit 2 Features und einer Beschriftung zu generieren. Wir haben zunächst die Daten normalisiert und dann die Funktion train_test_split verwendet, um den Datensatz in einen Trainingssatz und einen Testsatz zu unterteilen. Als nächstes haben wir die Ridge-Funktion verwendet, um ein Tikhonov-regularisiertes lineares Regressionsmodell zu erstellen, bei dem der Alpha-Parameter der Regularisierungsparameter ist. Schließlich haben wir die Fit-Funktion verwendet, um das Modell zu trainieren, und die Score-Funktion verwendet, um die R2-Scores für den Trainingssatz bzw. den Testsatz zu berechnen.

Es ist zu beachten, dass der Wert des Regularisierungsparameters Alpha durch Kreuzvalidierung und andere Methoden bestimmt werden muss. In diesem Beispiel haben wir den Standardwert Alpha=1,0 verwendet. Wenn das Alpha zu klein ist, funktioniert das Modell möglicherweise nicht zufriedenstellend. Wenn das Alpha zu groß ist, ist das Modell möglicherweise nicht ausreichend angepasst.

Das obige ist der detaillierte Inhalt vonTikhonov-Regularisierung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:163.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage