Żucie regresji logistycznej

Żucie regresji logistycznej

W tym artykule przeanalizujemy teoretyczne obliczenia transformacji funkcje regresji liniowej в odwrotna funkcja transformacji logit (inaczej zwana funkcją odpowiedzi logistycznej). Następnie skorzystaj z arsenału metoda największej wiarygodnościzgodnie z modelem regresji logistycznej wyprowadzamy funkcję straty Straty logistyczne, czyli inaczej zdefiniujemy funkcję za pomocą której dobierane będą parametry wektora wag w modelu regresji logistycznej Żucie regresji logistycznej.

Zarys artykułu:

  1. Powtórzmy liniową zależność pomiędzy dwiema zmiennymi
  2. Zidentyfikujmy potrzebę transformacji funkcje regresji liniowej Żucie regresji logistycznej в funkcja reakcji logistycznej Żucie regresji logistycznej
  3. Przeprowadźmy transformacje i wyniki funkcja reakcji logistycznej
  4. Spróbujmy zrozumieć, dlaczego metoda najmniejszych kwadratów jest zła przy wyborze parametrów Żucie regresji logistycznej funkcje Straty logistyczne
  5. Używamy metoda największej wiarygodności do ustalenia funkcje wyboru parametrów Żucie regresji logistycznej:

    5.1. Przypadek 1: funkcja Straty logistyczne dla obiektów z oznaczeniami klas 0 и 1:

    Żucie regresji logistycznej

    5.2. Przypadek 2: funkcja Straty logistyczne dla obiektów z oznaczeniami klas -1 и +1:

    Żucie regresji logistycznej


Artykuł obfituje w proste przykłady, w których wszystkie obliczenia można łatwo wykonać ustnie lub na papierze, w niektórych przypadkach może być wymagany kalkulator. Więc przygotuj się :)

Ten artykuł jest przeznaczony przede wszystkim dla analityków danych z początkowym poziomem wiedzy na temat podstaw uczenia maszynowego.

W artykule zostanie podany również kod do rysowania wykresów i obliczeń. Cały kod jest napisany w tym języku python 2.7. Wyjaśnię z góry „nowość” zastosowanej wersji – to jeden z warunków obrania znanego kursu z Yandex na równie znanej platformie edukacyjnej online Courserai, jak można przypuszczać, materiał został przygotowany w oparciu o ten kurs.

01. Zależność liniowa

Całkiem rozsądne jest zadanie pytania - co ma z tym wspólnego zależność liniowa i regresja logistyczna?

To proste! Regresja logistyczna jest jednym z modeli należących do klasyfikatora liniowego. Krótko mówiąc, zadaniem klasyfikatora liniowego jest przewidywanie wartości docelowych Żucie regresji logistycznej ze zmiennych (regresorów) Żucie regresji logistycznej. Uważa się, że istnieje zależność między cechami Żucie regresji logistycznej i wartości docelowe Żucie regresji logistycznej liniowy. Stąd nazwa klasyfikatora – liniowy. W dużym uproszczeniu model regresji logistycznej opiera się na założeniu, że pomiędzy cechami istnieje liniowa zależność Żucie regresji logistycznej i wartości docelowe Żucie regresji logistycznej. To jest połączenie.

W studiu mamy pierwszy przykład, który słusznie dotyczy prostoliniowej zależności badanych wielkości. W trakcie przygotowywania artykułu natknąłem się na przykład, który zmartwił już wiele osób – zależność prądu od napięcia („Zastosowana analiza regresji”, N. Draper, G. Smith). Przyjrzymy się temu również tutaj.

Według Prawo Ohma:

Żucie regresji logistycznejGdzie Żucie regresji logistycznej - siła prądu, Żucie regresji logistycznej - Napięcie, Żucie regresji logistycznej - opór.

Gdybyśmy nie wiedzieli Prawo Ohma, wówczas moglibyśmy znaleźć zależność empirycznie, zmieniając Żucie regresji logistycznej i mierzenie Żucie regresji logistycznej, jednocześnie wspierając Żucie regresji logistycznej naprawił. Wtedy zobaczylibyśmy wykres zależności Żucie regresji logistycznej od Żucie regresji logistycznej daje mniej więcej prostą linię przechodzącą przez początek. Mówimy „mniej więcej”, bo choć zależność faktycznie jest dokładna, to nasze pomiary mogą zawierać drobne błędy i w związku z tym punkty na wykresie mogą nie mieścić się dokładnie na linii, ale będą wokół niej losowo rozrzucone.

Wykres 1 „Uzależnienie” Żucie regresji logistycznej od Żucie regresji logistycznej»

Żucie regresji logistycznej

Kod rysowania wykresów

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. Konieczność przekształcenia równania regresji liniowej

Spójrzmy na inny przykład. Wyobraźmy sobie, że pracujemy w banku i naszym zadaniem jest określenie prawdopodobieństwa spłaty kredytu przez kredytobiorcę w zależności od określonych czynników. Aby uprościć zadanie, weźmiemy pod uwagę tylko dwa czynniki: miesięczne wynagrodzenie pożyczkobiorcy i miesięczną kwotę spłaty kredytu.

Zadanie jest bardzo warunkowe, ale na tym przykładzie możemy zrozumieć, dlaczego nie wystarczy go użyć funkcje regresji liniowej, a także dowiedzieć się, jakie przekształcenia należy przeprowadzić za pomocą funkcji.

Wróćmy do przykładu. Przyjmuje się, że im wyższe wynagrodzenie, tym więcej kredytobiorca będzie mógł przeznaczyć miesięcznie na spłatę kredytu. Jednocześnie dla pewnego przedziału wynagrodzeń zależność ta będzie dość liniowa. Przykładowo, weźmy przedział wynagrodzeń od 60.000 200.000 RUR do 3 5.000 RUR i załóżmy, że w podanym przedziale wynagrodzeń zależność wysokości miesięcznej wpłaty od wysokości wynagrodzenia jest liniowa. Załóżmy, że dla określonego przedziału płac okazało się, że stosunek wynagrodzenia do wynagrodzenia nie może spaść poniżej XNUMX, a pożyczkobiorca musi jeszcze mieć XNUMX RUR w rezerwie. I tylko w tym przypadku założymy, że kredytobiorca spłaci kredyt bankowi. Wówczas równanie regresji liniowej będzie miało postać:

Żucie regresji logistycznej

gdzie Żucie regresji logistycznej, Żucie regresji logistycznej, Żucie regresji logistycznej, Żucie regresji logistycznej - wynagrodzenie Żucie regresji logistycznej-ty pożyczkobiorca, Żucie regresji logistycznej - spłata pożyczki Żucie regresji logistycznej-ty pożyczkobiorca.

Podstawienie do równania wynagrodzenia i spłaty kredytu o stałych parametrach Żucie regresji logistycznej Możesz zdecydować o udzieleniu lub odrzuceniu pożyczki.

Patrząc w przyszłość zauważamy, że przy danych parametrach Żucie regresji logistycznej funkcja regresji liniowej, stosuje się w funkcje odpowiedzi logistycznej wygeneruje duże wartości, które skomplikują obliczenia w celu określenia prawdopodobieństwa spłaty kredytu. Dlatego proponuje się zmniejszenie naszych współczynników, powiedzmy, 25.000 XNUMX razy. Ta transformacja współczynników nie spowoduje zmiany decyzji o udzieleniu kredytu. Zapamiętajmy tę kwestię na przyszłość, ale teraz, żeby jeszcze jaśniej było o czym mówimy, przeanalizujmy sytuację z trzema potencjalnymi pożyczkobiorcami.

Tabela 1 „Potencjalni kredytobiorcy”

Żucie regresji logistycznej

Kod generujący tabelę

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']]

Zgodnie z danymi w tabeli Wasia z pensją 120.000 3.000 RUR chce otrzymać pożyczkę, aby móc ją co miesiąc spłacać w wysokości 5.000 RUR. Ustaliliśmy, że aby pożyczka została zatwierdzona, wynagrodzenie Wasyi musi przekraczać trzykrotność kwoty wpłaty, a pozostało jeszcze XNUMX rubli. Vasya spełnia ten wymóg: Żucie regresji logistycznej. Pozostaje jeszcze 106.000 XNUMX RUR. Pomimo tego, że przy obliczaniu Żucie regresji logistycznej zmniejszyliśmy szanse Żucie regresji logistycznej 25.000 XNUMX razy wynik był taki sam - pożyczkę można zatwierdzić. Fedya również otrzyma pożyczkę, ale Lesha, mimo że otrzymuje najwięcej, będzie musiała pohamować apetyty.

Narysujmy wykres dla tego przypadku.

Wykres 2 „Klasyfikacja kredytobiorców”

Żucie regresji logistycznej

Kod do rysowania wykresu

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()

A więc nasza prosta, skonstruowana zgodnie z funkcją Żucie regresji logistycznej, oddziela „złych” pożyczkobiorców od „dobrych”. Powyżej tej linii (Lesha) znajdują się pożyczkobiorcy, których pragnienia nie pokrywają się z ich możliwościami, natomiast poniżej tej linii znajdują się ci, którzy zgodnie z parametrami naszego modelu są w stanie spłacić pożyczkę (Vasya i Fedya). Innymi słowy możemy powiedzieć tak: nasza linia bezpośrednia dzieli pożyczkobiorców na dwie klasy. Oznaczmy je następująco: do klasy Żucie regresji logistycznej Do kategorii kredytobiorców, którzy z największym prawdopodobieństwem spłacają pożyczkę, zaklasyfikujemy Żucie regresji logistycznej lub Żucie regresji logistycznej Uwzględnimy tych kredytobiorców, którzy najprawdopodobniej nie będą w stanie spłacić pożyczki.

Podsumujmy wnioski z tego prostego przykładu. Weźmy pewien punkt Żucie regresji logistycznej i podstawiając współrzędne punktu do odpowiedniego równania linii Żucie regresji logistycznejrozważ trzy opcje:

  1. Jeśli punkt znajduje się pod linią i przypisujemy go do klasy Żucie regresji logistycznej, a następnie wartość funkcji Żucie regresji logistycznej będzie pozytywny od Żucie regresji logistycznej do Żucie regresji logistycznej. Oznacza to, że możemy założyć, że prawdopodobieństwo spłaty pożyczki mieści się w granicach Żucie regresji logistycznej. Im większa wartość funkcji, tym większe prawdopodobieństwo.
  2. Jeśli punkt znajduje się nad linią i przypisujemy go do klasy Żucie regresji logistycznej lub Żucie regresji logistycznej, wówczas wartość funkcji będzie ujemna Żucie regresji logistycznej do Żucie regresji logistycznej. Zakładamy wówczas, że prawdopodobieństwo spłaty zadłużenia mieści się w granicach Żucie regresji logistycznej i im większa jest wartość bezwzględna funkcji, tym większa jest nasza pewność.
  3. Punkt leży na linii prostej, na granicy dwóch klas. W tym przypadku wartość funkcji Żucie regresji logistycznej będzie równe Żucie regresji logistycznej a prawdopodobieństwo spłaty pożyczki jest równe Żucie regresji logistycznej.

A teraz wyobraźmy sobie, że mamy nie dwa czynniki, a dziesiątki, nie trzy, a tysiące pożyczkobiorców. Wtedy zamiast linii prostej będziemy mieli m-wymiarowy płaszczyzna i współczynniki Żucie regresji logistycznej nie zostaniemy wzięci znikąd, ale wyprowadzeni według wszelkich zasad i na podstawie zgromadzonych danych o pożyczkobiorcach, którzy spłacili lub nie spłacili pożyczkę. I rzeczywiście, należy pamiętać, że obecnie dobieramy pożyczkobiorców przy użyciu znanych już współczynników Żucie regresji logistycznej. Tak naprawdę zadaniem modelu regresji logistycznej jest właśnie określenie parametrów Żucie regresji logistycznej, przy którym wartość funkcji straty Straty logistyczne będzie dążyć do minimum. Ale o tym, jak obliczany jest wektor Żucie regresji logistycznej, dowiemy się więcej w 5. części artykułu. Tymczasem wracamy do ziemi obiecanej – do naszego bankiera i jego trzech klientów.

Dzięki funkcji Żucie regresji logistycznej wiemy komu można udzielić pożyczki, a komu trzeba odmówić. Ale z taką informacją nie można udać się do dyrektora, bo on chciał od nas uzyskać prawdopodobieństwo spłaty kredytu przez każdego pożyczkobiorcę. Co robić? Odpowiedź jest prosta – musimy jakoś przekształcić funkcję Żucie regresji logistycznej, którego wartości mieszczą się w przedziale Żucie regresji logistycznej do funkcji, której wartości będą mieścić się w przedziale Żucie regresji logistycznej. I taka funkcja istnieje, nazywa się ją funkcja odpowiedzi logistycznej lub odwrotna transformacja logitowa. Poznać:

Żucie regresji logistycznej

Zobaczmy krok po kroku jak to działa funkcja reakcji logistycznej. Uwaga, będziemy iść w przeciwnym kierunku, tj. założymy, że znamy wartość prawdopodobieństwa, która mieści się w przedziale od Żucie regresji logistycznej do Żucie regresji logistycznej a następnie „rozwiniemy” tę wartość do całego zakresu liczb od Żucie regresji logistycznej do Żucie regresji logistycznej.

03. Wyprowadzamy funkcję odpowiedzi logistycznej

Krok 1. Przekształć wartości prawdopodobieństwa w zakres Żucie regresji logistycznej

Podczas transformacji funkcji Żucie regresji logistycznej в funkcja reakcji logistycznej Żucie regresji logistycznej Zostawmy naszego analityka kredytowego w spokoju i zamiast tego wybierzmy się na wycieczkę po bukmacherach. Nie, oczywiście, nie będziemy stawiać zakładów, interesuje nas tylko znaczenie wyrażenia, na przykład szansa wynosi 4 do 1. Szanse, znane wszystkim obstawiającym, to stosunek „sukcesów” do „ niepowodzenia”. W ujęciu prawdopodobieństwa szanse to prawdopodobieństwo wystąpienia zdarzenia podzielone przez prawdopodobieństwo, że zdarzenie nie wystąpi. Zapiszmy wzór na prawdopodobieństwo zajścia zdarzenia Żucie regresji logistycznej:

Żucie regresji logistycznej

Gdzie Żucie regresji logistycznej - prawdopodobieństwo wystąpienia zdarzenia, Żucie regresji logistycznej — prawdopodobieństwo, że zdarzenie NIE wystąpi

Na przykład, jeśli prawdopodobieństwo, że młody, silny i wesoły koń o imieniu „Veterok” pokona w wyścigu starą i wiotką staruszkę o imieniu „Matylda”, jest równe Żucie regresji logistycznej, wtedy będą szanse na sukces „Veteroka”. Żucie regresji logistycznej к Żucie regresji logistycznej Żucie regresji logistycznej i odwrotnie, znając szanse, obliczenie prawdopodobieństwa nie będzie dla nas trudne Żucie regresji logistycznej:

Żucie regresji logistycznej

W ten sposób nauczyliśmy się „przekładać” prawdopodobieństwo na szanse, z których pobierane są wartości Żucie regresji logistycznej do Żucie regresji logistycznej. Zróbmy jeszcze jeden krok i nauczmy się „przekładać” prawdopodobieństwo na całą oś liczbową Żucie regresji logistycznej do Żucie regresji logistycznej.

Krok 2. Przekształć wartości prawdopodobieństwa w zakres Żucie regresji logistycznej

Ten krok jest bardzo prosty - przenieś logarytm szans na podstawę liczby Eulera Żucie regresji logistycznej i otrzymujemy:

Żucie regresji logistycznej

Teraz wiemy, że jeśli Żucie regresji logistycznej, a następnie oblicz wartość Żucie regresji logistycznej będzie bardzo proste, a ponadto powinno być pozytywne: Żucie regresji logistycznej. To prawda.

Z ciekawości sprawdźmy co jeśli Żucie regresji logistycznej, wówczas spodziewamy się wartości ujemnej Żucie regresji logistycznej. Sprawdzamy: Żucie regresji logistycznej. Zgadza się.

Teraz wiemy, jak przekonwertować wartość prawdopodobieństwa Żucie regresji logistycznej do Żucie regresji logistycznej wzdłuż całej osi liczbowej od Żucie regresji logistycznej do Żucie regresji logistycznej. W następnym kroku zrobimy odwrotnie.

Na razie zauważamy, że zgodnie z zasadami logarytmu, znając wartość funkcji Żucie regresji logistycznej, możesz obliczyć szanse:

Żucie regresji logistycznej

Ta metoda ustalania kursów przyda nam się w kolejnym kroku.

Krok 3. Wyprowadźmy wzór do ustalenia Żucie regresji logistycznej

Więc nauczyliśmy się, wiedząc Żucie regresji logistycznej, znajdź wartości funkcji Żucie regresji logistycznej. Jednak tak naprawdę potrzebujemy czegoś zupełnie odwrotnego – znajomości wartości Żucie regresji logistycznej znaleźć Żucie regresji logistycznej. Aby to zrobić, przejdźmy do takiej koncepcji, jak funkcja odwrotnego kursu, zgodnie z którą:

Żucie regresji logistycznej

W artykule nie będziemy wyprowadzać powyższego wzoru, ale sprawdzimy to na liczbach z powyższego przykładu. Wiemy, że przy kursie 4 do 1 (Żucie regresji logistycznej), prawdopodobieństwo zajścia zdarzenia wynosi 0.8 (Żucie regresji logistycznej). Dokonajmy podstawienia: Żucie regresji logistycznej. Zbiega się to z naszymi wcześniejszymi wyliczeniami. Przejdźmy dalej.

W ostatnim kroku to wydedukowaliśmy Żucie regresji logistycznej, co oznacza, że ​​możesz dokonać podstawienia w funkcji odwrotnego kursu. Otrzymujemy:

Żucie regresji logistycznej

Podziel licznik i mianownik przez Żucie regresji logistycznej, następnie:

Żucie regresji logistycznej

Na wszelki wypadek, żeby mieć pewność, że nigdzie się nie pomyliliśmy, dokonamy jeszcze jednego małego sprawdzenia. W kroku 2 Żucie regresji logistycznej to ustaliłem Żucie regresji logistycznej. Następnie zastępując wartość Żucie regresji logistycznej do funkcji reakcji logistycznej, spodziewamy się uzyskać Żucie regresji logistycznej. Podstawiamy i otrzymujemy: Żucie regresji logistycznej

Gratulacje, drogi czytelniku, właśnie wyprowadziliśmy i przetestowaliśmy funkcję odpowiedzi logistycznej. Spójrzmy na wykres funkcji.

Wykres 3 „Funkcja reakcji logistycznej”

Żucie regresji logistycznej

Kod do rysowania wykresu

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()

W literaturze można spotkać także nazwę tej funkcji jako funkcja sigmoidalna. Wykres wyraźnie pokazuje, że główna zmiana prawdopodobieństwa przynależności obiektu do klasy zachodzi w stosunkowo niewielkim zakresie Żucie regresji logistycznej, skądś Żucie regresji logistycznej do Żucie regresji logistycznej.

Proponuję wrócić do naszego analityka kredytowego i pomóc mu obliczyć prawdopodobieństwo spłaty kredytu, w przeciwnym razie grozi mu pozostawienie bez premii :)

Tabela 2 „Potencjalni kredytobiorcy”

Żucie regresji logistycznej

Kod generujący tabelę

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']]

Określiliśmy więc prawdopodobieństwo spłaty kredytu. Ogólnie rzecz biorąc, wydaje się to prawdą.

Rzeczywiście prawdopodobieństwo, że Wasia z pensją w wysokości 120.000 3.000 RUR będzie w stanie co miesiąc przekazywać bankowi 100 RUR, jest bliskie 0.3%. Nawiasem mówiąc, musimy zrozumieć, że bank może udzielić Leshy pożyczki, jeśli polityka banku przewiduje na przykład udzielanie kredytów klientom z prawdopodobieństwem spłaty kredytu większym niż, powiedzmy, XNUMX. Tyle, że w tym przypadku bank utworzy większą rezerwę na ewentualne straty.

Należy również zauważyć, że z pułapu odjęto stosunek wynagrodzenia do wynagrodzenia wynoszący co najmniej 3 i z marginesem w wysokości 5.000 XNUMX RUR. Dlatego nie mogliśmy użyć wektora wag w jego pierwotnej postaci Żucie regresji logistycznej. Musieliśmy znacznie zmniejszyć współczynniki i w tym przypadku podzieliliśmy każdy współczynnik przez 25.000 XNUMX, czyli w istocie skorygowaliśmy wynik. Zrobiono to jednak specjalnie, aby uprościć zrozumienie materiału na początkowym etapie. W życiu nie będziemy musieli wymyślać i dostosowywać współczynników, ale je znaleźć. W kolejnych częściach artykułu wyprowadzimy równania, za pomocą których dobierane są parametry Żucie regresji logistycznej.

04. Metoda najmniejszych kwadratów do wyznaczania wektora wag Żucie regresji logistycznej w funkcji odpowiedzi logistycznej

Znamy już tę metodę wybierania wektora wag Żucie regresji logistycznejjako metoda najmniejszych kwadratów (LSM) i właściwie, dlaczego nie użyjemy go w problemach klasyfikacji binarnej? Rzeczywiście nic nie stoi na przeszkodzie, aby skorzystać MNC, tylko ta metoda w problemach klasyfikacyjnych daje wyniki mniej dokładne niż Straty logistyczne. Ma to swoje teoretyczne podstawy. Spójrzmy najpierw na jeden prosty przykład.

Załóżmy, że nasze modele (przy użyciu MSE и Straty logistyczne) już rozpoczęliśmy wybieranie wektora wag Żucie regresji logistycznej i w pewnym momencie zatrzymaliśmy obliczenia. Nie ma znaczenia czy w środku, na końcu czy na początku, najważniejsze jest to, że mamy już pewne wartości wektora wag i załóżmy, że na tym etapie wektor wag Żucie regresji logistycznej w przypadku obu modeli nie ma różnic. Następnie weź otrzymane wagi i zamień je na funkcja reakcji logistycznej (Żucie regresji logistycznej) dla jakiegoś obiektu należącego do klasy Żucie regresji logistycznej. Rozpatrujemy dwa przypadki, gdy zgodnie z wybranym wektorem wag nasz model jest bardzo błędny i odwrotnie – model ma dużą pewność, że obiekt należy do klasy Żucie regresji logistycznej. Zobaczmy, jakie kary zostaną wydane podczas korzystania MNC и Straty logistyczne.

Kod do obliczania kar w zależności od użytej funkcji straty

# класс объекта
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

Przypadek pomyłki — model przypisuje obiekt do klasy Żucie regresji logistycznej z prawdopodobieństwem 0,01

Kara za użycie MNC będzie:
Żucie regresji logistycznej

Kara za użycie Straty logistyczne będzie:
Żucie regresji logistycznej

Przypadek silnego zaufania — model przypisuje obiekt do klasy Żucie regresji logistycznej z prawdopodobieństwem 0,99

Kara za użycie MNC będzie:
Żucie regresji logistycznej

Kara za użycie Straty logistyczne będzie:
Żucie regresji logistycznej

Przykład ten dobrze ilustruje, że w przypadku błędu dużego działa funkcja straty Utrata dziennika karze model znacznie bardziej niż MSE. Przyjrzyjmy się teraz teoretycznym podstawom korzystania z funkcji straty Utrata dziennika w problemach klasyfikacyjnych.

05. Metoda największej wiarygodności i regresja logistyczna

Zgodnie z obietnicą na początku artykuł jest pełen prostych przykładów. W studiu jest kolejny przykład i starzy goście - kredytobiorcy bankowi: Vasya, Fedya i Lesha.

Na wszelki wypadek, zanim rozwinę przykład, przypomnę, że w życiu mamy do czynienia z próbką treningową złożoną z tysięcy lub milionów obiektów o dziesiątkach lub setkach cech. Tutaj jednak liczby są brane tak, aby z łatwością zmieściły się w głowie początkującego analityka danych.

Wróćmy do przykładu. Wyobraźmy sobie, że dyrektor banku zdecydował się udzielić pożyczki wszystkim potrzebującym, mimo że algorytm kazał mu nie udzielać jej Leszy. A teraz minęło już wystarczająco dużo czasu i wiemy, który z trójki bohaterów spłacił pożyczkę, a który nie. Czego można było się spodziewać: Wasya i Fedya spłaciły pożyczkę, ale Lesha nie. Wyobraźmy sobie teraz, że ten wynik będzie dla nas nową próbą treningową, a jednocześnie to tak, jakby zniknęły wszelkie dane dotyczące czynników wpływających na prawdopodobieństwo spłaty kredytu (wynagrodzenie pożyczkobiorcy, wysokość miesięcznej raty). Wtedy intuicyjnie możemy założyć, że co trzeci kredytobiorca nie spłaci kredytu bankowi, czyli inaczej prawdopodobieństwo, że kolejny kredytobiorca spłaci kredyt Żucie regresji logistycznej. To intuicyjne założenie ma teoretyczne potwierdzenie i na nim się opiera metoda największej wiarygodności, często w literaturze nazywa się to zasada największego prawdopodobieństwa.

Najpierw zapoznajmy się z aparatem pojęciowym.

Prawdopodobieństwo pobierania próbek jest prawdopodobieństwem otrzymania dokładnie takiej próbki, otrzymania dokładnie takich obserwacji/wyników, tj. iloczyn prawdopodobieństw uzyskania każdego z wyników próby (przykładowo, czy pożyczka Wasyi, Fedyi i Leszy została spłacona, czy nie została spłacona w tym samym czasie).

Funkcja prawdopodobieństwa wiąże prawdopodobieństwo próbki z wartościami parametrów rozkładu.

W naszym przypadku próbą uczącą jest uogólniony schemat Bernoulliego, w którym zmienna losowa przyjmuje tylko dwie wartości: Żucie regresji logistycznej lub Żucie regresji logistycznej. Dlatego prawdopodobieństwo próbki można zapisać jako funkcję wiarygodności parametru Żucie regresji logistycznej w następujący sposób:

Żucie regresji logistycznej
Żucie regresji logistycznej

Powyższy wpis można zinterpretować następująco. Łączne prawdopodobieństwo, że Vasya i Fedya spłacą pożyczkę, jest równe Żucie regresji logistycznej, prawdopodobieństwo, że Lesha NIE spłaci pożyczki, jest równe Żucie regresji logistycznej (ponieważ NIE była to spłata kredytu), zatem łączne prawdopodobieństwo wszystkich trzech zdarzeń jest równe Żucie regresji logistycznej.

Metoda największej wiarygodności to metoda estymacji nieznanego parametru poprzez maksymalizację funkcje prawdopodobieństwa. W naszym przypadku musimy znaleźć taką wartość Żucie regresji logistycznejw którym Żucie regresji logistycznej osiąga maksimum.

Skąd właściwie pomysł – szukać wartości nieznanego parametru, przy której funkcja wiarygodności osiąga maksimum? Początki tego pomysłu wywodzą się z założenia, że ​​próbka jest jedynym dostępnym nam źródłem wiedzy o populacji. Wszystko, co wiemy o populacji, jest reprezentowane w próbie. Dlatego jedyne, co możemy powiedzieć, to to, że próbka jest najdokładniejszym odzwierciedleniem dostępnej nam populacji. Musimy zatem znaleźć parametr, przy którym dostępna próbka staje się najbardziej prawdopodobna.

Oczywiście mamy do czynienia z problemem optymalizacyjnym, w którym musimy znaleźć ekstremum funkcji. Aby znaleźć ekstremum, należy wziąć pod uwagę warunek pierwszego rzędu, czyli przyrównać pochodną funkcji do zera i rozwiązać równanie ze względu na żądany parametr. Jednak znalezienie pochodnej iloczynu dużej liczby czynników może być zadaniem długotrwałym; aby tego uniknąć, istnieje specjalna technika - przejście na logarytm funkcje prawdopodobieństwa. Dlaczego takie przejście jest możliwe? Zwróćmy uwagę, że nie szukamy ekstremum samej funkcjiŻucie regresji logistycznejoraz punkt ekstremalny, czyli wartość nieznanego parametru Żucie regresji logistycznejw którym Żucie regresji logistycznej osiąga maksimum. Po przejściu do logarytmu punkt ekstremum nie zmienia się (chociaż samo ekstremum będzie się różnić), ponieważ logarytm jest funkcją monotoniczną.

Zgodnie z powyższym kontynuujmy rozwój naszego przykładu dzięki pożyczkom od Vasyi, Fedyi i Leshy. Najpierw przejdźmy do logarytm funkcji wiarygodności:

Żucie regresji logistycznej

Teraz możemy łatwo rozróżnić wyrażenie poprzez Żucie regresji logistycznej:

Żucie regresji logistycznej

I na koniec rozważ warunek pierwszego rzędu - przyrównujemy pochodną funkcji do zera:

Żucie regresji logistycznej

Tym samym nasz intuicyjny szacunek prawdopodobieństwa spłaty kredytu Żucie regresji logistycznej było teoretycznie uzasadnione.

Świetnie, ale co teraz zrobić z tą informacją? Jeżeli założymy, że co trzeci kredytobiorca nie zwróci pieniędzy bankowi, to ten ostatni nieuchronnie zbankrutuje. Zgadza się, ale tylko przy ocenie prawdopodobieństwa spłaty kredytu równego Żucie regresji logistycznej Nie wzięliśmy pod uwagę czynników wpływających na spłatę kredytu: wynagrodzenia kredytobiorcy i wysokości miesięcznej raty. Pamiętajmy, że wcześniej obliczyliśmy prawdopodobieństwo spłaty kredytu przez każdego klienta, biorąc pod uwagę te same czynniki. Logiczne jest, że otrzymaliśmy prawdopodobieństwa różne od stałego równego Żucie regresji logistycznej.

Określmy prawdopodobieństwo próbek:

Kod do obliczania prawdopodobieństwa próbek

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)

Prawdopodobieństwo próbki przy stałej wartości Żucie regresji logistycznej:

Żucie regresji logistycznej

Przykładowe prawdopodobieństwo przy obliczaniu prawdopodobieństwa spłaty kredytu z uwzględnieniem czynników Żucie regresji logistycznej:

Żucie regresji logistycznej
Żucie regresji logistycznej

Prawdopodobieństwo próbki z prawdopodobieństwem obliczonym w zależności od czynników okazało się wyższe niż prawdopodobieństwo przy stałej wartości prawdopodobieństwa. Co to znaczy? Sugeruje to, że wiedza o tych czynnikach pozwoliła na dokładniejsze dobranie prawdopodobieństwa spłaty kredytu dla każdego klienta. Dlatego też przy udzielaniu kolejnej pożyczki bardziej słuszne byłoby skorzystanie z zaproponowanego na końcu ust. 3 artykułu modelu oceny prawdopodobieństwa spłaty zadłużenia.

Ale jeśli chcemy maksymalizować funkcja wiarygodności próbki, to dlaczego nie zastosować jakiegoś algorytmu, który wygeneruje prawdopodobieństwa dla Wasyi, Fedyi i Leszy na przykład równe odpowiednio 0.99, 0.99 i 0.01. Być może taki algorytm będzie dobrze działał na próbie uczącej, ponieważ przybliży wartość prawdopodobieństwa próbki Żucie regresji logistycznej, ale po pierwsze, taki algorytm będzie najprawdopodobniej miał trudności z możliwością generalizacji, a po drugie, algorytm ten na pewno nie będzie liniowy. A jeśli metody walki z przetrenowaniem (równie słaba zdolność generalizacji) wyraźnie nie są uwzględnione w planie tego artykułu, to przejdźmy do drugiego punktu bardziej szczegółowo. Aby to zrobić, wystarczy odpowiedzieć na proste pytanie. Czy prawdopodobieństwo spłaty pożyczki przez Vasyę i Fedyę może być takie samo, biorąc pod uwagę znane nam czynniki? Z punktu widzenia zdrowej logiki oczywiście, że nie, nie może. Tak więc Wasia będzie płacić 2.5% swojej pensji miesięcznie na spłatę pożyczki, a Fedya - prawie 27,8%. Również na wykresie 2 „Klasyfikacja klientów” widzimy, że Wasia jest znacznie dalej od linii oddzielającej klasy niż Fedya. I wreszcie wiemy, że funkcja Żucie regresji logistycznej dla Vasyi i Fedyi przyjmuje różne wartości: 4.24 dla Wasyi i 1.0 dla Fedyi. Teraz, gdyby na przykład Fedya zarobił o rząd wielkości więcej lub poprosił o mniejszą pożyczkę, wówczas prawdopodobieństwo spłaty pożyczki dla Wasyi i Fedyi byłoby podobne. Innymi słowy, zależności liniowej nie da się oszukać. I jeśli faktycznie obliczyliśmy szanse Żucie regresji logistyczneji nie wzieliśmy ich z powietrza, śmiało możemy powiedzieć, że nasze wartości Żucie regresji logistycznej najlepiej pozwalają nam oszacować prawdopodobieństwo spłaty kredytu przez każdego pożyczkobiorcę, ale ponieważ zgodziliśmy się założyć, że wyznaczenie współczynników Żucie regresji logistycznej zostało przeprowadzone według wszystkich zasad, to wtedy tak założymy - nasze współczynniki pozwalają nam lepiej oszacować prawdopodobieństwo :)

Jednak odpuszczamy. W tej sekcji musimy zrozumieć, w jaki sposób wyznaczany jest wektor wag Żucie regresji logistycznej, co jest niezbędne do oceny prawdopodobieństwa spłaty kredytu przez każdego pożyczkobiorcę.

Podsumujmy pokrótce jakim arsenałem szukamy kursów Żucie regresji logistycznej:

1. Zakładamy, że związek pomiędzy zmienną docelową (wartością prognozy) a czynnikiem wpływającym na wynik jest liniowy. Z tego powodu jest używany funkcja regresji liniowej uprzejmy Żucie regresji logistycznej, którego linia dzieli obiekty (klientów) na klasy Żucie regresji logistycznej и Żucie regresji logistycznej lub Żucie regresji logistycznej (klienci, którzy są w stanie spłacić pożyczkę i ci, którzy nie są). W naszym przypadku równanie ma postać Żucie regresji logistycznej.

2. Używamy odwrotna funkcja logitowa uprzejmy Żucie regresji logistycznej aby określić prawdopodobieństwo, że obiekt należy do klasy Żucie regresji logistycznej.

3. Nasz zbiór treningowy traktujemy jako implementację uogólnioną Schematy Bernoulliego, czyli dla każdego obiektu generowana jest zmienna losowa, która z prawdopodobieństwem Żucie regresji logistycznej (własny dla każdego obiektu) przyjmuje wartość 1 iz prawdopodobieństwem Żucie regresji logistycznej - 0.

4. Wiemy, czego potrzebujemy, aby maksymalizować funkcja wiarygodności próbki biorąc pod uwagę przyjęte czynniki, aby dostępna próbka stała się jak najbardziej wiarygodna. Innymi słowy, musimy wybrać parametry, przy których próbka będzie najbardziej wiarygodna. W naszym przypadku wybranym parametrem jest prawdopodobieństwo spłaty kredytu Żucie regresji logistycznej, co z kolei zależy od nieznanych współczynników Żucie regresji logistycznej. Musimy więc znaleźć taki wektor wag Żucie regresji logistycznej, przy którym prawdopodobieństwo próbki będzie największe.

5. Wiemy, co maksymalizować przykładowe funkcje wiarygodności może być użyty metoda największej wiarygodności. Znamy wszystkie trudne sztuczki związane z tą metodą.

Okazuje się, że jest to ruch wieloetapowy :)

Teraz pamiętajmy, że na samym początku artykułu chcieliśmy wyprowadzić dwa rodzaje funkcji straty Straty logistyczne w zależności od sposobu wyznaczenia klas obiektów. Tak się złożyło, że w problemach klasyfikacyjnych z dwiema klasami klasy te oznacza się jako Żucie regresji logistycznej и Żucie regresji logistycznej lub Żucie regresji logistycznej. W zależności od zapisu wyjście będzie miało odpowiednią funkcję straty.

Przypadek 1. Klasyfikacja obiektów na Żucie regresji logistycznej и Żucie regresji logistycznej

Wcześniej przy ustalaniu prawdopodobieństwa próby, w której prawdopodobieństwo spłaty zadłużenia przez kredytobiorcę obliczano w oparciu o czynniki i podane współczynniki Żucie regresji logistycznej, zastosowaliśmy wzór:

Żucie regresji logistycznej

Faktycznie Żucie regresji logistycznej jest znaczenie funkcje odpowiedzi logistycznej Żucie regresji logistycznej dla danego wektora wag Żucie regresji logistycznej

Zatem nic nie stoi na przeszkodzie, aby zapisać funkcję wiarygodności próbki w następujący sposób:

Żucie regresji logistycznej

Zdarza się, że niektórym początkującym analitykom trudno jest od razu zrozumieć, jak działa ta funkcja. Spójrzmy na 4 krótkie przykłady, które wszystko wyjaśnią:

1. jeśli Żucie regresji logistycznej (czyli według próbki uczącej obiekt należy do klasy +1) i nasz algorytm Żucie regresji logistycznej określa prawdopodobieństwo zaklasyfikowania obiektu do klasy Żucie regresji logistycznej równe 0.9, wówczas ten fragment prawdopodobieństwa próbki zostanie obliczony w następujący sposób:

Żucie regresji logistycznej

2. jeśli Żucie regresji logistycznejI Żucie regresji logistycznej, to obliczenia będą wyglądać następująco:

Żucie regresji logistycznej

3. jeśli Żucie regresji logistycznejI Żucie regresji logistycznej, to obliczenia będą wyglądać następująco:

Żucie regresji logistycznej

4. jeśli Żucie regresji logistycznejI Żucie regresji logistycznej, to obliczenia będą wyglądać następująco:

Żucie regresji logistycznej

Jest oczywiste, że funkcja wiarygodności zostanie zmaksymalizowana w przypadkach 1 i 3 lub w przypadku ogólnym - przy poprawnie odgadniętych wartościach prawdopodobieństw przyporządkowania obiektu do klasy Żucie regresji logistycznej.

Z uwagi na to, że przy określaniu prawdopodobieństwa przypisania obiektu do klasy Żucie regresji logistycznej Nie znamy tylko współczynników Żucie regresji logistycznej, to będziemy ich szukać. Jak wspomniano powyżej, jest to problem optymalizacyjny, w którym najpierw należy znaleźć pochodną funkcji wiarygodności po wektorze wag Żucie regresji logistycznej. Najpierw jednak warto uprościć zadanie dla siebie: będziemy szukać pochodnej logarytmu funkcje prawdopodobieństwa.

Żucie regresji logistycznej

Dlaczego po logarytmach w funkcje błędów logistycznych, zmieniliśmy znak z Żucie regresji logistycznej na Żucie regresji logistycznej. Wszystko jest proste, ponieważ w problemach oceny jakości modelu zwyczajowo minimalizuje się wartość funkcji, pomnożyliśmy prawą stronę wyrażenia przez Żucie regresji logistycznej i odpowiednio zamiast maksymalizować, teraz minimalizujemy funkcję.

Właściwie, właśnie teraz, na twoich oczach, funkcja straty została starannie wyprowadzona - Straty logistyczne dla zestawu treningowego z dwiema klasami: Żucie regresji logistycznej и Żucie regresji logistycznej.

Teraz, aby znaleźć współczynniki, wystarczy znaleźć pochodną funkcje błędów logistycznych a następnie wykorzystując metody optymalizacji numerycznej, takie jak opadanie gradientowe lub opadanie gradientowe stochastyczne, wybrać najbardziej optymalne współczynniki Żucie regresji logistycznej. Jednak biorąc pod uwagę znaczną objętość artykułu, proponuje się przeprowadzić różnicowanie samodzielnie, w przeciwnym razie będzie to temat na następny artykuł z dużą ilością arytmetyki bez tak szczegółowych przykładów.

Przypadek 2. Klasyfikacja obiektów na Żucie regresji logistycznej и Żucie regresji logistycznej

Podejście tutaj będzie takie samo jak w przypadku klas Żucie regresji logistycznej и Żucie regresji logistycznej, ale samą ścieżkę do wyniku funkcji straty Straty logistyczne, będzie bardziej ozdobny. Zacznijmy. W przypadku funkcji wiarygodności użyjemy operatora "Jeśli następnie...". To znaczy, jeśli Żucie regresji logistycznejObiekt th należy do klasy Żucie regresji logistycznej, następnie do obliczenia prawdopodobieństwa próbki używamy prawdopodobieństwa Żucie regresji logistycznej, jeśli obiekt należy do klasy Żucie regresji logistycznej, następnie podstawiamy pod prawdopodobieństwo Żucie regresji logistycznej. Tak wygląda funkcja prawdopodobieństwa:

Żucie regresji logistycznej

Opiszmy na palcach jak to działa. Rozważmy 4 przypadki:

1. jeśli Żucie regresji logistycznej и Żucie regresji logistycznej, wówczas prawdopodobieństwo próbkowania „zniknie” Żucie regresji logistycznej

2. jeśli Żucie regresji logistycznej и Żucie regresji logistycznej, wówczas prawdopodobieństwo próbkowania „zniknie” Żucie regresji logistycznej

3. jeśli Żucie regresji logistycznej и Żucie regresji logistycznej, wówczas prawdopodobieństwo próbkowania „zniknie” Żucie regresji logistycznej

4. jeśli Żucie regresji logistycznej и Żucie regresji logistycznej, wówczas prawdopodobieństwo próbkowania „zniknie” Żucie regresji logistycznej

Jest oczywiste, że w przypadkach 1 i 3, gdy algorytm poprawnie określił prawdopodobieństwa, funkcja prawdopodobieństwa zostanie zmaksymalizowany, czyli dokładnie to chcieliśmy uzyskać. Jednak takie podejście jest dość kłopotliwe i następnie rozważymy bardziej zwartą notację. Ale najpierw logarytmujmy funkcję wiarygodności ze zmianą znaku, ponieważ teraz ją zminimalizujemy.

Żucie regresji logistycznej

Zamiast tego zamieńmy Żucie regresji logistycznej wyrażenie Żucie regresji logistycznej:

Żucie regresji logistycznej

Uprośćmy odpowiedni wyraz pod logarytmem, używając prostych technik arytmetycznych i otrzymamy:

Żucie regresji logistycznej

Teraz czas pozbyć się operatora "Jeśli następnie...". Należy pamiętać, że gdy obiekt Żucie regresji logistycznej należy do klasy Żucie regresji logistycznej, następnie w wyrażeniu pod logarytmem w mianowniku, Żucie regresji logistycznej podniesiony do potęgi Żucie regresji logistycznej, jeśli obiekt należy do klasy Żucie regresji logistycznej, następnie $e$ podnosi się do potęgi Żucie regresji logistycznej. Dlatego zapis stopnia można uprościć, łącząc oba przypadki w jeden: Żucie regresji logistycznej. Następnie funkcja błędu logistycznego przyjmie postać:

Żucie regresji logistycznej

Zgodnie z zasadami logarytmu odwracamy ułamek i wystawiamy znak „Żucie regresji logistycznej" (minus) dla logarytmu otrzymujemy:

Żucie regresji logistycznej

Oto funkcja straty straty logistyczne, który jest używany w zbiorze treningowym z obiektami przypisanymi do klas: Żucie regresji logistycznej и Żucie regresji logistycznej.

Cóż, w tym momencie żegnam się i kończymy artykuł.

Żucie regresji logistycznej Poprzednia praca autora to „Przeniesienie równania regresji liniowej do postaci macierzowej”

Materiały pomocnicze

1. Literatura

1) Stosowana analiza regresji / N. Draper, G. Smith - wyd. 2. - M .: Finanse i statystyki, 1986 (przetłumaczone z angielskiego)

2) Teoria prawdopodobieństwa i statystyka matematyczna / V.E. Gmurman – wyd. 9. - M.: Szkoła Wyższa, 2003

3) Teoria prawdopodobieństwa / N.I. Czernowa – Nowosybirsk: Nowosybirski Uniwersytet Państwowy, 2007

4) Analityka biznesowa: od danych do wiedzy / Paklin N. B., Oreshkov V. I. - wyd. 2. — Petersburg: Piotr, 2013

5) Data Science Nauka danych od podstaw / Joel Gras – St. Petersburg: BHV Petersburg, 2017

6) Statystyka praktyczna dla specjalistów Data Science / P. Bruce, E. Bruce – St. Petersburg: BHV Petersburg, 2018

2. Wykłady, kursy (wideo)

1) Istota metody największej wiarygodności, Boris Demeshev

2) Metoda największej wiarygodności w przypadku ciągłym, Boris Demeshev

3) Regresja logistyczna. Otwarty kurs ODS, Jurij Kasznicki

4) Wykład 4, Evgeny Sokolov (z 47 minut wideo)

5) Regresja logistyczna, Wiaczesław Woroncow

3. Źródła internetowe

1) Liniowe modele klasyfikacji i regresji

2) Jak łatwo zrozumieć regresję logistyczną

3) Funkcja błędu logistycznego

4) Niezależne testy i wzór Bernoulliego

5) Ballada o MMP

6) Metoda największej wiarygodności

7) Wzory i własności logarytmów

8) Dlaczego numer Żucie regresji logistycznej?

9) Klasyfikator liniowy

Źródło: www.habr.com

Dodaj komentarz