An dësem Artikel wäerte mir d'theoretesch Berechnunge vun der Transformatioun analyséieren linear Regressioun Funktiounen в Inverse Logit Transformatiounsfunktioun (soss logistesch Äntwert Funktioun genannt). Dann, benotzt d'Arsenal maximal Wahrscheinlechkeet Method, am Aklang mam logistesche Regressiounsmodell ofgeleet mir d'Verloschtfunktioun Logistesch Verloscht, oder an anere Wierder, mir wäerte eng Funktioun definéieren, mat där d'Parameteren vum Gewiichtsvektor am logistesche Regressiounsmodell ausgewielt ginn .
Artikel Iwwersiicht:
- Loosst eis d'linear Relatioun tëscht zwou Variabelen widderhuelen
- Loosst eis de Besoin fir Transformatioun identifizéieren linear Regressioun Funktiounen в logistesch Äntwert Funktioun
- Loosst eis d'Transformatiounen an d'Ausgab ausféieren logistesch Äntwert Funktioun
- Loosst eis probéieren ze verstoen firwat d'mannst Quadrat Method schlecht ass wann Dir Parameteren auswielen Funktiounen Logistesch Verloscht
- Mir benotzen maximal Wahrscheinlechkeet Method fir ze bestëmmen Parameter Auswiel Funktiounen :
5.1. Fall 1: Funktioun Logistesch Verloscht fir Objete mat Klass Bezeechnungen 0 и 1:
5.2. Fall 2: Funktioun Logistesch Verloscht fir Objete mat Klass Bezeechnungen -1 и +1:
Den Artikel ass voll mat einfache Beispiller an deenen all Berechnungen einfach mëndlech oder op Pabeier ze maachen sinn; an e puer Fäll kann e Rechner erfuerderlech sinn. Also prett :)
Dësen Artikel ass haaptsächlech geduecht fir Datewëssenschaftler mat engem initialen Niveau vu Wëssen an de Grondlagen vum Maschinnléieren.
Den Artikel gëtt och Code fir Grafiken a Berechnungen ze zéien. All Code ass an der Sprooch geschriwwen Python 2.7. Loosst mech am Viraus iwwer d'"Neiheet" vun der benotzt Versioun erklären - dat ass ee vun de Konditioune fir de bekannte Cours vun Yandex op enger gläich bekannter Online Educatiounsplattform Coursera, an, wéi ee vläicht unhuelen, d'Material war op Basis vun dësem Cours virbereet.
01. Riichtaus-Linn Ofhängegkeet
Et ass ganz raisonnabel d'Fro ze stellen - wat huet linear Ofhängegkeet a logistesch Regressioun domat ze maachen?
Et ass einfach! Logistesch Regressioun ass ee vun de Modeller déi zum linear Klassifizéierer gehéieren. An einfache Wierder ass d'Aufgab vun engem linear Klassifizéierer Zilwäerter virauszesoen vu Variabelen (Regressoren) . Et gëtt ugeholl datt d'Ofhängegkeet tëscht de Charakteristiken an Zilwäerter linear. Dofir den Numm vum Klassifizéierer - linear. Fir et ganz grof ze soen, de logistesche Regressiounsmodell baséiert op der Virgab datt et eng linear Relatioun tëscht de Charakteristiken ass an Zilwäerter . Dëst ass d'Verbindung.
Et gëtt dat éischt Beispill am Studio, an et geet, richteg, ëm déi riichtlinn Ofhängegkeet vun de Quantitéiten, déi studéiert ginn. Am Prozess vun der Virbereedung vum Artikel sinn ech op e Beispill komm dat scho vill Leit op d'Spannung gesat huet - d'Ofhängegkeet vum Stroum op der Spannung ("Applied Regressiounsanalyse", N. Draper, G. Smith). Mir kucken et och hei.
Geméiss den Ohms Gesetz:
wou - aktuell Kraaft, - Stroumspannung, - Resistenz.
Wa mir net wossten Ohms Gesetz, da kéinte mir d'Ofhängegkeet empiresch fannen andeems mir änneren a moossen , iwwerdeems Ënnerstëtzung befestegt. Da géife mir gesinn, datt d'Ofhängegkeet Grafik от gëtt eng méi oder manner riicht Linn duerch den Urspronk. Mir soen "méi oder manner", well och wann d'Relatioun tatsächlech richteg ass, eis Miessunge kënne kleng Feeler enthalen, an dofir kënnen d'Punkten op der Grafik net genau op der Linn falen, awer zoufälleg ronderëm verstreet ginn.
Grafik 1 "Ofhängegkeet" от »
Chart Zeechnen 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. De Besoin fir d'linear Regressioungleichung ze transforméieren
Loosst eis en anert Beispill kucken. Loosst eis virstellen datt mir an enger Bank schaffen an eis Aufgab ass d'Wahrscheinlechkeet ze bestëmmen datt de Prêt de Prêt zréckbezuelt ofhängeg vu bestëmmte Faktoren. Fir d'Aufgab ze vereinfachen, wäerte mir nëmmen zwee Faktoren berücksichtegen: de monatlecht Gehalt vum Prêt an de monatlecht Remboursement vum Prêt.
D'Aufgab ass ganz bedingt, awer mat dësem Beispill kënne mir verstoen firwat et net genuch ass ze benotzen linear Regressioun Funktiounen, an och erauszefannen wat Transformatiounen mat der Funktioun duerchgefouert musse ginn.
Komme mer zréck op d'Beispill. Et ass verstanen datt wat méi héich d'Pai ass, dest méi de Prêt fäeg ass all Mount ze verdeelen fir de Prêt zréckzebezuelen. Zur selwechter Zäit, fir eng gewëssen Pai Palette wäert dës Relatioun relativ linear ginn. Zum Beispill, loosst eis eng Pai Gamme vun 60.000 RUR zu 200.000 RUR huelen an dovun ausgoen, datt an der spezifizéierter Pai Gamme, d'Ofhängegkeet vun der Gréisst vun der monatlecht Bezuelen op der Gréisst vun der Pai linear ass. Loosst d'soen, datt fir de spezifizéierte Palette vun Léin opgedeckt gouf, datt d'Pai-ze-Bezuelen Verhältnis net ënner 3 falen kann an de Prêt muss nach 5.000 RUR an der Reserve hunn. An nëmmen an dësem Fall wäerte mir dovun ausgoen datt de Prêt de Prêt un d'Bank zréckbezuelt. Dann wäert d'linear Regressiounsgleichung d'Form huelen:
wou , , , - Loun -e Prêt, - Prêt Bezuelen -th Prêt.
Ersetzen Gehalt a Prêtbezuelung mat fixe Parameteren an d'Gleichung Dir kënnt entscheeden ob Dir e Prêt ausginn oder refuséieren.
No vir kucken, bemierken mir dat, mat de gegebene Parameteren linear Regressioun Funktioun, benotzt an logistesch Äntwert Funktiounen wäert grouss Wäerter produzéieren déi d'Berechnunge komplizéiere fir d'Wahrscheinlechkeeten vun der Prêt Remboursement ze bestëmmen. Dofir gëtt proposéiert, eis Koeffizienten, loosse mer soen, ëm 25.000 Mol ze reduzéieren. Dës Transformatioun vun de Koeffizienten wäert d'Entscheedung fir e Prêt auszeginn net änneren. Loosst eis dëse Punkt fir d'Zukunft erënneren, awer elo, fir et nach méi kloer ze maachen, vu wat mir schwätzen, loosst eis d'Situatioun mat dräi potenzielle Prêten betruechten.
Table 1 "Potenzial Prêten"
Code fir den Dësch ze generéieren
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']]
Am Aklang mat den Donnéeën an der Tabell, Vasya, mat enger Pai vun 120.000 RUR, wëll e Prêt ze kréien, sou datt hien et all Mount op 3.000 RUR zréckbezuelen kann. Mir hunn festgestallt datt fir de Prêt ze stëmmen, dem Vasya säi Gehalt dräimol de Betrag vun der Bezuelung muss iwwerschreiden, an et muss nach ëmmer 5.000 RUR bleiwen. Vasya erfëllt dës Ufuerderung: . Souguer 106.000 RUR bleiwen. Trotz der Tatsaach, datt beim Berechnung mir hunn d'Chance reduzéiert 25.000 Mol war d'Resultat d'selwecht - de Prêt kann guttgeheescht ginn. Fedya kritt och e Prêt, awer Lesha, trotz der Tatsaach, datt hien am meeschte kritt, muss säin Appetit bekämpfen.
Loosst eis eng Grafik fir dëse Fall zéien.
Chart 2 "Klassifikatioun vun de Kredittgeber"
Code fir d'Grafik ze zéien
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, eis riicht Linn, am Aklang mat der Funktioun gebaut , trennt "schlecht" Prêter vun "gutt". Déi Prêter, deenen hir Wënsch net mat hire Fäegkeeten entsprécht, sinn iwwer der Linn (Lesha), während déi, déi, no de Parameteren vun eisem Modell, fäeg sinn de Prêt zréckzebezuelen, ënner der Linn (Vasya a Fedya). An anere Wierder, mir kënnen dat soen: eis direkt Linn trennt Prêten an zwou Klassen. Loosst eis se wéi follegt bezeechnen: zu Klass Mir klassifizéieren déi Prêten, déi am meeschte wahrscheinlech de Prêt zréckbezuelen als oder Mir wäerten déi Prêter matmaachen, déi héchstwahrscheinlech de Prêt net zréckbezuele kënnen.
Loosst eis d'Conclusiounen aus dësem einfache Beispill resuméieren. Loosst eis e Punkt huelen an, ersetzen d'Koordinate vum Punkt an déi entspriechend Equatioun vun der Linn , betruecht dräi Optiounen:
- Wann de Punkt ënner der Linn ass a mir ginn et der Klass zou , dann de Wäert vun der Funktioun wäert positiv aus ze . Dëst bedeit datt mir kënnen dovun ausgoen datt d'Wahrscheinlechkeet fir de Prêt zréckzebezuelen bannent ass . Wat méi grouss de Funktiounswäert ass, wat méi héich ass d'Wahrscheinlechkeet.
- Wann e Punkt iwwer enger Linn ass a mir ginn et der Klass zou oder , da gëtt de Wäert vun der Funktioun negativ aus ze . Da wäerte mir dovun ausgoen, datt d'Wahrscheinlechkeet vun Schold Remboursement bannent ass an, der Groussregioun den absolute Wäert vun der Funktioun, der héich eist Vertrauen.
- De Punkt ass op enger riichter Linn, op der Grenz tëscht zwou Klassen. An dësem Fall ass de Wäert vun der Funktioun wäert gläich sinn an d'Wahrscheinlechkeet fir de Prêt ze bezuelen ass gläich wéi .
Elo, loosst eis virstellen datt mir net zwee Faktoren hunn, awer Dosende, an net dräi, awer Dausende vu Prêten. Dann amplaz vun enger riichter Linn wäerte mir hunn m-dimensional Fliger a Koeffizienten mir wäerten net aus dënn Loft geholl ginn, mee ofgeleet no all de Regelen, an op der Basis vun cumuléierten Donnéeën op Prêten, déi de Prêt hunn oder net zréckbezuelt. An tatsächlech, bemierkt datt mir elo Prêten auswielen mat scho bekannte Koeffizienten . Tatsächlech ass d'Aufgab vum logistesche Regressiounsmodell genee d'Parameteren ze bestëmmen , bei deem de Wäert vun der Verloscht Funktioun Logistesch Verloscht wäert op de Minimum tendéieren. Awer iwwer wéi de Vektor berechent gëtt , wäerte mir méi am 5. Abschnitt vum Artikel gewuer ginn. An der Tëschenzäit komme mir zréck an dat versprach Land - un eise Banquier a seng dräi Clienten.
Dank der Funktioun mir wësse wien e Prêt ka ginn a wien muss refuséiert ginn. Awer Dir kënnt net bei den Direkter mat esou Informatioune goen, well se vun eis wollten d'Wahrscheinlechkeet vun der Remboursement vum Prêt vun all Prêt kréien. Wat kann een maachen? D'Äntwert ass einfach - mir mussen iergendwéi d'Funktioun transforméieren , deenen hir Wäerter am Beräich leien zu enger Funktioun där hir Wäerter am Beräich leien . An esou eng Funktioun existéiert, heescht et logistesch Äntwert Funktioun oder inverse-logit Transformatioun. Treffen:
Loosst eis Schrëtt fir Schrëtt kucken wéi et funktionnéiert logistesch Äntwert Funktioun. Bedenkt datt mir an déi entgéintgesate Richtung goen, d.h. mir wäerten dovun ausgoen, datt mir d'Wahrscheinlechkeet Wäert wëssen, déi läit am Beräich vun ze an dann wäerte mir dëse Wäert op déi ganz Rei vun Zuelen "entspanen" aus ze .
03. Mir ofgeleet d'logistesch Äntwert Funktioun
Schrëtt 1. Konvertéiert d'Wahrscheinlechkeet Wäerter an eng Rei
Während der Transformatioun vun der Funktioun в logistesch Äntwert Funktioun Mir loossen eise Kredittanalytiker eleng an huelen amplaz en Tour vun de Bookmakers. Nee, natierlech, mir wäerten net Spillwette Plaz, all dat interesséiert eis do ass d'Bedeitung vun der Ausdrock, zum Beispill, d'Chance ass 4 ze 1. D'Chance, kennt fir all bettors, sinn d'Verhältnis vun "Erfolleger" zu " Feeler". An Wahrscheinlechkeetskonditioune sinn d'Chance d'Wahrscheinlechkeet vun engem Event geschitt gedeelt duerch d'Wahrscheinlechkeet datt den Event net geschitt. Loosst eis d'Formel opschreiwen fir d'Chance datt en Event geschitt :
wou - Wahrscheinlechkeet vun engem Event geschitt, - Wahrscheinlechkeet datt en Event NET geschitt
Zum Beispill, wann d'Wahrscheinlechkeet datt e jonkt, staarkt a spillerescht Päerd mam Spëtznumm "Veterok" eng al a flabber al Fra mam Numm "Matilda" bei enger Course schloen ass gläich wéi , da sinn d'Chancen op Erfolleg fir "Veterok". к a Vize versa, d'Chance wëssen, et wäert net schwéier ginn fir eis d'Wahrscheinlechkeet ze berechnen :
Also hu mir geléiert Wahrscheinlechkeet an Chancen ze "iwwersetzen", déi Wäerter aus huelen ze . Loosst eis e Schrëtt méi maachen a léiere fir d'Wahrscheinlechkeet op d'ganz Zuellinn ze "iwwersetzen". ze .
Schrëtt 2. Konvertéiert d'Wahrscheinlechkeet Wäerter an eng Rei
Dëse Schrëtt ass ganz einfach - loosst eis de Logarithmus vun de Chancen op d'Basis vun der Euler Zuel huelen a mir kréien:
Elo wësse mer datt wann , Berechent dann de Wäert wäert ganz einfach sinn an ausserdeem soll et positiv sinn: . Dat ass richteg.
Aus Virwëtz, loosst eis kucken wat wann , da erwaarden mir en negativen Wäert ze gesinn . Mir kontrolléieren: . Dat ass richteg.
Elo wësse mer wéi d'Wahrscheinlechkeetswäert konvertéiert gëtt ze laanscht déi ganz Zuel Linn aus ze . Am nächste Schrëtt maache mir de Géigendeel.
Fir elo bemierken mir datt am Aklang mat de Regele vum Logarithmus, de Wäert vun der Funktioun kennen , Dir kënnt d'Chance berechnen:
Dës Method fir d'Chance ze bestëmmen wäert fir eis an den nächste Schrëtt nëtzlech sinn.
Schrëtt 3. Loosst eis eng Formel ofgeleent fir ze bestëmmen
Also hu mir geléiert, wëssend , fannen Funktioun Wäerter . Awer tatsächlech brauche mir genau de Géigendeel - de Wäert ze kennen fannen . Fir dëst ze maachen, loosst eis op esou e Konzept wéi d'inverse Chance Funktioun wenden, no deem:
Am Artikel wäerte mir déi uewe genannte Formel net ofleeden, awer mir iwwerpréiwen se mat den Zuelen aus dem Beispill hei uewen. Mir wëssen dat mat Chance vu 4 op 1 (), d'Wahrscheinlechkeet datt den Event geschitt ass 0.8 (). Loosst eis en Ersatz maachen: . Dëst fällt mat eise Berechnungen, déi virdru gemaach goufen. Loosst eis weidergoen.
Am leschte Schrëtt hu mir dat ofgeleet , dat heescht, datt Dir eng Awiesselung an der inverse Chance Funktioun maachen kann. Mir kréien:
Deelt souwuel den Teller an den Nenner duerch , Dann:
Just am Fall, fir sécherzestellen datt mir néierens e Feeler gemaach hunn, maache mir nach eng kleng Scheck. Am Schrëtt 2, mir fir bestëmmt dat . Dann ersetzen de Wäert an der logistescher Äntwert Funktioun, mir erwaarden ze kréien . Mir ersetzen a kréien:
Gratulatioun, léif Lieser, mir hu just d'logistesch Äntwertfunktioun ofgeleet a getest. Loosst eis d'Grafik vun der Funktioun kucken.
Grafik 3 "Logistesch Äntwert Funktioun"
Code fir d'Grafik ze zéien
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()
An der Literatur fannt Dir och den Numm vun dëser Funktioun als sigmoid Funktioun. D'Grafik weist kloer datt d'Haaptännerung vun der Wahrscheinlechkeet vun engem Objet, deen zu enger Klass gehéiert, an engem relativ klenge Beräich geschitt , iergendwou vun ze .
Ech proposéiere fir bei eise Kredittanalytiker zréckzekommen an him ze hëllefen d'Wahrscheinlechkeet vum Remboursement vum Prêt ze berechnen, soss riskéiert hien ouni Bonus ze bleiwen :)
Table 2 "Potenzial Prêten"
Code fir den Dësch ze generéieren
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']]
Also, mir hunn d'Wahrscheinlechkeet vum Prêt zréckbezuelt. Am Allgemengen schéngt dëst richteg ze sinn.
Tatsächlech ass d'Wahrscheinlechkeet datt Vasya, mat enger Pai vun 120.000 RUR, fäeg ass all Mount 3.000 RUR der Bank ze ginn ass no bei 100%. Iwwregens, musse mir verstoen, datt eng Bank e Prêt zu Lesha erausginn kann, wann d'Bank d'Politik gëtt, zum Beispill, fir Prêten ze Clienten mat enger Wahrscheinlechkeet vun Prêt Remboursement vun méi wéi, soen, 0.3. Et ass just datt an dësem Fall d'Bank eng méi grouss Reserve fir méiglech Verloschter erstellt.
Et soll och feststellen, datt d'Pai-ze-Bezuelen Verhältnis vun op d'mannst 3 a mat engem Spillraum vun 5.000 RUR aus der Plafong geholl gouf. Dofir konnte mir de Vektor vu Gewiichter a senger ursprénglecher Form net benotzen . Mir hu missten d'Koeffizienten immens erofsetzen, an deem Fall hu mir all Koeffizient ëm 25.000 gedeelt, dat heescht, am Fong hu mir d'Resultat ugepasst. Awer dëst gouf speziell gemaach fir d'Verständnis vum Material an der éischter Etapp ze vereinfachen. Am Liewen brauche mir net Koeffizienten ze erfannen an unzepassen, awer se fannen. An den nächsten Abschnitter vum Artikel wäerte mir d'Equatioune ofgeleet mat deenen d'Parameteren ausgewielt ginn .
04. Mannste Felder Method fir Bestëmmung vun der Vecteure vun Gewiichter an der logistescher Äntwert Funktioun
Mir kennen dës Method scho fir e Vektor vu Gewiichter ze wielen , wéi mannst Quadrat Method (LSM) an Tatsaach, firwat benotzen mir et dann net an binär Klassifikatioun Problemer? Tatsächlech verhënnert näischt Iech ze benotzen MNC, nëmmen dës Method an Klassifikatioun Problemer gëtt Resultater déi manner genee wéi Logistesch Verloscht. Et gëtt eng theoretesch Basis dofir. Loosst eis als éischt en einfacht Beispill kucken.
Loosst eis unhuelen datt eis Modeller (benotzen MSE и Logistesch Verloscht) hu scho ugefaang de Vektor vu Gewiichter ze wielen a mir hunn d'Berechnung op e puer Schrëtt opgehalen. Et ass egal ob an der Mëtt, um Enn oder am Ufank, den Haapt Saach ass datt mir schonn e puer Wäerter vum Gewiichtsvektor hunn a loosse mer unhuelen datt an dësem Schrëtt de Gewiichtsvektor ass. fir béid Modeller ginn et keng Differenzen. Dann huelt déi resultéierend Gewiichter a ersetzt se an logistesch Äntwert Funktioun () fir en Objet deen zu der Klass gehéiert . Mir iwwerpréiwen zwee Fäll, wann, am Aklang mat dem gewielte Vektor vu Gewiichter, eise Modell ganz falsch ass a vice versa - de Modell ass ganz zouversiichtlech datt den Objet zu der Klass gehéiert . Loosst eis kucken wéi eng Geldstrofe beim Gebrauch ausgestallt ginn MNC и Logistesch Verloscht.
Code fir Strofe ze berechnen jee no der benotzte Verloschtfunktioun
# класс объекта
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
E Fall vun engem Feeler - de Modell gëtt en Objet un eng Klass zou mat enger Wahrscheinlechkeet vun 0,01
Strof op benotzen MNC wäert sinn:
Strof op benotzen Logistesch Verloscht wäert sinn:
E Fall vu staarkem Vertrauen - de Modell gëtt en Objet un eng Klass zou mat enger Wahrscheinlechkeet vun 0,99
Strof op benotzen MNC wäert sinn:
Strof op benotzen Logistesch Verloscht wäert sinn:
Dëst Beispill illustréiert gutt, datt am Fall vun engem Brutto Feeler d'Verloscht Funktioun Log Verloscht bestrooft de Modell däitlech méi wéi MSE. Loosst eis elo verstoen wat den theoreteschen Hannergrond ass fir d'Verloschtfunktioun ze benotzen Log Verloscht an der Klassifikatioun Problemer.
05. Maximal Wahrscheinlechkeet Method a logistesch Regressioun
Wéi am Ufank versprach, ass den Artikel voll mat einfache Beispiller. Am Studio gëtt et en anert Beispill an al Gäscht - Bankkreditter: Vasya, Fedya a Lesha.
Just am Fall, ier Dir d'Beispill entwéckelt, loosst mech Iech drun erënneren datt mir am Liewen mat enger Trainingsprobe vun Dausende oder Millioune Objete mat Zénger oder Honnerte vu Fonctiounen ze dinn hunn. Wéi och ëmmer, hei ginn d'Zuelen geholl fir datt se einfach an de Kapp vun engem Ufänger Datewëssenschaftler passen.
Komme mer zréck op d'Beispill. Loosst eis virstellen datt den Direkter vun der Bank décidéiert huet e Prêt fir jiddereen an der Nout auszeginn, trotz der Tatsaach, datt den Algorithmus him gesot huet, et net zu Lesha ze erausginn. An elo ass genuch Zäit vergaangen a mir wësse wien vun den dräi Helden de Prêt zréckbezuelt huet a wien net. Wat war ze erwaarden: Vasya a Fedya hunn de Prêt zréckbezuelt, awer d'Lesha net. Loosst eis elo virstellen datt dëst Resultat eng nei Trainingsprobe fir eis ass a gläichzäiteg ass et wéi wann all Donnéeën iwwer d'Faktoren, déi d'Wahrscheinlechkeet vun der Remboursement vum Prêt beaflossen (de Gehalt vum Prêt, d'Gréisst vun der monatlecher Bezuelung) verschwonnen ass. Dann, intuitiv, kënne mir dovun ausgoen datt all drëtte Prêt de Prêt net un d'Bank zréckbezuelt, oder an anere Wierder, d'Wahrscheinlechkeet datt den nächste Prêt de Prêt zréckbezuelt . Dës intuitiv Viraussetzung huet theoretesch Bestätegung a baséiert op maximal Wahrscheinlechkeet Method, dacks an der Literatur heescht et maximal Wahrscheinlechkeet Prinzip.
Als éischt, loosst eis mam konzeptuellen Apparat kennen léieren.
Proufwahrscheinlechkeet ass d'Wahrscheinlechkeet genee esou eng Probe ze kréien, genee esou Observatiounen/Resultater ze kréien, d.h. d'Produkt vun de Wahrscheinlechkeeten fir jiddereng vun de Proberesultater ze kréien (zum Beispill ob de Prêt vu Vasya, Fedya a Lesha zréckbezuelt gouf oder net zur selwechter Zäit zréckbezuelt gouf).
Wahrscheinlechkeet Funktioun bezitt d'Wahrscheinlechkeet vun enger Probe un d'Wäerter vun de Verdeelungsparameter.
An eisem Fall ass d'Trainingsprobe e generaliséierte Bernoulli Schema, an deem déi zoufälleg Variabel nëmmen zwee Wäerter hëlt: oder . Dofir kann d'Probewahrscheinlechkeet als Wahrscheinlechkeetsfunktioun vum Parameter geschriwwe ginn wéi folgend:
Déi uewe genannte Entrée kann wéi follegt interpretéiert ginn. Déi gemeinsam Wahrscheinlechkeet datt Vasya a Fedya de Prêt zréckbezuelen ass gläich , d'Wahrscheinlechkeet datt Lesha de Prêt NET zréckbezuelt ass gläich (well et NET de Prêt Remboursement war deen stattfonnt huet), dofir ass d'gemeinsame Wahrscheinlechkeet vun allen dräi Eventer gläich .
Maximal Wahrscheinlechkeet Method ass eng Method fir en onbekannte Parameter ze schätzen andeems Dir maximéiert Wahrscheinlechkeet Funktiounen. An eisem Fall musse mir esou e Wäert fannen , bei deem erreecht säin Maximum.
Wou kënnt déi eigentlech Iddi hier - fir de Wäert vun engem onbekannte Parameter ze sichen, bei deem d'Wahrscheinlechkeetsfunktioun e Maximum erreecht? D'Origine vun der Iddi staamt aus der Iddi datt eng Probe déi eenzeg Quell vu Wëssen ass, déi eis iwwer d'Bevëlkerung verfügbar ass. Alles wat mir iwwer d'Populatioun wëssen ass an der Probe vertrueden. Dofir, alles wat mir kënne soen ass datt eng Probe déi genaust Reflexioun vun der Populatioun ass, déi eis verfügbar ass. Dofir musse mir e Parameter fannen, bei deem d'verfügbare Probe am meeschte wahrscheinlech ass.
Natierlech hu mir mat engem Optimisatiounsproblem ze dinn, an deem mir den Extremumpunkt vun enger Funktioun musse fannen. Fir den Extremumpunkt ze fannen, ass et néideg den éischte-Uerdnungsbedingung ze berücksichtegen, dat heescht, d'Derivat vun der Funktioun op Null gläichen an d'Gleichung mat Respekt zum gewënschten Parameter ze léisen. Wéi och ëmmer, d'Sich no der Derivat vun engem Produkt vun enger grousser Zuel vu Faktoren kann eng laang Aufgab sinn; fir dëst ze vermeiden, gëtt et eng speziell Technik - op de Logarithmus ze wiesselen Wahrscheinlechkeet Funktiounen. Firwat ass esou en Iwwergang méiglech? Loosst eis op d'Tatsaach oppassen datt mir net no der Extremum vun der Funktioun selwer sichen, an den Extremumpunkt, dat heescht de Wäert vum onbekannte Parameter , bei deem erreecht säin Maximum. Wann Dir op e Logarithmus bewegt, ännert sech den Extremumpunkt net (obwuel den Extremum selwer ënnerscheet), well de Logarithmus eng monoton Funktioun ass.
Loosst eis, am Aklang mat der uewen, weider eist Beispill mat Prête vu Vasya, Fedya a Lesha entwéckelen. Éischt loosst eis weidergoen Logarithmus vun der Wahrscheinlechkeetsfunktioun:
Elo kënne mir den Ausdrock einfach ënnerscheeden duerch :
A schlussendlech betruecht d'Konditioun vun der éischter Uerdnung - mir gläichen d'Derivat vun der Funktioun op Null:
Also, eis intuitiv Schätzung vun der Wahrscheinlechkeet vun der Prêt Remboursement war theoretesch gerechtfäerdegt.
Super, awer wat solle mir elo mat dëser Informatioun maachen? Wa mir dovun ausgoen datt all drëtte Prêt d'Suen net an d'Bank zréckginn, da wäert déi lescht zwangsleefeg Faillite goen. Dat ass richteg, awer nëmmen wann d'Wahrscheinlechkeet vun der Prêt Remboursement gläich bewäerten Mir hunn d'Faktoren net berücksichtegt, déi d'Remboursement vum Prêt beaflossen: d'Pai vum Prêt an d'Gréisst vun der monatlecher Bezuelung. Loosst eis drun erënneren datt mir virdru d'Wahrscheinlechkeet vun der Remboursement vum Prêt vun all Client berechent hunn, déiselwecht Faktoren berücksichtegt. Et ass logesch datt mir Wahrscheinlechkeeten anescht wéi de konstante Gläichgewiicht kritt hunn .
Loosst eis d'Wahrscheinlechkeet vu Proben definéieren:
Code fir d'Berechnung vu Probewahrscheinlechkeeten
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)
Probe Wahrscheinlechkeet bei engem konstante Wäert :
Probe Wahrscheinlechkeet beim Berechnung vun der Wahrscheinlechkeet vum Remboursement vum Prêt berücksichtegt Faktoren :
D'Wahrscheinlechkeet vun enger Probe mat enger Wahrscheinlechkeet berechent ofhängeg vun de Faktoren huet sech méi héich gewisen wéi d'Wahrscheinlechkeet mat engem konstante Wahrscheinlechkeetswäert. Wat heescht dat? Dëst hindeit datt d'Wëssen iwwer d'Faktoren et méiglech gemaach huet méi präzis d'Wahrscheinlechkeet vun der Prêt Remboursement fir all Client ze wielen. Dofir, wann Dir den nächste Prêt erausgëtt, wier et méi korrekt fir de Modell ze benotzen, deen um Enn vum Sektioun 3 vum Artikel proposéiert gëtt fir d'Wahrscheinlechkeet vun der Scholdenbezuelung ze bewäerten.
Awer dann, wa mir wëllen maximéieren Probe Wahrscheinlechkeet Funktioun, Firwat dann net e puer Algorithmus benotzen, déi Wahrscheinlechkeeten fir Vasya, Fedya a Lesha produzéiere wäert, zum Beispill, gläich wéi 0.99, 0.99 an 0.01, respektiv. Vläicht wäert esou en Algorithmus gutt op der Trainingsprobe funktionnéieren, well et de Probe-Wahrscheinlechkeetwäert méi no bréngt , mä, éischtens, esou en Algorithmus wäert héchstwahrscheinlech Schwieregkeeten mat der Generaliséierungsfäegkeet hunn, an zweetens wäert dësen Algorithmus definitiv net linear sinn. A wann d'Methoden vun der Bekämpfung vun Iwwertraining (gläich schwaach Generaliséierungsfäegkeet) kloer net am Plang vun dësem Artikel abegraff sinn, da loosst eis den zweete Punkt méi detailléiert duerchgoën. Fir dëst ze maachen, beäntwert just eng einfach Fro. Kann d'Wahrscheinlechkeet datt Vasya a Fedya de Prêt zréckbezuelen d'selwecht sinn, andeems d'Faktore berécksiichtegt, déi eis bekannt sinn? Aus der Siicht vun der Tounlogik, natierlech net, kann et net. Also Vasya wäert bezuelen 2.5% vu sengem Gehalt pro Mount de Prêt ze Remboursement, a Fedya - bal 27,8%. Och an der Grafik 2 "Client Klassifikatioun" gesi mir datt de Vasya vill méi wäit vun der Linn ass, déi d'Klassen trennt wéi Fedya. A schliisslech wësse mer datt d'Funktioun fir Vasya an Fedya hëlt verschidde Wäerter: 4.24 fir Vasya an 1.0 fir Fedya. Elo, wann Fedya, zum Beispill, eng Uerdnung vun der Magnitude méi verdéngt oder e méi klenge Prêt gefrot huet, da wieren d'Wahrscheinlechkeeten fir de Prêt fir Vasya a Fedya ze bezuelen ähnlech. An anere Wierder, linear Ofhängegkeet kann net täuschen. A wa mir d'Chance tatsächlech berechent hunn , an hunn se net aus der Loft geholl, kënne mir sécher soen datt eis Wäerter am beschten erlaben eis d'Wahrscheinlechkeet vun der Remboursement vum Prêt vun all Prêt ze schätzen, awer well mir ausgemaach hunn ze iwwerhuelen datt d'Bestëmmung vun de Koeffizienten gouf no all de Regelen duerchgefouert, da wäerte mir dat dovun ausgoen - eis Koeffizienten erlaben eis eng besser Schätzung vun der Wahrscheinlechkeet ze ginn :)
Wéi och ëmmer, mir verschwannen. An dëser Sektioun musse mir verstoen wéi de Vektor vu Gewiichter bestëmmt gëtt , déi néideg ass fir d'Wahrscheinlechkeet vun der Remboursement vum Prêt vun all Prêt ze bewäerten.
Loosst eis kuerz zesummefaassen mat wéi engem Arsenal mir no Chance sichen :
1. Mir huelen un datt d'Relatioun tëscht der Zilvariabel (Prognosewäert) an dem Faktor deen d'Resultat beaflosst linear ass. Aus dësem Grond gëtt et benotzt linear Regressioun Funktioun léif , d'Linn vun deenen Objeten (Clienten) an Klassen deelt и oder (Clienten déi fäeg sinn de Prêt zréckzebezuelen an déi net). An eisem Fall huet d'Equatioun d'Form .
2. Mir benotzen inverse Logit Funktioun léif fir d'Wahrscheinlechkeet vun engem Objet zu enger Klass ze bestëmmen .
3. Mir betruechten eis Formatioun Formatioun als Ëmsetzung vun engem generaliséiert Bernoulli Schema, dat heescht, fir all Objet gëtt eng zoufälleg Variabel generéiert, déi mat Wahrscheinlechkeet (seng eegen fir all Objet) hëlt de Wäert 1 a mat Wahrscheinlechkeet - 0.
4. Mir wëssen wat mir brauchen fir maximal ze maximéieren Probe Wahrscheinlechkeet Funktioun déi akzeptéiert Faktoren berücksichtegt sou datt déi verfügbar Probe déi plausibelst gëtt. An anere Wierder, mir mussen Parameteren auswielen, bei deenen d'Probe am meeschte plausibel ass. An eisem Fall ass de gewielte Parameter d'Wahrscheinlechkeet vum Remboursement vum Prêt , déi am Tour vun onbekannte Koeffizienten hänkt . Also musse mir esou e Vektor vu Gewiichter fannen , bei deem d'Wahrscheinlechkeet vun der Probe maximal ass.
5. Mir wëssen wat mir maximéieren Probe Wahrscheinlechkeet Funktiounen Dir kënnt et benotzen maximal Wahrscheinlechkeet Method. A mir wëssen all déi komplizéiert Tricken fir mat dëser Method ze schaffen.
Dëst ass wéi et e Multi-Step Beweegung gëtt :)
Denkt elo drun datt mir am Ufank vum Artikel zwou Zorte vu Verloschtfunktiounen ofleeden wollten Logistesch Verloscht je wéi Objet Klassen designéierte sinn. Et ass geschitt, datt an der Klassifikatioun Problemer mat zwou Klassen, Klassen sinn als и oder . Ofhängeg vun der Notatioun, wäert d'Ausgab eng entspriechend Verloschtfunktioun hunn.
Fall 1. Klassifikatioun vun Objeten an и
Virdrun, wann d'Wahrscheinlechkeet vun enger Probe Bestëmmung, an där d'Wahrscheinlechkeet vun der Scholdebezuelung vum Prêt op Basis vu Faktoren a bestëmmte Koeffizienten berechent gouf , hu mir d'Formel applizéiert:
Tatsächlech ass d'Bedeitung logistesch Äntwert Funktiounen fir eng bestëmmt Vecteure vun Gewiichter
Da verhënnert näischt eis d'Probe Wahrscheinlechkeetsfunktioun wéi follegt ze schreiwen:
Et geschitt datt et heiansdo schwéier ass fir e puer Ufänger Analysten direkt ze verstoen wéi dës Funktioun funktionnéiert. Loosst eis 4 kuerz Beispiller kucken, déi alles kloer maachen:
1. wann (dh, no der Trainingsprobe gehéiert den Objet zu der Klass +1), an eisen Algorithmus bestëmmt d'Wahrscheinlechkeet fir en Objet an eng Klass ze klassifizéieren gläich wéi 0.9, da gëtt dëst Stéck Probewahrscheinlechkeet wéi follegt berechent:
2. wann an , da wäert d'Berechnung esou sinn:
3. wann an , da wäert d'Berechnung esou sinn:
4. wann an , da wäert d'Berechnung esou sinn:
Et ass offensichtlech datt d'Wahrscheinlechkeetsfunktioun an de Fäll 1 an 3 oder am allgemenge Fall maximéiert gëtt - mat korrekt geschätzte Wäerter vun de Wahrscheinlechkeeten fir en Objet un eng Klass ze ginn. .
Wéinst der Tatsaach, datt wann d'Wahrscheinlechkeet vun Bestëmmung vun engem Objet zu enger Klass Bestëmmung Mir kennen nëmmen d'Koeffizienten net , da wäerte mir se sichen. Wéi uewen erwähnt, ass dëst en Optimiséierungsproblem, an deem mir als éischt d'Derivat vun der Wahrscheinlechkeetsfunktioun mat Respekt zum Vektor vu Gewiichter musse fannen . Wéi och ëmmer, et mécht Sënn fir d'Aufgab fir eis selwer ze vereinfachen: mir sichen no der Derivat vum Logarithmus Wahrscheinlechkeet Funktiounen.
Firwat nom Logarithmus, an logistesch Feeler Funktiounen, Mir geännert d'Schëld vun op . Alles ass einfach, well a Probleemer fir d'Qualitéit vun engem Modell ze bewäerten ass et üblech fir de Wäert vun enger Funktioun ze minimiséieren, multiplizéiert mir déi riets Säit vum Ausdrock mat an deementspriechend, amplaz maximéieren, elo minimiséieren mir d'Funktioun.
Eigentlech, grad elo, virun Ären Aen, gouf d'Verloschtfunktioun ustrengend ofgeleet - Logistesch Verloscht fir en Trainingsset mat zwee Klassen: и .
Elo, fir d'Koeffizienten ze fannen, brauche mir just d'Derivat ze fannen logistesch Feeler Funktiounen an dann, mat numereschen Optimiséierungsmethoden, wéi Gradient Ofstamung oder stochastesch Gradient Ofstamung, wielt déi optimalst Koeffizienten . Awer, wéinst dem bedeitende Volumen vum Artikel, ass et proposéiert d'Differenzéierung eleng auszeféieren, oder vläicht ass dëst en Thema fir den nächsten Artikel mat vill Arithmetik ouni sou detailléiert Beispiller.
Fall 2. Klassifikatioun vun Objeten an и
D'Approche hei wäert d'selwecht sinn wéi mat Klassen и , awer de Wee selwer op d'Ausgab vun der Verloschtfunktioun Logistesch Verloscht, wäert méi dekoréiert sinn. Loosst eis ufänken. Fir d'Wahrscheinlechkeet Funktioun wäerte mir den Bedreiwer benotzen "wann ... dann ...". Dat ass, wann Den Objet gehéiert zu der Klass , dann fir d'Wahrscheinlechkeet vun der Probe ze berechnen benotze mir d'Wahrscheinlechkeet , wann den Objet zu der Klass gehéiert , dann ersetzen mir an d'Wahrscheinlechkeet . Dëst ass wéi d'Wahrscheinlechkeet Funktioun ausgesäit:
Loosst eis op eise Fanger beschreiwen wéi et funktionnéiert. Loosst eis 4 Fäll betruechten:
1. wann и , da wäert d'Proufwahrscheinlechkeet "goen"
2. wann и , da wäert d'Proufwahrscheinlechkeet "goen"
3. wann и , da wäert d'Proufwahrscheinlechkeet "goen"
4. wann и , da wäert d'Proufwahrscheinlechkeet "goen"
Et ass offensichtlech datt an de Fäll 1 an 3, wann d'Wahrscheinlechkeeten korrekt vum Algorithmus bestëmmt goufen, Wahrscheinlechkeet Funktioun gëtt maximéiert, dat ass, genee dat ass wat mir wollten kréien. Wéi och ëmmer, dës Approche ass zimmlech ëmständlech an als nächst wäerte mir eng méi kompakt Notatioun betruechten. Awer als éischt, loosst eis d'Wahrscheinlechkeetsfunktioun logarithmus mat enger Ännerung vum Zeechen, well mir et elo minimiséieren.
Loosst eis amplaz ersetzen Ausdrock :
Loosst eis de richtege Begrëff ënner dem Logarithmus vereinfachen mat einfachen arithmeteschen Techniken a kréien:
Elo ass et Zäit de Bedreiwer lass ze ginn "wann ... dann ...". Bedenkt datt wann en Objet gehéiert zu der Klass , dann am Ausdrock ënner dem Logarithmus, am Nenner, op d'Muecht opgehuewe , wann den Objet zu der Klass gehéiert , da gëtt $e$ op d'Muecht erhéicht . Dofir kann d'Notatioun fir de Grad vereinfacht ginn andeems se béid Fäll an een kombinéiert: . Dann logistesch Feeler Funktioun wäert d'Form huelen:
Am Aklang mat de Regele vum Logarithmus dréine mir d'Fraktioun ëm a setzen d'Zeechen eraus ""(Minus) fir de Logarithmus kréien mir:
Hei ass d'Verloscht Funktioun logistesche Verloscht, déi am Trainingsset benotzt gëtt mat Objeten, déi u Klassen zougewisen sinn: и .
Gutt, op dësem Punkt huelen ech mäi Congé a mir schléissen den Artikel of.
Hëllefsmaterialien
1. Literatur
1) Angewandte Regressiounsanalyse / N. Draper, G. Smith - 2. Ed. – M.: Finanzen a Statistiken, 1986 (Iwwersetzung aus Englesch)
2) Wahrscheinlechkeet Theorie a mathematesch Statistiken / V.E. Gmurman - 9th Ed. - M.: Héichschoul, 2003
3) Wahrscheinlechkeet Theorie / N.I. Chernova - Novosibirsk: Novosibirsk State University, 2007
4) Business Analyse: vun Daten zu Wëssen / Paklin N. B., Oreshkov V. I. - 2. Ed. - Sankt Petersburg: Peter, 2013
5) Data Science Data Science from Null / Joel Gras - Sankt Petersburg: BHV Petersburg, 2017
6) Praktesch Statistike fir Data Science Spezialisten / P. Bruce, E. Bruce - St. Petersburg: BHV Petersburg, 2018
2. Virträg, Coursen (Video)
1)
2)
3)
4)
5)
3. Internet Quellen
1)
2)
3)
4)
6)