15

Ich verwende sklearn.linear_model.LogisticRegression in scikit learn, um eine logistische Regression auszuführen.Was ist die Umkehrung der Regularisierungsstärke in der logistischen Regression? Wie sollte es meinen Code beeinflussen?

C : float, optional (default=1.0) Inverse of regularization strength; 
    must be a positive float. Like in support vector machines, smaller 
    values specify stronger regularization. 

Was bedeutet C hier in einfachen Worten bitte? Was ist Regularisierungsstärke?

+0

Haben Sie gefragt, Google? Ich tat. [Dieser Link] (http://compbio.soe.ucsc.edu/html_format_papers/hughkrogh96/node6.html) war die erste –

+0

@RichardScriven Ich tat, und fand es sehr kompliziert und hoffte, dass jemand würde freundlich genug, um es auf einfache Englisch für mich brechen! Danke für den Link :) – user3427495

+2

Kein Problem. Obwohl es mehr wie schwierige Mathematik als einfaches Englisch aussieht. :) –

Antwort

31

Regularization wendet eine Strafe an, um die Größe der Parameterwerte zu erhöhen, um overfitting zu reduzieren. Wenn Sie ein Modell wie ein logistisches Regressionsmodell trainieren, wählen Sie Parameter, die Ihnen die beste Anpassung an die Daten ermöglichen. Dies bedeutet, dass der Fehler zwischen dem, was das Modell für Ihre abhängige Variable vorhersagt, und Ihren Daten im Vergleich zu dem, was Ihre abhängige Variable tatsächlich ist, minimiert wird.

Das Problem kommt, wenn Sie viele Parameter (viele unabhängige Variablen), aber nicht zu viele Daten haben. In diesem Fall passt das Modell die Parameterwerte oft an Idiosynkrasien in Ihren Daten an - das bedeutet, dass es nahezu perfekt zu Ihren Daten passt. Da diese Eigenheiten jedoch nicht in zukünftigen Daten auftauchen, die Sie sehen, sagt Ihr Modell schlecht voraus.

Um dies zu lösen, sowie den Fehler zu minimieren, wie bereits besprochen, fügen Sie hinzu, was minimiert wird und minimieren Sie auch eine Funktion, die große Werte der Parameter bestraft. Am häufigsten ist die Funktion λΣθ j 2, die eine Konstante λ-fache der Summe der quadrierten Parameterwerte & thgr; j . Je größer λ ist, desto unwahrscheinlicher ist es, dass die Parameter in ihrer Größe erhöht werden, nur um kleine Störungen in den Daten auszugleichen. In Ihrem Fall spezifizieren Sie jedoch, anstatt λ anzugeben, C = 1/λ.

+0

Große Antwort! Vielen Dank :) – user3427495

+0

Soweit ich weiß, wird die Strafe angewendet, um ** die Größe der Parameter zu verringern **. –

+0

@ArtonDorneles ja es gibt eine _pensity_ für _increasing_ die Größe der Parameter. Umgekehrt neigt man dazu, die Größe der Parameter zu verringern. – TooTone

1

Es gibt eine gute Antwort in den cs231n course Anmerkungen von Stanford.

Notation:

Δ bezieht ich auf die C im Scikit-Learn Implementierung glauben. W ist eine Matrix mit Gewichten λ ist der Regularisierungsparameter.

ich über die Seite schlagen würde, aber der Vollständigkeit halber hier ein relevantes Zitat:

„Delta einstellen Beachten Sie, dass wir über die Hyper gebürstet Δ und seine Einstellung Welchen Wert sollte es eingestellt werden.. und wir haben zu Quer validieren? es stellt sich heraus, dass dieser Hyper sicher Satz Δ = 1,0 in allen Fällen sein kann. der Hyper Δ und λ scheinen, wie zwei verschiedene Hyper, aber in Wirklichkeit sowohl sie kontrollieren die gleiche Abwägung: Die Kompromiss zwischen dem Datenverlust und der Regularisierung Verlust im Ziel. Der Schlüssel zum Verständnis ist, dass die Größe der Gewichte WW direkten Einfluss auf die Ergebnisse hat (und somit auch ihre Unterschiede): Wenn wir alle Werte in W schrumpfen die Punktzahl Unterschiede werden niedriger, und wie wir die skalieren Gewichte die Punkte Unterschiede werden alle höher werden. Daher ist der genaue Wert der Spanne zwischen den Bewertungen (z.Δ = 1, oder Δ = 100) ist in einigen Sinn sinnlos, weil die Gewichte die Unterschiede beliebig schrumpfen oder dehnen können. Daher ist die einzige wirkliche Kompromiss, wie groß wir die Gewichte (durch die Regularisierung Stärke λ) wachsen lassen .“

Die wegzunehmen ist im Grunde, dass abhängig von der Implementierung Sie Δ oder λ und sie stimmen müssen Kontrollieren Sie die Regularisierungsebene. Keine Notwendigkeit, beide zu "tunen"!

Verwandte Themen