Logistische Regression kauen



In diesem Artikel analysieren wir die theoretischen Berechnungen zur Konvertierung der linearen Regressionsfunktion in die inverse Protokolltransformationsfunktion (mit anderen Worten die logistische Antwortfunktion) . Dann leiten wir unter Verwendung des Arsenals der Maximum-Likelihood-Methode gemÀß dem logistischen Regressionsmodell die Verlustfunktion Logistic Loss ab , oder mit anderen Worten, wir bestimmen die Funktion, mit der die Parameter des Gewichtsvektors im logistischen Regressionsmodell ausgewΓ€hlt werden  v e c w .

Die Gliederung des Artikels:

  1. Lassen Sie uns die einfache Beziehung zwischen zwei Variablen wiederholen
  2. Wir identifizieren die Notwendigkeit zur Konvertierung der linearen Regressionsfunktion f ( w , x i ) = v e c w T v e c x i   auf die logistische Antwortfunktion \ sigma (\ vec {w} ^ T \ vec {x_i}) = \ frac {1} {1 + e ^ {- \ vec {w} ^ T \ vec {x_i}}\ sigma (\ vec {w} ^ T \ vec {x_i}) = \ frac {1} {1 + e ^ {- \ vec {w} ^ T \ vec {x_i}}
  3. Wir fΓΌhren die Transformationen durch und leiten die logistische Antwortfunktion ab
  4. Versuchen wir zu verstehen, warum die Methode der kleinsten Quadrate bei der Auswahl von Parametern schlecht ist  v e c w Logistic Loss Features
  5. Wir verwenden die Maximum-Likelihood-Methode , um die Parameterauswahlfunktion zu bestimmen  v e c w :

    5.1. Fall 1: Logistic Loss Funktion fΓΌr Objekte mit der Klassenbezeichnung 0 und 1 :

    Llog(X, vecy, vecw)= sum limitsni=1(βˆ’yi mkern2muloge mkern5mu sigma( vecwT vecxi)βˆ’(1βˆ’yi) mkern2muloge mkern5mu(1βˆ’ sigma( vecwT vecxi))) rightarrowmin



    5.2. Fall 2: Logistic Loss- Funktion fΓΌr Objekte mit den Klassenbezeichnungen -1 und +1 :

    Llog(X, vecy, vecw)= sum limitsni=1 mkern2Muloge mkern5Mu(1+eβˆ’yi vecwT vecxi) rightarrowmin


Der Artikel enthΓ€lt zahlreiche einfache Beispiele, in denen alle Berechnungen mΓΌndlich oder auf Papier durchgefΓΌhrt werden kΓΆnnen. In einigen FΓ€llen kann ein Taschenrechner erforderlich sein. Also mach dich bereit :)

Dieser Artikel richtet sich eher an Datenschaffende mit einem anfΓ€nglichen Kenntnisstand in den Grundlagen des maschinellen Lernens.

Der Artikel enthΓ€lt auch Code zum Zeichnen von Diagrammen und Berechnungen. Der gesamte Code ist in Python 2.7 geschrieben . Ich werde im Voraus auf die "Neuheit" der verwendeten Version eingehen. Dies ist eine der Voraussetzungen fΓΌr die Teilnahme an einem bekannten Kurs von Yandex auf der nicht weniger bekannten Online-Plattform fΓΌr Online-Schulungen Coursera . Wie Sie vielleicht annehmen, wurde das Material auf der Grundlage dieses Kurses erstellt.

01. Gerade Linie


Es ist durchaus sinnvoll, sich die Frage zu stellen: Wo ist die direkte Beziehung und die logistische Regression?

Alles ist einfach! Die logistische Regression ist eines der Modelle, die zum linearen Klassifikator gehΓΆren. Mit einfachen Worten, das Ziel eines linearen Klassifikators ist die Vorhersage von Zielwerten y aus Variablen (Regressoren) X . Es wird angenommen, dass die Beziehung zwischen den Zeichen X und Zielwerte y linear. Daher ist der Name des Klassifikators selbst linear. Wenn sehr grob verallgemeinert, basiert das logistische Regressionsmodell auf der Annahme, dass es einen linearen Zusammenhang zwischen Merkmalen gibt X und Zielwerte y . Hier ist es - eine Verbindung.

Das Studio ist das erste Beispiel, und das zu Recht, fΓΌr die einfache AbhΓ€ngigkeit der untersuchten Mengen. Bei der Erstellung des Artikels bin ich auf ein Beispiel gestoßen , das bereits Halsschmerzen verursacht hat - die AbhΓ€ngigkeit der StromstΓ€rke von der Spannung (β€žApplied Regression Analysisβ€œ, N. Draper, G. Smith) . Hier werden wir es auch betrachten.

In Übereinstimmung mit dem Ohmschen Gesetz:

I=U/R wo I - aktuelle StΓ€rke U - Spannung R - Widerstand.

Wenn wir das Ohmsche Gesetz nicht wΓΌssten, kΓΆnnten wir die AbhΓ€ngigkeit empirisch finden, indem wir sie Γ€ndern U und messen I wΓ€hrend der UnterstΓΌtzung R behoben. Dann wΓΌrden wir das AbhΓ€ngigkeitsdiagramm sehen I von U Gibt eine mehr oder weniger gerade Linie durch den Ursprung. Wir haben "mehr oder weniger" gesagt, weil unsere Messungen, obwohl die AbhΓ€ngigkeit tatsΓ€chlich genau ist, mΓΆglicherweise kleine Fehler enthalten und daher die Punkte in der Grafik mΓΆglicherweise nicht genau auf die Linie fallen, sondern zufΓ€llig darum herum verstreut werden.

Grafik 1 β€žAbhΓ€ngigkeit I von U "



Grafik-Rendering-Code
import matplotlib.pyplot as plt %matplotlib inline import numpy as np import random R = 13.75 x_line = np.arange(0,220,1) y_line = [] for i in x_line: y_line.append(i/R) y_dot = [] for i in y_line: y_dot.append(i+random.uniform(-0.9,0.9)) fig, axes = plt.subplots(figsize = (14,6), dpi = 80) plt.plot(x_line,y_line,color = 'purple',lw = 3, label = 'I = U/R') plt.scatter(x_line,y_dot,color = 'red', label = 'Actual results') plt.xlabel('I', size = 16) plt.ylabel('U', size = 16) plt.legend(prop = {'size': 14}) plt.show() 


02. Notwendigkeit von Transformationen der linearen Regressionsgleichung


Betrachten Sie ein anderes Beispiel. Stellen Sie sich vor, wir arbeiten in einer Bank und stehen vor der Aufgabe, die Wahrscheinlichkeit der RΓΌckzahlung eines Kredits durch einen Kreditnehmer in AbhΓ€ngigkeit von einigen Faktoren zu bestimmen. Um die Aufgabe zu vereinfachen, berΓΌcksichtigen wir nur zwei Faktoren: das monatliche Gehalt des Kreditnehmers und die monatliche Zahlung fΓΌr die RΓΌckzahlung des Kredits.

Die Aufgabe ist sehr bedingt, aber mit diesem Beispiel kΓΆnnen wir verstehen, warum es nicht ausreicht, die lineare Regressionsfunktion zu verwenden, um sie zu lΓΆsen, und wir werden auch herausfinden, welche Transformationen mit der Funktion durchgefΓΌhrt werden mΓΌssen.

Wir kehren zum Beispiel zurΓΌck. Es wird davon ausgegangen, dass der Kreditnehmer umso mehr monatliche Anweisungen zur RΓΌckzahlung des Kredits erhΓ€lt, je hΓΆher das Gehalt ist. Gleichzeitig ist diese AbhΓ€ngigkeit fΓΌr einen bestimmten Bereich von GehΓ€ltern ziemlich linear. Nehmen Sie zum Beispiel einen Gehaltsbereich von 60.000 € bis 200.000 € und nehmen Sie an, dass in dem angegebenen Gehaltsbereich die AbhΓ€ngigkeit der HΓΆhe der monatlichen Zahlung von der HΓΆhe des Gehalts linear ist. Angenommen, fΓΌr die angegebene Lohnspanne hat sich herausgestellt, dass das VerhΓ€ltnis von Gehalt zu Zahlung nicht unter 3 sinken kann und dass der Kreditnehmer immer noch 5.000 € in Reserve haben sollte. Und nur in diesem Fall gehen wir davon aus, dass der Kreditnehmer den Kredit an die Bank zurΓΌckgibt. Dann hat die lineare Regressionsgleichung die Form:

f(w,xi)=w0+w1xi1+w2xi2,

wo w0=βˆ’5.000 , w1=1 , w2=βˆ’3 , xi1 - Gehalt i Kreditnehmer xi2 - Darlehenszahlung i Kreditnehmer.

Ersetzen der Gehalts- und Darlehenszahlung durch feste Parameter in der Gleichung  vecw Sie kΓΆnnen entscheiden, ob Sie ein Darlehen gewΓ€hren oder ablehnen.

Mit Blick auf die Zukunft stellen wir fest, dass fΓΌr bestimmte Parameter  vecw Die in der logistischen Antwortfunktion verwendete lineare Regressionsfunktion fΓΌhrt zu großen Werten, die die Berechnung der RΓΌckzahlungswahrscheinlichkeiten fΓΌr Kredite erschweren. Daher wird vorgeschlagen, unsere Koeffizienten beispielsweise um das 25.000-fache zu reduzieren. Aus dieser Umrechnung in Quoten ergibt sich keine Γ„nderung der Entscheidung zur GewΓ€hrung eines Darlehens. Erinnern wir uns an diesen Moment fΓΌr die Zukunft, und um noch klarer zu werden, worΓΌber wir sprechen, werden wir die Situation mit drei potenziellen Kreditnehmern betrachten.

Tabelle 1 "Potenzielle Kreditnehmer"



Code zum Generieren der Tabelle
 import pandas as pd r = 25000.0 w_0 = -5000.0/r w_1 = 1.0/r w_2 = -3.0/r data = {'The borrower':np.array(['Vasya', 'Fedya', 'Lesha']), 'Salary':np.array([120000,180000,210000]), 'Payment':np.array([3000,50000,70000])} df = pd.DataFrame(data) df['f(w,x)'] = w_0 + df['Salary']*w_1 + df['Payment']*w_2 decision = [] for i in df['f(w,x)']: if i > 0: dec = 'Approved' decision.append(dec) else: dec = 'Refusal' decision.append(dec) df['Decision'] = decision df[['The borrower', 'Salary', 'Payment', 'f(w,x)', 'Decision']] 


Laut Tabelle mΓΆchte Vasya mit einem Gehalt von 120.000 € ein solches Darlehen erhalten, um es bei 3.000 € monatlich zurΓΌckzuzahlen. Um das Darlehen zu genehmigen, haben wir festgelegt, dass Vasyas Gehalt dreimal so hoch sein sollte wie die Zahlung, und dass immer noch 5.000 Pence zur VerfΓΌgung stehen. Vasya erfΓΌllt diese Anforderung: 120.000βˆ’3βˆ—3.000βˆ’5.000=106.000 . Es bleiben sogar 106.000 P ΓΌbrig. Trotz der Tatsache, dass bei der Berechnung f(w,xi) Wir haben die Gewinnchancen reduziert  vecw 25.000 Mal war das Ergebnis das gleiche - das Darlehen kann genehmigt werden. Fedya wird auch einen Kredit erhalten, aber Lesha wird, trotz der Tatsache, dass er am meisten erhΓ€lt, seinen Appetit zΓΌgeln mΓΌssen.

Lassen Sie uns einen Zeitplan fΓΌr diesen Fall zeichnen.

Grafik 2 β€žKlassifizierung der Kreditnehmerβ€œ



Code zum Plotten
 salary = np.arange(60000,240000,20000) payment = (-w_0-w_1*salary)/w_2 fig, axes = plt.subplots(figsize = (14,6), dpi = 80) plt.plot(salary, payment, color = 'grey', lw = 2, label = '$f(w,x_i)=w_0 + w_1x_{i1} + w_2x_{i2}$') plt.plot(df[df['Decision'] == 'Approved']['Salary'], df[df['Decision'] == 'Approved']['Payment'], 'o', color ='green', markersize = 12, label = 'Decision - Loan approved') plt.plot(df[df['Decision'] == 'Refusal']['Salary'], df[df['Decision'] == 'Refusal']['Payment'], 's', color = 'red', markersize = 12, label = 'Decision - Loan refusal') plt.xlabel('Salary', size = 16) plt.ylabel('Payment', size = 16) plt.legend(prop = {'size': 14}) plt.show() 


Also, unsere Linie, aufgebaut nach der Funktion f(w,xi)=w0+w1xi1+w2xi2 trennt die "schlechten" Kreditnehmer von den "guten". Diejenigen Kreditnehmer, deren WΓΌnsche nicht mit Chancen ΓΌbereinstimmen, befinden sich ΓΌber der direkten Linie (Lesha), diejenigen, die in der Lage sind, den Kredit gemÀß den Parametern unseres Modells zurΓΌckzuzahlen, befinden sich unter der direkten Linie (Vasya und Fedya). Ansonsten kΓΆnnen wir das sagen - unsere Linie unterteilt die Kreditnehmer in zwei Klassen. Wir bezeichnen sie wie folgt: fΓΌr die Klasse +1 Klassifizieren Sie die Kreditnehmer, die den Kredit wahrscheinlich an die Klasse zurΓΌckzahlen βˆ’1 oder 0 wir werden diejenigen kreditnehmer zuweisen, die hΓΆchstwahrscheinlich nicht in der lage sind, das darlehen zurΓΌckzuzahlen.

Fassen Sie die Schlussfolgerungen aus diesem einfachen Beispiel zusammen. Nimm einen Punkt M(x1,x2) und Ersetzen der Koordinaten des Punktes in der entsprechenden Gleichung der Linie f(w,xi)=w0+w1xi1+w2xi2 Betrachten Sie drei Optionen:

  1. Befindet sich der Punkt unter der Linie und ordnen wir ihn der Klasse zu +1 , dann der Wert der Funktion f(w,xi)=w0+w1xi1+w2xi2 wird positiv aus 0 vorher + infty . Wir kΓΆnnen also davon ausgehen, dass die Wahrscheinlichkeit einer KreditrΓΌckzahlung innerhalb liegt (0.5,1] . Je grâßer der Wert der Funktion ist, desto hΓΆher ist die Wahrscheinlichkeit.
  2. Wenn der Punkt ΓΌber der Linie liegt und wir ihn auf die Klasse beziehen βˆ’1 oder 0 , dann wird der Wert der Funktion von negativ sein 0 vorher βˆ’ infty . Dann gehen wir davon aus, dass die Wahrscheinlichkeit einer RΓΌckzahlung der Schulden innerhalb liegt [0,0.5) und je grâßer der Wert der Funktion modulo ist, desto hΓΆher ist unser Vertrauen.
  3. Der Punkt liegt auf einer geraden Linie an der Grenze zwischen zwei Klassen. In diesem Fall der Wert der Funktion f(w,xi)=w0+w1xi1+w2xi2 wird gleich sein 0 und die Wahrscheinlichkeit der RΓΌckzahlung des Darlehens ist gleich 0.5 .

Stellen Sie sich vor, wir haben nicht zwei Faktoren, sondern zehn, Kreditnehmer nicht drei, sondern Tausende. Dann haben wir anstelle einer geraden Linie eine m-dimensionale Ebene und Koeffizienten w Wir werden nicht von der Obergrenze genommen, sondern nach allen Regeln zurΓΌckgezogen, sondern auf der Grundlage von gesammelten Daten ΓΌber Kreditnehmer, die das Darlehen zurΓΌckgegeben haben oder nicht zurΓΌckgegeben haben. Und wirklich, wohlgemerkt, wir wΓ€hlen jetzt Kreditnehmer mit bereits bekannten Quoten aus w . TatsΓ€chlich besteht die Aufgabe des logistischen Regressionsmodells darin, die Parameter genau zu bestimmen w bei dem der Wert der Verlustfunktion Logistic Loss auf ein Minimum tendiert. Aber wie wird der Vektor berechnet  vecw finden wir noch im 5. Abschnitt des Artikels heraus. In der Zwischenzeit kehren wir in das gelobte Land zurΓΌck - zu unserem Bankier und seinen drei Kunden.

Dank der Funktion f(w,xi)=w0+w1xi1+w2xi2 Wir wissen, wem ein Kredit gewΓ€hrt werden kann und wer abgelehnt werden muss. Sie kΓΆnnen jedoch nicht mit solchen Informationen zum Direktor gehen, da er die Wahrscheinlichkeit der RΓΌckzahlung des Kredits von jedem Kreditnehmer bei uns erhalten wollte. Was zu tun ist? Die Antwort ist einfach - wir mΓΌssen die Funktion irgendwie transformieren f(w,xi)=w0+w1xi1+w2xi2 deren Werte liegen im Bereich (βˆ’ infty,+ infty) auf eine Funktion, deren Werte im Bereich liegen [0,1] . Und eine solche Funktion gibt es, sie heißt logistische Antwortfunktion oder Reverse-Logit-Konvertierung . Treffen Sie:

\ sigma (\ vec {w} ^ T \ vec {x_i}) = \ frac {1} {1 + e ^ {- \ vec {w} ^ T \ vec {x_i}}


Schauen wir uns die Schritte an, um die logistische Antwortfunktion zu erhalten . Beachten Sie, dass wir in die entgegengesetzte Richtung gehen werden, d. H. wir gehen davon aus, dass wir den wahrscheinlichkeitswert kennen, der im bereich von liegt 0 vorher 1 und dann werden wir diesen Wert ΓΌber den gesamten Zahlenbereich von "spinnen" βˆ’ infty vorher + infty .

03. Geben Sie die logistische Antwortfunktion aus


Schritt 1. Übertragen Sie die Wahrscheinlichkeitswerte in den Bereich [0,+ infty)



Zum Zeitpunkt der Funktionsumwandlung f(w,xi)=w0+w1xi1+w2xi2 auf die logistische Antwortfunktion \ sigma (\ vec {w} ^ T \ vec {x_i}) = \ frac {1} {1 + e ^ {\ vec {w} ^ T \ vec {x_i}} Wir lassen unseren Kreditanalysten in Ruhe und gehen stattdessen die Buchmacher durch. Nein, wir machen natΓΌrlich keine Wetten, alles, was uns interessiert, ist die Bedeutung des Ausdrucks, zum Beispiel eine Chance von 4 zu 1. Die Gewinnchancen, die allen Wettspielern bekannt sind, sind das VerhΓ€ltnis von β€žErfolgenβ€œ zu β€žMisserfolgenβ€œ. Bei den Wahrscheinlichkeiten handelt es sich um die Wahrscheinlichkeit des Eintretens eines Ereignisses geteilt durch die Wahrscheinlichkeit, dass das Ereignis nicht eintritt. Wir schreiben die Formel fΓΌr die Chance eines Ereignisses (Odds+) :

odds+= fracp+1βˆ’p+


wo p+ - Eintrittswahrscheinlichkeit eines Ereignisses, (1βˆ’p+) - Wahrscheinlichkeit des NICHT-Auftretens eines Ereignisses

Wenn zum Beispiel die Wahrscheinlichkeit, dass ein junges, starkes und temperamentvolles Pferd mit dem Spitznamen "Veterok" bei den Rennen eine alte und schlaffe alte Frau mit dem Spitznamen "Matilda" schlΓ€gt, gleich ist 0.8 , dann sind die Erfolgschancen von Veterka 4 zu 1(0.8/(1βˆ’0.8)) und umgekehrt, wenn wir die Chancen kennen, wird es uns nicht schwer fallen, die Wahrscheinlichkeit zu berechnen p+ :

 fracp+1βˆ’p+=4 mkern15mu Longrightarrow mkern15mup+=4(1βˆ’p+) mkern15mu Longrightarrow mkern15mu5p+=4 mkern15mu Longrightarrow mkern15mup+=0.8

Auf diese Weise haben wir gelernt, Wahrscheinlichkeit in Gewinnchancen zu β€žΓΌbersetzenβ€œ, aus denen Werte abgeleitet werden 0 vorher + infty . Lassen Sie uns noch einen Schritt weiter gehen und lernen, wie man die Wahrscheinlichkeit auf die gesamte Zahlenreihe von β€žumrechnetβ€œ βˆ’ infty vorher + infty .

Schritt 2. Wir ΓΌbersetzen die Wahrscheinlichkeitswerte in den Bereich (βˆ’ infty,+ infty)


Dieser Schritt ist sehr einfach - wir prologieren die Gewinnchancen basierend auf der Euler-Zahl e und bekomme:

f(w,xi)= vecwT vecx=ln(Gewinnchancen+)



Jetzt wissen wir, dass wenn p+=0.8 Berechnen Sie dann den Wert f(w,xi) es wird sehr einfach sein und außerdem sollte es positiv sein: f(w,xi)=ln(Gewinnchancen+)=ln(0,8/0,2)=ln(4) ca.+1,38629 . So ist es.

Aus Neugier ΓΌberprΓΌfen wir, ob p+=0,2 dann erwarten wir einen negativen Wert f(w,xi) . Wir prΓΌfen: f(w,xi)=ln(0,2/0,8)=ln(0,25) ca.βˆ’1,38629 . Alles ist richtig.

Jetzt wissen wir, wie man den Wahrscheinlichkeitswert von ΓΌbersetzt 0 vorher 1 auf der ganzen nummer zeile ab βˆ’ infty vorher + infty . Im nΓ€chsten Schritt machen wir das Gegenteil.

In der Zwischenzeit stellen wir fest, dass nach den Regeln des Logarithmus der Wert der Funktion bekannt ist f(w,xi) kΓΆnnen Sie die Gewinnchancen berechnen:

odds+=ef(w,xi)=e vecwT vecx



Diese Methode zur Ermittlung der Chancen wird sich im nΓ€chsten Schritt als nΓΌtzlich erweisen.

Schritt 3. Wir leiten eine Formel zur Bestimmung ab p+


Also haben wir gelernt, zu wissen p+ Funktionswerte finden f(w,xi) . TatsΓ€chlich brauchen wir jedoch genau das Gegenteil - den Wert zu kennen f(w,xi) zu finden p+ . Dazu wenden wir uns einem Konzept wie der Umkehrfunktion von Chancen zu, nach dem:

p+= fracodds+1+odds+



In dem Artikel werden wir die obige Formel nicht ableiten, sondern die Zahlen aus dem obigen Beispiel ΓΌberprΓΌfen. Wir wissen, dass mit einer Quote von 4 zu 1 ( odds+=$ ) betrΓ€gt die Eintrittswahrscheinlichkeit eines Ereignisses 0,8 ( p+=0.8 ) Nehmen wir eine Substitution vor: p+= frac41+4=0.8 . Dies stimmt mit unseren frΓΌher durchgefΓΌhrten Berechnungen ΓΌberein. Wir ziehen weiter.

Im letzten Schritt haben wir daraus geschlossen odds+=e vecwT vecx Dies bedeutet, dass Sie die umgekehrte Funktion der Gewinnchancen ersetzen kΓΆnnen. Wir bekommen:

p_ + = \ frac {e ^ {\ vec {w} ^ T \ vec {x}}} {1 + e ^ {\ vec {w} ^ T \ vec {x}}



Teilen Sie sowohl den ZΓ€hler als auch den Nenner durch e vecwT vecx dann:

p+= frac11+eβˆ’ vecwT vecx= sigma( vecwT vecx)



Um sicherzustellen, dass wir nirgendwo einen Fehler gemacht haben, fΓΌhren wir fΓΌr jeden Feuerwehrmann eine weitere kleine ÜberprΓΌfung durch. In Schritt 2 sind wir fΓΌr p+=0.8 bestimmt das f(w,xi) ca.+1.38629 . Ersetzen Sie dann den Wert f(w,xi) in der logistischen Antwortfunktion erwarten wir zu erhalten p+=0.8 . Ersetze und erhalte: p+= frac11+eβˆ’1.38629=0.8

Herzlichen GlΓΌckwunsch, lieber Leser, wir haben gerade die logistische Reaktionsfunktion entwickelt und getestet. Schauen wir uns den Funktionsgraphen an.

Grafik 3 β€žLogistische Reaktionsfunktionβ€œ



Code zum Plotten
 import math def logit (f): return 1/(1+math.exp(-f)) f = np.arange(-7,7,0.05) p = [] for i in f: p.append(logit(i)) fig, axes = plt.subplots(figsize = (14,6), dpi = 80) plt.plot(f, p, color = 'grey', label = '$ 1 / (1+e^{-w^Tx_i})$') plt.xlabel('$f(w,x_i) = w^Tx_i$', size = 16) plt.ylabel('$p_{i+}$', size = 16) plt.legend(prop = {'size': 14}) plt.show() 


In der Literatur finden Sie auch den Namen dieser Funktion als Sigmoidfunktion . Die Grafik zeigt deutlich, dass die HauptΓ€nderung der Wahrscheinlichkeit, dass ein Objekt zu einer Klasse gehΓΆrt, in einem relativ kleinen Bereich auftritt f(w,xi) irgendwo aus βˆ’4 vorher +4 .

Ich schlage vor, zu unserem Kreditanalysten zurΓΌckzukehren und ihm bei der Berechnung der RΓΌckzahlungswahrscheinlichkeit von Krediten zu helfen, da er sonst das Risiko eingeht, keinen Bonus zu erhalten :)

Tabelle 2 "Potentielle Kreditnehmer"



Code zum Generieren der Tabelle
 proba = [] for i in df['f(w,x)']: proba.append(round(logit(i),2)) df['Probability'] = proba df[['The borrower', 'Salary', 'Payment', 'f(w,x)', 'Decision', 'Probability']] 


Wir haben also die Wahrscheinlichkeit der RΓΌckzahlung des Kredits ermittelt. Alles in allem scheint dies wahr zu sein.

In der Tat liegt die Wahrscheinlichkeit, dass Vasya mit einem Gehalt von 120.000 € der Bank 3.000 € monatlich geben kann, nahe bei 100%. Übrigens mΓΌssen wir verstehen, dass die Bank Lesha auch dann einen Kredit gewΓ€hren kann, wenn die Bank beispielsweise vorsieht, Kunden mit einer Wahrscheinlichkeit von mehr als 0,3 RΓΌckzahlungen des Kredits einen Kredit zu gewΓ€hren. In diesem Fall bildet die Bank eine grâßere Reserve fΓΌr mΓΆgliche Verluste.

Es ist auch anzumerken, dass das VerhΓ€ltnis von Gehalt zu Zahlung von mindestens 3 und mit einer Marge von 5.000 € von der Obergrenze abgezogen wurde. Daher konnten wir den Gewichtsvektor nicht in seiner ursprΓΌnglichen Form verwenden  vecw=(βˆ’5000,1,βˆ’3) . Wir mussten die Koeffizienten stark reduzieren, und in diesem Fall haben wir jeden Koeffizienten durch 25.000 geteilt, das heißt, wir haben das Ergebnis angepasst. Dies geschah jedoch absichtlich, um das VerstΓ€ndnis des Materials in der Anfangsphase zu vereinfachen. Im Leben mΓΌssen wir die Koeffizienten nicht erfinden und anpassen, sondern sie finden. In den nΓ€chsten Abschnitten des Artikels werden wir die Gleichungen ableiten, mit denen die Parameter ausgewΓ€hlt werden  vecw .

04. Methode der kleinsten Quadrate zur Bestimmung des Gewichtsvektors  vecw in der logistischen Antwortfunktion


Wir kennen bereits eine solche Methode zur Auswahl eines Gewichtsvektors  vecw als Methode der kleinsten Fehlerquadrate (Least Squares Method, OLS) und warum verwenden wir sie dann nicht bei Problemen mit der binΓ€ren Klassifikation? In der Tat verhindert nichts die Verwendung von MNCs , nur diese Methode bei Klassifizierungsproblemen liefert weniger genaue Ergebnisse als der logistische Verlust . DafΓΌr gibt es eine theoretische BegrΓΌndung. Beginnen wir mit einem einfachen Beispiel.

Angenommen, unsere Modelle (mit MSE und Logistic Loss ) haben bereits mit der Auswahl des Gewichtsvektors begonnen  vecw und wir haben die Berechnung irgendwann abgebrochen. Es ist egal, ob in der Mitte, am Ende oder am Anfang, die Hauptsache ist, dass wir bereits einige Werte des Gewichtsvektors haben und in diesem Schritt den Gewichtsvektor annehmen  vecw FΓΌr beide Modelle gibt es keine Unterschiede. Dann nehmen wir die erhaltenen Gewichte und setzen sie in die logistische Antwortfunktion ein (  frac11+eβˆ’ vecwT vecx ) fΓΌr ein Objekt, das zur Klasse gehΓΆrt +1 . Wir werden zwei FΓ€lle untersuchen, in denen unser Modell in Übereinstimmung mit dem ausgewΓ€hlten Gewichtsvektor stark verwechselt wird und umgekehrt - das Modell ist fest davon ΓΌberzeugt, dass das Objekt zur Klasse gehΓΆrt +1 . Mal sehen, welche Bußgelder "ausgestellt" werden, wenn MNCs und Logistic Loss verwendet werden .

Code zur Berechnung von Bußgeldern in AbhÀngigkeit von der verwendeten Verlustfunktion
 #   y = 1 #          w proba_1 = 0.01 MSE_1 = (y - proba_1)**2 print ' MSE    =', MSE_1 #     f(w,x)        +1 (f(w,x)=ln(odds+)) def f_w_x(proba): return math.log(proba/(1-proba)) LogLoss_1 = math.log(1+math.exp(-y*f_w_x(proba_1))) print ' Log Loss    =', LogLoss_1 proba_2 = 0.99 MSE_2 = (y - proba_2)**2 LogLoss_2 = math.log(1+math.exp(-y*f_w_x(proba_2))) print '**************************************************************' print ' MSE    =', MSE_2 print ' Log Loss    =', LogLoss_2 


Der Fall mit einem groben Fehler - das Modell klassifiziert das Objekt +1 mit einer Wahrscheinlichkeit von 0,01

Die Strafe bei der Verwendung von OLS ist:
MSE=(yβˆ’p+)=(1βˆ’0,01)2=0,9801

Die Strafe bei Verwendung von Logistic Loss ist:
LogLoss=loge(1+eβˆ’yf(w,x))=loge(1+eβˆ’1(βˆ’4,595...)) ca.4,605​​

Fall mit starker Sicherheit - das Modell klassifiziert das Objekt +1 mit einer Wahrscheinlichkeit von 0,99

Die Strafe bei der Verwendung von OLS ist:
MSE=(1βˆ’0,99)2=$0,000

Die Strafe bei Verwendung von Logistic Loss ist:
LogLoss=loge(1+eβˆ’4.595...) ca.0,01

Dieses Beispiel zeigt deutlich, dass bei einem schwerwiegenden Fehler das Modell durch die Funktion " Log Loss loss" ( Protokollverlustverlust) erheblich stΓ€rker beeintrΓ€chtigt wird als durch MSE . Lassen Sie uns nun verstehen, welche theoretischen Voraussetzungen fΓΌr die Verwendung der Funktion Log Loss loss bei Klassifizierungsproblemen bestehen.

05. Maximale GlaubwΓΌrdigkeit und logistische Regression


Wie zu Beginn versprochen, enthΓ€lt der Artikel viele einfache Beispiele. Das Studio hat ein anderes Beispiel und die alten GΓ€ste sind die Kreditnehmer der Bank: Vasya, Fedya und Lesha.

Lassen Sie sich vor der Entwicklung eines Beispiels fΓΌr jeden Feuerwehrmann daran erinnern, dass es sich im Leben um ein Trainingsmuster von Tausenden oder Millionen von Objekten mit Dutzenden oder Hunderten von Zeichen handelt. Hier werden die Zahlen jedoch so genommen, dass sie leicht in den Kopf eines unerfahrenen Datentests passen.

Wir kehren zum Beispiel zurΓΌck. Stellen Sie sich vor, der Direktor der Bank beschloss, allen BedΓΌrftigen einen Kredit zu gewΓ€hren, obwohl der Algorithmus vorschlug, ihn nicht an Lesha weiterzugeben. So verging genug Zeit und wir wurden uns bewusst, welcher der drei Helden das Darlehen zurΓΌckzahlte und wer nicht. Was zu erwarten war: Vasya und Fedya zahlten den Kredit aus, Alex jedoch nicht. Stellen wir uns nun vor, dass dieses Ergebnis eine neue Trainingsstichprobe fΓΌr uns sein wird und gleichzeitig alle Daten zu den Faktoren, die die Wahrscheinlichkeit der KreditrΓΌckzahlung beeinflussen (Kreditnehmergehalt, monatlicher Zahlungsbetrag), verschwunden zu sein scheinen. Dann kΓΆnnen wir intuitiv davon ausgehen, dass nicht jeder dritte Kreditnehmer einen Kredit an die Bank zurΓΌckgibt, oder mit anderen Worten, die Wahrscheinlichkeit, dass ein Kredit vom nΓ€chsten Kreditnehmer zurΓΌckgegeben wird p= frac23 . Diese intuitive Annahme hat theoretische BestΓ€tigung und basiert auf der Maximum-Likelihood-Methode , die in der Literatur hΓ€ufig als Maximum-Likelihood-Prinzip bezeichnet wird .

Machen Sie sich zunΓ€chst mit dem konzeptionellen Apparat vertraut.

Die Wahrscheinlichkeit einer Probe ist die Wahrscheinlichkeit, eine solche Probe zu erhalten, genau solche Beobachtungen / Ergebnisse zu erhalten, d.h. Das Produkt aus den Wahrscheinlichkeiten fΓΌr das Erhalten der einzelnen Ergebnisse der Stichprobe (beispielsweise wurde das Darlehen von Vasya, Feday und Lesha gleichzeitig zurΓΌckgezahlt oder nicht zurΓΌckgezahlt).

Die Wahrscheinlichkeitsfunktion verknΓΌpft die Wahrscheinlichkeit einer Stichprobe mit den Werten der Verteilungsparameter.

In unserem Fall ist die Trainingsstichprobe ein verallgemeinertes Bernoulli-Schema, bei dem eine Zufallsvariable nur zwei Werte annimmt: 1 oder 0 . Daher kann die Wahrscheinlichkeit der Stichprobe als Funktion der Wahrscheinlichkeit des Parameters geschrieben werden p wie folgt:

P( mkern5mu vecy mkern5mu| mkern5mup)= prod limits3i=1pyi(1βˆ’p)(1βˆ’yi) mkern5mu= mkern5mup1(1βˆ’p)1βˆ’1 centerdotp1(1βˆ’p)1βˆ’1 centerdotp0(1βˆ’p)1βˆ’0 mkern5mu=
= mkern5mup centerdotp centerdot(1βˆ’p) mkern5mu= mkern5mup2(1βˆ’p)

Der obige Datensatz kann wie folgt interpretiert werden. Die gemeinsame Wahrscheinlichkeit, dass Vasya und Fedya das Darlehen zurΓΌckzahlen, ist gleich p c e n t e r d o t p = p 2  ist die Wahrscheinlichkeit, dass Alex das Darlehen NICHT zurΓΌckzahlt 1 - p (da es sich NICHT um die RΓΌckzahlung des Darlehens handelte), ist daher die gemeinsame Wahrscheinlichkeit aller drei Ereignisse p 2 ( 1 - p ) .

Die Maximum-Likelihood- Methode ist eine Methode zum SchΓ€tzen eines unbekannten Parameters durch Maximieren der Likelihood-Funktion . In unserem Fall mΓΌssen wir einen solchen Wert finden p bei denenP (β†’ y|p ) = p 2 ( 1 - p ) erreicht ein Maximum.Woher kommt die Idee, nach dem Wert eines unbekannten Parameters zu suchen, bei dem die Wahrscheinlichkeitsfunktion ein Maximum erreicht? Die UrsprΓΌnge der Idee liegen in der Vorstellung, dass die Stichprobe die einzige uns zur VerfΓΌgung stehende Wissensquelle ΓΌber die GesamtbevΓΆlkerung ist. Alles, was wir ΓΌber die BevΓΆlkerung wissen, ist in der Stichprobe dargestellt. Daher kΓΆnnen wir nur sagen, dass die Stichprobe die genaueste Darstellung der BevΓΆlkerung ist, die uns zur VerfΓΌgung steht. Daher mΓΌssen wir einen Parameter finden, bei dem die verfΓΌgbare Stichprobe die wahrscheinlichste ist.



Offensichtlich haben wir es mit einem Optimierungsproblem zu tun, bei dem es erforderlich ist, den Extrempunkt einer Funktion zu finden. Um den Extrempunkt zu finden, ist es notwendig, eine Bedingung erster Ordnung zu berΓΌcksichtigen, dh die Ableitung der Funktion mit Null gleichzusetzen und die Gleichung fΓΌr den gewΓΌnschten Parameter zu lΓΆsen. Die Suche nach der Ableitung des Produkts einer großen Anzahl von Faktoren kann jedoch langwierig sein, weshalb es eine spezielle Technik gibt, um dies zu vermeiden - den Übergang zum Logarithmus der Wahrscheinlichkeitsfunktion . Warum ist ein solcher Übergang mΓΆglich? Wir achten darauf, dass wir nicht das Extrem der Funktion selbst suchenP (β†’ y|p ) und der Extrempunkt, dh der Wert des unbekannten Parametersp bei denenP (β†’ y|p ) erreicht ein Maximum. Beim Übergang zum Logarithmus Γ€ndert sich der Extrempunkt nicht (obwohl sich das Extrem selbst unterscheidet), da der Logarithmus eine monotone Funktion ist. Lassen Sie uns in Übereinstimmung mit den vorstehenden AusfΓΌhrungen unser Beispiel fΓΌr Kredite an Vasya, Fedi und Lesha weiterentwickeln. Gehen wir zunΓ€chst zumLogarithmus der Wahrscheinlichkeitsfunktion ΓΌber:



l o g P (β†’ y|p )=l o g p 2 ( 1 - p )=2 l o g p + l o g ( 1 - p ) Nun kΓΆnnen wir den Ausdruck leicht unterscheiden durch

p :

βˆ‚ l o g P (β†’ y|p )βˆ‚ p=βˆ‚βˆ‚ p (2logp+log(1-p))=2p -11 - p Und schließlich betrachten wir die Bedingung erster Ordnung - wir setzen die Ableitung der Funktion gleich Null:



2p -11 - p =0⟹2p =11 - p⟹2 ( 1 - p ) = p⟹p = 23 Unsere intuitive EinschÀtzung der Wahrscheinlichkeit einer Kreditrückzahlung

p = 23 wurde theoretisch begründet. Großartig, aber was machen wir jetzt mit diesen Informationen? Wenn wir davon ausgehen, dass jeder dritte Kreditnehmer kein Geld an die Bank zurückgibt, wird diese unweigerlich bankrott gehen. Und so ist es, aber nur bei der EinschÀtzung der Rückzahlungswahrscheinlichkeit eines Kredits gleich

23 Die Faktoren, die die RΓΌckzahlung des Kredits beeinflussten, haben wir nicht berΓΌcksichtigt: das Gehalt des Kreditnehmers und die HΓΆhe der monatlichen Zahlung. Denken Sie daran, dass wir zuvor die Wahrscheinlichkeit der RΓΌckzahlung eines Kredits durch jeden Kunden berechnet haben, wobei genau diese Faktoren berΓΌcksichtigt wurden. Es ist logisch, dass die Wahrscheinlichkeiten, die wir erhalten haben, von der Konstanten gleich verschieden sind23 .

Lassen Sie uns die Wahrscheinlichkeit der Stichproben bestimmen:

Code zur Berechnung der Wahrscheinlichkeit von Stichproben
 from functools import reduce def likelihood(y,p): line_true_proba = [] for i in range(len(y)): ltp_i = p[i]**y[i]*(1-p[i])**(1-y[i]) line_true_proba.append(ltp_i) likelihood = [] return reduce(lambda a, b: a*b, line_true_proba) y = [1.0,1.0,0.0] p_log_response = df['Probability'] const = 2.0/3.0 p_const = [const, const, const] print '     p=2/3:', round(likelihood(y,p_const),3) print '****************************************************************************************************' print '     p:', round(likelihood(y,p_log_response),3) 


Die Wahrscheinlichkeit der Probenahme bei einem konstanten Wert p = 23 :

P (β†’ y|p )=p 2 ( 1 - p )=23 2(1-23 )β‰ˆ0,148 GlaubwΓΌrdigkeit der Stichprobe bei der Berechnung der Wahrscheinlichkeit der RΓΌckzahlung des Kredits unter BerΓΌcksichtigung von Faktoren

β†’x :

P(β†’y|p)=3∏i=1pyi(1βˆ’p)(1βˆ’yi)=p11(1βˆ’p1)1βˆ’1β‹…p12(1βˆ’p2)1βˆ’1β‹…p03(1βˆ’p3)1βˆ’0=
=p 1 ≀ p 2 ≀ ( 1 - p 3 )=0,99 β‹… 0,73 β‹… ( 1 - 0,45 )β‰ˆ0,397 Die Wahrscheinlichkeit einer Stichprobe mit einer Wahrscheinlichkeit, die in AbhΓ€ngigkeit von Faktoren berechnet wurde, erwies sich als hΓΆher als die Wahrscheinlichkeit mit einem konstanten Wahrscheinlichkeitswert. WorΓΌber spricht das? Dies deutet darauf hin, dass die Kenntnis der Faktoren es ermΓΆglichte, die Wahrscheinlichkeit der RΓΌckzahlung eines Kredits fΓΌr jeden Kunden genauer auszuwΓ€hlen. Daher ist es bei der Ausgabe eines anderen Kredits richtiger, das am Ende des dritten Abschnitts des Artikels vorgeschlagene Modell zur AbschΓ€tzung der Wahrscheinlichkeit der RΓΌckzahlung von Schulden zu verwenden. Aber dann, wenn wirdie Wahrscheinlichkeitsfunktion der Stichprobemaximieren mΓΌssen



Verwenden Sie dann einen Algorithmus, mit dem die Wahrscheinlichkeiten fΓΌr Vasya, Fedi und Lesha beispielsweise 0,99, 0,99 bzw. 0,01 betragen. Vielleicht zeigt sich ein solcher Algorithmus in der Trainingsstichprobe gut, da er den Wert der Wahrscheinlichkeit der Stichprobe nΓ€her bringt1 , aber erstens wird ein solcher Algorithmus hΓΆchstwahrscheinlich Schwierigkeiten mit der VerallgemeinerungsfΓ€higkeit haben, und zweitens wird dieser Algorithmus definitiv nicht linear sein. Und wenn Methoden zur Umschulung (ebenso schwache VerallgemeinerungsfΓ€higkeit) eindeutig nicht im Plan dieses Artikels enthalten sind, gehen wir den zweiten Absatz genauer durch. Beantworten Sie dazu einfach eine einfache Frage. Kann die Wahrscheinlichkeit der RΓΌckzahlung eines Kredits an Vasya und Feday unter BerΓΌcksichtigung der uns bekannten Faktoren gleich sein? Aus der Sicht der Soundlogik natΓΌrlich nicht, kann es nicht. Also, Vasya wird 2,5% seines Gehalts pro Monat geben, um das Darlehen zurΓΌckzuzahlen, und Fedya - fast 27,8%. Auch in Grafik 2 β€žKlassifizierung der Kundenβ€œ sehen wir, dass Vasya viel weiter von der Trennlinie der Klassen entfernt ist als Fedya. Und schließlich wissen wir, dass die Funktionf(w,x)=w0+w1x1+w2x2 : 4.24 1.0 . , , , . , . w , , , w , , Wurde w nach allen Regeln durchgefΓΌhrt, so gehen wir davon aus - unsere Koeffizienten erlauben es uns, die Wahrscheinlichkeit besser einzuschΓ€tzen :)Wir waren jedoch abgelenkt. In diesem Abschnitt mΓΌssen wir verstehen, wie der Vektor der Gewichte bestimmt wird

β†’ w , die erforderlich ist, um die Wahrscheinlichkeit der RΓΌckzahlung eines Kredits durch jeden Kreditnehmer zu beurteilen. Fassen Sie kurz zusammen, nach welchem ​​Arsenal wir Ausschau halten

w :

1. Wir gehen davon aus, dass der Zusammenhang zwischen der Zielgrâße (Prognosewert) und dem das Ergebnis beeinflussenden Faktor linear ist. Aus diesem Grund wird die lineare Regressionsfunktion des Formulars verwendet.f ( w , x ) = β†’ w T X , dessen Zeile Objekte (Clients) in Klassen unterteilt+ 1 und - 1 oder 0 (Kunden, die das Darlehen zurΓΌckzahlen kΓΆnnen und nicht kΓΆnnen). In unserem Fall hat die Gleichung die Formf ( w , x ) = w 0 + w 1 Γ— 1 + w 2 Γ— 2 .

2. Wir verwenden die inverse Protokolltransformationsfunktion des Formularsp + = 11 + e - β†’ w T β†’ x =Οƒ( β†’ w T β†’ x )fΓΌr die Wahrscheinlichkeit des Objekts bestimmtzu der Klasse gehΓΆrt+ 1 .

3. Wir betrachten unsere Trainingsstichprobe als Implementierung eines verallgemeinerten Bernoulli-Schemas , dh fΓΌr jedes Objekt wird eine Zufallsvariable erzeugt, die mit hoher Wahrscheinlichkeit istp (sein eigenes fΓΌr jedes Objekt) nimmt den Wert 1 und mit Wahrscheinlichkeit an( 1 - p ) - 0.4. Wir wissen, dass wirdie Wahrscheinlichkeitsfunktion der Stichprobeunter BerΓΌcksichtigung der akzeptierten Faktorenmaximieren mΓΌssen, damit die vorhandene Stichprobe die wahrscheinlichste wird. Mit anderen Worten, wir mΓΌssen solche Parameter auswΓ€hlen, bei denen die Stichprobe am plausibelsten ist. In unserem Fall ist der ausgewΓ€hlte Parameter die Wahrscheinlichkeit der RΓΌckzahlung des Darlehens

p , was wiederum von unbekannten Koeffizienten abhΓ€ngtw . Wir mΓΌssen also einen solchen Vektor von Gewichten finden β†’ w , bei dem die Wahrscheinlichkeit der Probenahme maximal ist. 5. Wir wissen, dassSiedie Maximum-Likelihood-Methode verwendenkΓΆnnen, umdie Likelihood-Funktion einer Stichprobezu maximieren. Und wir kennen alle Tricks, um mit dieser Methode zu arbeiten. Hier ist ein solcher Mehrweg :)Und jetzt erinnern wir uns, dass wir am Anfang des Artikels zwei Arten der Verlustfunktion fΓΌrlogistischeVerluste ableiten wollten, je nachdem, wie die Klassen von Objekten bezeichnet werden. Es ist vorgekommen, dass bei Klassifizierungsproblemen mit zwei Klassen Klassen als bezeichnet werden





+ 1 und 0 oder - 1 . Je nach Bezeichnung hat der Ausgang eine entsprechende Verlustfunktion.

Fall 1. Einteilung von Objekten in + 1 und 0


FrΓΌher bei der Bestimmung der Wahrscheinlichkeit einer Stichprobe, in der die Wahrscheinlichkeit der RΓΌckzahlung von Schulden durch den Kreditnehmer auf der Grundlage von Faktoren und festgelegten Koeffizienten berechnet wurde w , wir haben die Formel angewendet:

P (β†’ y|p ) = 3 Ξ  i = 1 p y i ( 1 - p ) ( 1 - y i )

TatsÀchlich p i ist der Wertder logistischen Antwortfunktion p + = 11 + e - → w T → x =σ( → w T → x )für einen gegebenen Vektor von Gewichten→ w Dann hindert uns nichts daran, die Wahrscheinlichkeitsfunktion des Samples so zu schreiben:



P (β†’ y|Οƒ ( β†’ w T X ) )=n Ξ  i = 1 Οƒ( β†’ w T β†’ x i ) y i( 1 - & sgr; ( β†’ w T β†’ x i ) ( 1 - y i )β†’m a x



Es kommt vor, dass es fΓΌr einige unerfahrene Analysten manchmal schwierig ist, sofort zu verstehen, wie diese Funktion funktioniert. Schauen wir uns 4 kurze Beispiele an, die alles verdeutlichen:

1. Wenny i = + 1 (d. h. gemÀß der Trainingsstichprobe gehΓΆrt das Objekt zur Klasse +1) und unser AlgorithmusΟƒ ( β†’ w T X ) ) bestimmt die Wahrscheinlichkeit, ein Objekt zu klassifizieren+ 1 gleich 0,9, dann wird diese Stichprobenwahrscheinlichkeit wie folgt berechnet:

0,9 1 ≀ ( 1 - 0,9 ) ( 1 - 1 ) = 0,9 1 ≀ 0,1 0 = 0,9 2.Wenn

y i = + 1 undσ ( → w T X ) ) = 0,1 , dann lautet die Berechnung wie folgt:

0,1 1 ≀ ( 1 - 0,1 ) ( 1 - 1 ) = 0,1 1 ≀ 0,9 0 = 0,1 3.Wenn

y i = 0 undσ ( → w T X ) ) = 0,1 , dann lautet die Berechnung wie folgt:

0,1 0 ≀ ( 1 - 0,1 ) ( 1 - 0 ) = 0,1 0 ≀ 0,9 1 = 0,9 4.Wenn

y i = 0 undσ ( → w T X ) ) = 0,9 , dann lautet die Berechnung wie folgt:

0,9 0 ≀ ( 1 - 0,9 ) ( 1 - 0 ) = 0,9 0 ≀ 0,1 1 = 0,1 Es ist offensichtlich, dass die Wahrscheinlichkeitsfunktion in den FΓ€llen 1 und 3 oder im allgemeinen Fall mit korrekt erratenen Werten der Wahrscheinlichkeiten der Klassifizierung eines Objekts als Klasse maximiert wird

+ 1 .

Aufgrund der Tatsache, dass bei der Bestimmung der Wahrscheinlichkeit der Klassifizierung eines Objekts als Klasse + 1 Wir kennen nicht nur die Koeffizientenw , dann werden wir sie suchen. Wie oben erwΓ€hnt, ist dies ein Optimierungsproblem, bei dem wir zuerst die Ableitung der Wahrscheinlichkeitsfunktion in Bezug auf den Gewichtsvektor finden mΓΌssenw .Es ist jedoch sinnvoll, die Aufgabe zunΓ€chst zu vereinfachen: Wir werden die Ableitung des Logarithmus der Wahrscheinlichkeitsfunktion suchen .

L l o g ( X , → y , → w ) = n Σ i = 1 ( - y il o g eσ ( → w T → x i ) - ( 1 - y i )l o g e( 1 - σ ( → w T → x i ) ) ) → m i n



Warum haben wir nach dem Logarithmus in der Funktion des logistischen Fehlers das Vorzeichen mit geΓ€ndert?+ auf - . Alles ist einfach, da es bei Problemen der ModellqualitΓ€tsbewertung ΓΌblich ist, den Wert einer Funktion zu minimieren, haben wir die rechte Seite des Ausdrucks mit multipliziert - und statt zu maximieren, minimieren wir jetzt die Funktion. TatsΓ€chlich wurde jetzt vor Ihren Augen die Verlustfunktion - derlogistische VerlustfΓΌr das Training mit zwei Klassen- sehr gelitten.

+ 1 und 0 .

Um die Koeffizienten zu finden, müssen wir nur die Ableitung der logistischen Fehlerfunktion finden und dann unter Verwendung numerischer Optimierungsmethoden wie Gradientenabstieg oder stochastischer Gradientenabstieg die optimalsten Koeffizienten auswÀhlenw . In Anbetracht der ohnehin geringen Grâße des Artikels wird jedoch vorgeschlagen, unabhÀngig voneinander zu differenzieren, oder dies wird mâglicherweise das Thema für den nÀchsten Artikel mit viel Arithmetik ohne solche detaillierten Beispiele sein.

Fall 2. Einteilung von Objekten in + 1 und βˆ’1


, 1 und 0 , Logistic Loss , . . Β«..., ...Β» . , i - +1 , p , βˆ’1 , (1βˆ’p) . :

P(β†’y|Οƒ(β†’wTX))=n∏i=1Οƒ(β†’wTβ†’xi)[yi=+1](1βˆ’Οƒ(β†’wTβ†’xi)[yi=βˆ’1])β†’max



. 4 :

1. yi=+1 und Οƒ(β†’wTβ†’xi)=0.9 , «» 0.9

2. yi=+1 und Οƒ(β†’wTβ†’xi)=0.1 , «» 0.1

3. yi=βˆ’1 und Οƒ(β†’wTβ†’xi)=0.1 , «» 1βˆ’0.1=0.9

4. yi=βˆ’1 und Οƒ(β†’wTβ†’xi)=0.9 , «» 1βˆ’0.9=0.1

, 1 3 , , , . , . , , .

Llog(X,β†’y,β†’w)=nβˆ‘i=1(βˆ’[yi=+1]logeΟƒ(β†’wTβ†’xi)βˆ’[yi=βˆ’1]loge(1βˆ’Οƒ(β†’wTβ†’xi)))β†’min



Οƒ(β†’wTβ†’xi) 11+eβˆ’β†’wTβ†’xi :

Llog(X,β†’y,β†’w)=nβˆ‘i=1(βˆ’[yi=+1]loge(11+eβˆ’β†’wTβ†’xi)βˆ’[yi=βˆ’1]loge(1βˆ’11+eβˆ’β†’wTβ†’xi))β†’min



, :

Llog(X,β†’y,β†’w)=nβˆ‘i=1(βˆ’[yi=+1]loge(11+eβˆ’β†’wTβ†’xi)βˆ’[yi=βˆ’1]loge(11+eβ†’wTβ†’xi))β†’min



Β«..., ...Β» . , yi +1 , , , e βˆ’β†’wTβ†’xi , βˆ’1 , $e$ +β†’wTβ†’xi . β€” : βˆ’yiβ†’wTβ†’xi . :

Llog(X,β†’y,β†’w)=nβˆ‘i=1βˆ’loge(11+eβˆ’yiβ†’wTβ†’xi)β†’min



, " βˆ’ " () , :

Llog(X,β†’y,β†’w)=nβˆ‘i=1loge(1+eβˆ’yiβ†’wTβ†’xi)β†’min



logistic Loss , : +1 und βˆ’1 .

, .

← β€” Β« Β»

UnterstΓΌtzende Materialien


1.


1) / . , . – 2- . – .: , 1986 ( )

2) / .. β€” 9- . β€” .: , 2003

3) / .. β€” : , 2007

4) -: / . ., . . β€” 2- . β€” -: , 2013

5) Data Science / β€” -: , 2017

6) Data Science / ., . β€” -: , 2018

2. , ()


1) ,

2) ,

3) . ODS, Yury Kashnitsky

4) 4, ( 47 )

5) ,

3. -


1)

2)

3)

4)

5)

6)

7)

8) e ?

9)

Source: https://habr.com/ru/post/de485872/


All Articles