AI-United » Mathematik » Logistische Regression - detaillierte Übersicht

Logistische Regression – detaillierte Übersicht

Logistische Regression

Die logistische Regression wurde Anfang des 20. Jahrhunderts meist in den biologischen Wissenschaften verwendet. Sie wurde dann in vielen sozialwissenschaftlichen Anwendungen verwendet. Die logistische Regression wird verwendet, wenn die abhängige Variable (Ziel) kategorial ist.

Zum Beispiel,

  • um vorherzusagen, ob eine E-Mail Spam ist (1) oder nicht (0);
  • ob der Tumor bösartig ist (1) oder nicht (0).

Betrachten wir ein Szenario, in dem wir klassifizieren müssen, ob eine E-Mail Spam ist oder nicht. Wenn wir für dieses Problem die lineare Regression verwenden, muss ein Schwellenwert festgelegt werden, auf dessen Grundlage die Klassifizierung vorgenommen werden kann. Wenn die tatsächliche Klasse bösartig ist, ein angenommener kontinuierlicher Wert  0,4 und der Schwellenwert 0,5 ist, wird der Datenpunkt als nicht bösartig klassifiziert, was in der Realität zu ernsten Folgen führen kann.

Modell der logistischen Regression

Aus diesem Beispiel kann geschlossen werden, dass die lineare Regression nicht für Klassifizierungsprobleme geeignet ist. Die lineare Regression ist unbegrenzt und dies bringt die logistische Regression ins Bild. Ihr Wert liegt streng zwischen 0 und 1.

Einfache logistische Regression

Modell

Output = 0 oder 1

Hypothese => Z = WX + B

hΘ(x) = sigmoid (Z)

Sigmoidfunktion

Wenn „Z“ ins Unendliche geht, wird Y (angenommen) zu 1 und wenn „Z“ ins negative Unendliche geht, wird Y (angenommen) zu 0.

Analyse der Hypothese

Das Ergebnis der Hypothese ist die geschätzte Wahrscheinlichkeit. Dies wird verwendet, um festzustellen, wie zuversichtlich der angenommene Wert den tatsächlichen Wert sein kann, wenn eine Eingabe X gegeben wird. Betrachten Sie das folgende Beispiel:

X = [x0 x1] = [1 IP-Addresse]

Basierend auf dem x1-Wert, haben wir die geschätzte Wahrscheinlichkeit von 0,8 erhalten. Dies bedeutet, dass die Chance von 80% besteht, dass die E-Mail Spam ist.

Mathematisch kann dies beschrieben werden als:

Mathematische Darstellung

Dies rechtfertigt den Namen „logistische Regression“. Die Daten werden in ein lineares Regressionsmodell eingefügt, auf das dann eine logistische Funktion einwirkt, die die kategoriale Zielvariable vorhersagt.

Typen der logistischen Regression

1. Binäre logistische Regression

Die kategoriale Antwort hat nur zwei mögliche Ergebnisse. Beispiel: Spam oder nicht.

2. Multinomiale logistische Regression

Drei oder mehr Kategorien. Beispiel: Annahme, welches Essen mehr bevorzugt wird (Veg, Nicht-Veg, Vegan).

3. Ordinale logistische Regression

Drei oder mehr Kategorien mit der Bestellung. Beispiel: Filmbewertung von 1 bis 5.

Entscheidungsgrenze

Um vorherzusagen, zu welcher Klasse ein Datenwert gehört, kann ein Schwellenwert festgelegt werden. Basierend auf diesen Schwellenwert wird die erhaltene geschätzte Wahrscheinlichkeit in Klassen klassifiziert.

Wenn vorhergesagter Wert ≥ 0,5 ist, klassifiziert man die E-Mails als Spam, sonst nicht als Spam.

Die Entscheidungsgrenze kann linear oder nicht linear sein. Die Polynomreihenfolge kann erhöht werden, um eine komplexe Entscheidungsgrenze zu erhalten.

Kostenfunktion
Kostenfunktion der logistischen Regression

Warum kann die für linear verwendete Kostenfunktion nicht für die Logistische Regression verwendet werden?

Die lineare Regression verwendet den mittleren quadratischen Fehler als Kostenfunktion. Wenn dies für die logistische Regression verwendet wird, ist dies eine nicht konvexe Funktion der Parameter (Theta). Der Gradientenabstieg konvergiert nur dann in ein globales Minimum, wenn die Funktion konvex ist.

Konvexe und nicht konvexe Kostenfunktion
Erklärung der Kostenfunktion
Kostenfunktion, Teil 1
Kostenfunktion, Teil  2
Vereinfachte Kostenfunktion
Vereinfachte Kostenfunktion
Warum diese Kostenfunktion?
Maximale Wahrscheinlichkeitserklärung, Teil 1
Maximale Wahrscheinlichkeitserklärung, Teil 2

Diese negative Funktion besteht darin, dass wir beim Trainieren die Wahrscheinlichkeit durch Minimierung der Verlustfunktion maximieren müssen. Eine Senkung der Kosten erhöht die maximale Wahrscheinlichkeit, wenn angenommen wird, dass die Proben aus einer identischen unabhängigen Verteilung stammen.

Ableitung der Formel für den Gradientenabstiegs-Algorithmus
Algorithmus des Gradientenabstiegs, Teil 1
Algorithmus des Gradientenabstiegs, Teil 2
Python-Implementierung
def weightInitialization(n_features):
    w = np.zeros((1,n_features))
    b = 0
    return w,b
def sigmoid_activation(result):
    final_result = 1/(1+np.exp(-result))
    return final_result

def model_optimize(w, b, X, Y):
    m = X.shape[0]
    
    #Prediction
    final_result = sigmoid_activation(np.dot(w,X.T)+b)
    Y_T = Y.T
    cost = (-1/m)*(np.sum((Y_T*np.log(final_result)) + ((1-Y_T)*(np.log(1-final_result)))))
    #
    
    #Gradient calculation
    dw = (1/m)*(np.dot(X.T, (final_result-Y.T).T))
    db = (1/m)*(np.sum(final_result-Y.T))
    
    grads = {"dw": dw, "db": db}
    
    return grads, cost
def model_predict(w, b, X, Y, learning_rate, no_iterations):
    costs = []
    for i in range(no_iterations):
        #
        grads, cost = model_optimize(w,b,X,Y)
        #
        dw = grads["dw"]
        db = grads["db"]
        #weight update
        w = w - (learning_rate * (dw.T))
        b = b - (learning_rate * db)
        #
        
        if (i % 100 == 0):
            costs.append(cost)
            #print("Cost after %i iteration is %f" %(i, cost))
    
    #final parameters
    coeff = {"w": w, "b": b}
    gradient = {"dw": dw, "db": db}
    
    return coeff, gradient, costs
def predict(final_pred, m):
    y_pred = np.zeros((1,m))
    for i in range(final_pred.shape[1]):
        if final_pred[0][i] > 0.5:
            y_pred[0][i] = 1
    return y_pred
Kosten gegen Anzahl_von_Iterationen
Kostenreduzierung

Diese Implementierung ist für die binäre logistische Regression. Für Daten mit mehr als 2 Klassen muss die Softmax-Regression verwendet werden.

Wo wollen Sie Logistische Regression einsetzen?

Sollten Sie  Fragen zu Logistischen Regression  haben, so können Sie sich an das Team von AI-United.de wenden per Mail oder Q&A.

Quellen:

http://dataaspirant.com/2017/03/02/how-logistic-regression-model-works/

https://github.com/SSaishruthi/LogisticRegression_Vectorized_Implementation/blob/master/Logistic_Regression.ipynb

AI-United-Redaktion

Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.