Mâcher sur la régression logistique

Mâcher sur la régression logistique

Dans cet article, nous analyserons les calculs théoriques de la transformation fonctions de régression linéaire в fonction de transformation logit inverse (autrement appelée fonction de réponse logistique). Ensuite, en utilisant l'arsenal méthode du maximum de vraisemblance, conformément au modèle de régression logistique, nous dérivons la fonction de perte Perte logistique, ou en d'autres termes, nous définirons une fonction avec laquelle les paramètres du vecteur de poids sont sélectionnés dans le modèle de régression logistique Mâcher sur la régression logistique.

Aperçu de l'article :

  1. Répétons la relation linéaire entre deux variables
  2. Identifions le besoin de transformation fonctions de régression linéaire Mâcher sur la régression logistique в fonction de réponse logistique Mâcher sur la régression logistique
  3. Réalisons les transformations et la sortie fonction de réponse logistique
  4. Essayons de comprendre pourquoi la méthode des moindres carrés est mauvaise lors de la sélection des paramètres Mâcher sur la régression logistique fonctions Perte logistique
  5. Nous utilisons méthode du maximum de vraisemblance pour déterminer fonctions de sélection des paramètres Mâcher sur la régression logistique:

    5.1. Cas 1 : fonction Perte logistique pour les objets avec désignations de classe 0 и 1:

    Mâcher sur la régression logistique

    5.2. Cas 2 : fonction Perte logistique pour les objets avec désignations de classe -1 и +1:

    Mâcher sur la régression logistique


L'article regorge d'exemples simples dans lesquels tous les calculs sont faciles à effectuer oralement ou sur papier ; dans certains cas, une calculatrice peut être nécessaire. Alors préparez-vous :)

Cet article s’adresse principalement aux data scientists ayant un niveau initial de connaissances sur les bases du machine learning.

L'article fournira également du code pour dessiner des graphiques et des calculs. Tout le code est écrit dans le langage python 2.7. Permettez-moi de vous expliquer par avance la "nouveauté" de la version utilisée - c'est l'une des conditions pour suivre le cours bien connu de Yandex sur une plateforme d'éducation en ligne tout aussi connue Coursera, et, comme on pourrait le supposer, le matériel a été préparé sur la base de ce cours.

01. Dépendance linéaire

Il est tout à fait raisonnable de se poser la question : qu'est-ce que la dépendance linéaire et la régression logistique ont à voir là-dedans ?

C'est simple! La régression logistique est l'un des modèles appartenant au classificateur linéaire. En termes simples, la tâche d'un classificateur linéaire est de prédire les valeurs cibles Mâcher sur la régression logistique à partir de variables (régresseurs) Mâcher sur la régression logistique. On pense que la dépendance entre les caractéristiques Mâcher sur la régression logistique et valeurs cibles Mâcher sur la régression logistique linéaire. D'où le nom du classificateur - linéaire. En gros, le modèle de régression logistique repose sur l’hypothèse qu’il existe une relation linéaire entre les caractéristiques Mâcher sur la régression logistique et valeurs cibles Mâcher sur la régression logistique. C'est la connexion.

Il y a le premier exemple en studio, et il s'agit, à juste titre, de la dépendance rectiligne des grandeurs étudiées. Au cours de la préparation de l'article, je suis tombé sur un exemple qui a déjà mis de nombreuses personnes en haleine : la dépendance du courant à la tension. (« Analyse de régression appliquée », N. Draper, G. Smith). Nous l'examinerons ici également.

Conformément à La loi d'Ohm :

Mâcher sur la régression logistiqueMâcher sur la régression logistique - la force actuelle, Mâcher sur la régression logistique - tension, Mâcher sur la régression logistique - résistance.

Si nous ne savions pas La loi d'Ohm, alors nous pourrions trouver la dépendance empiriquement en changeant Mâcher sur la régression logistique et mesurer Mâcher sur la régression logistique, tout en soutenant Mâcher sur la régression logistique fixé. Nous verrions alors que le graphe de dépendance Mâcher sur la régression logistique à partir de Mâcher sur la régression logistique donne une ligne plus ou moins droite passant par l’origine. Nous disons « plus ou moins » car, bien que la relation soit réellement exacte, nos mesures peuvent contenir de petites erreurs et, par conséquent, les points sur le graphique peuvent ne pas tomber exactement sur la ligne, mais seront dispersés autour d'elle de manière aléatoire.

Graphique 1 « Dépendance » Mâcher sur la régression logistique à partir de Mâcher sur la régression logistique»

Mâcher sur la régression logistique

Code de dessin de carte

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. La nécessité de transformer l'équation de régression linéaire

Regardons un autre exemple. Imaginons que nous travaillions dans une banque et que notre tâche soit de déterminer la probabilité que l'emprunteur rembourse le prêt en fonction de certains facteurs. Pour simplifier la tâche, nous ne considérerons que deux facteurs : le salaire mensuel de l’emprunteur et le montant mensuel du remboursement du prêt.

La tâche est très conditionnelle, mais avec cet exemple on peut comprendre pourquoi il ne suffit pas d'utiliser fonctions de régression linéaire, et découvrez également quelles transformations doivent être effectuées avec la fonction.

Revenons à l'exemple. Il est entendu que plus le salaire est élevé, plus l’emprunteur pourra allouer mensuellement pour rembourser le prêt. Dans le même temps, pour une certaine échelle salariale, cette relation sera assez linéaire. Par exemple, prenons une fourchette de salaire de 60.000 200.000 RUR à 3 5.000 RUR et supposons que dans la fourchette de salaire spécifiée, la dépendance du montant de la mensualité sur le montant du salaire est linéaire. Disons que pour la fourchette de salaire spécifiée, il a été révélé que le rapport salaire/paiement ne peut pas descendre en dessous de XNUMX et que l'emprunteur doit toujours avoir XNUMX XNUMX RUR en réserve. Et seulement dans ce cas, nous supposerons que l'emprunteur remboursera le prêt à la banque. Ensuite, l’équation de régression linéaire prendra la forme :

Mâcher sur la régression logistique

Mâcher sur la régression logistique, Mâcher sur la régression logistique, Mâcher sur la régression logistique, Mâcher sur la régression logistique - salaire Mâcher sur la régression logistique-ème emprunteur, Mâcher sur la régression logistique - paiement du prêt Mâcher sur la régression logistique-ème emprunteur.

Remplacer le salaire et le paiement du prêt par des paramètres fixes dans l'équation Mâcher sur la régression logistique Vous pouvez décider d'accorder ou de refuser un prêt.

Pour l’avenir, nous constatons qu’avec les paramètres donnés Mâcher sur la régression logistique fonction de régression linéaire, utilisé dans fonctions de réponse logistique produira des valeurs importantes qui compliqueront les calculs pour déterminer les probabilités de remboursement du prêt. Par conséquent, il est proposé de réduire nos coefficients, disons, de 25.000 XNUMX fois. Cette transformation des coefficients ne modifiera pas la décision d'accorder un prêt. Rappelons ce point pour l’avenir, mais maintenant, pour que ce dont nous parlons soit encore plus clair, considérons la situation de trois emprunteurs potentiels.

Tableau 1 « Emprunteurs potentiels »

Mâcher sur la régression logistique

Code pour générer la table

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

Conformément aux données du tableau, Vasya, avec un salaire de 120.000 3.000 RUR, souhaite bénéficier d'un prêt afin de pouvoir le rembourser mensuellement à 5.000 XNUMX RUR. Nous avons déterminé que pour approuver le prêt, le salaire de Vasya devait être supérieur à trois fois le montant du paiement et qu'il devait encore rester XNUMX XNUMX RUR. Vasya satisfait à cette exigence : Mâcher sur la régression logistique. Il reste même 106.000 XNUMX RUR. Malgré le fait que lors du calcul Mâcher sur la régression logistique nous avons réduit les chances Mâcher sur la régression logistique 25.000 XNUMX fois, le résultat a été le même : le prêt peut être approuvé. Fedya recevra également un prêt, mais Lesha, malgré le fait qu'il en reçoive le plus, devra freiner ses appétits.

Traçons un graphique pour ce cas.

Graphique 2 « Classification des emprunteurs »

Mâcher sur la régression logistique

Code pour dessiner le graphique

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

Ainsi, notre droite, construite selon la fonction Mâcher sur la régression logistique, sépare les « mauvais » emprunteurs des « bons ». Les emprunteurs dont les désirs ne coïncident pas avec leurs capacités sont au-dessus de la ligne (Lesha), tandis que ceux qui, selon les paramètres de notre modèle, sont en mesure de rembourser le prêt sont en dessous de la ligne (Vasya et Fedya). En d’autres termes, nous pouvons dire ceci : notre ligne directe divise les emprunteurs en deux classes. Notons-les ainsi : en classe Mâcher sur la régression logistique Nous classerons les emprunteurs les plus susceptibles de rembourser le prêt comme Mâcher sur la régression logistique ou Mâcher sur la régression logistique Nous inclurons les emprunteurs qui ne seront probablement pas en mesure de rembourser le prêt.

Résumons les conclusions de cet exemple simple. Prenons un point Mâcher sur la régression logistique et, en substituant les coordonnées du point dans l'équation correspondante de la droite Mâcher sur la régression logistique, envisagez trois options :

  1. Si le point est sous la ligne et que nous l'attribuons à la classe Mâcher sur la régression logistique, alors la valeur de la fonction Mâcher sur la régression logistique sera positif à partir de Mâcher sur la régression logistique à Mâcher sur la régression logistique. Cela signifie que nous pouvons supposer que la probabilité de remboursement du prêt est comprise entre Mâcher sur la régression logistique. Plus la valeur de la fonction est grande, plus la probabilité est élevée.
  2. Si un point est au-dessus d'une ligne et que nous l'attribuons à la classe Mâcher sur la régression logistique ou Mâcher sur la régression logistique, alors la valeur de la fonction sera négative à partir de Mâcher sur la régression logistique à Mâcher sur la régression logistique. Nous supposerons alors que la probabilité de remboursement de la dette est comprise entre Mâcher sur la régression logistique et plus la valeur absolue de la fonction est grande, plus notre confiance est élevée.
  3. Le point est sur une droite, à la limite entre deux classes. Dans ce cas, la valeur de la fonction Mâcher sur la régression logistique sera égal Mâcher sur la régression logistique et la probabilité de rembourser le prêt est égale à Mâcher sur la régression logistique.

Imaginons maintenant que nous ayons non pas deux facteurs, mais des dizaines, et non pas trois, mais des milliers d’emprunteurs. Alors au lieu d’une ligne droite nous aurons m-dimensionnelle plan et coefficients Mâcher sur la régression logistique nous ne serons pas sortis de nulle part, mais dérivés selon toutes les règles, et sur la base des données accumulées sur les emprunteurs qui ont ou non remboursé le prêt. Et en effet, notons que nous sélectionnons désormais les emprunteurs en utilisant des coefficients déjà connus Mâcher sur la régression logistique. En fait, la tâche du modèle de régression logistique est précisément de déterminer les paramètres Mâcher sur la régression logistique, à laquelle la valeur de la fonction de perte Perte logistique tendra vers le minimum. Mais à propos de la façon dont le vecteur est calculé Mâcher sur la régression logistique, nous en saurons plus dans la 5ème section de l’article. En attendant, nous retournons à la terre promise : vers notre banquier et ses trois clients.

Grâce à la fonction Mâcher sur la régression logistique nous savons qui peut bénéficier d’un prêt et qui doit être refusé. Mais vous ne pouvez pas vous adresser au directeur avec de telles informations, car ils voulaient obtenir de nous la probabilité de remboursement du prêt par chaque emprunteur. Ce qu'il faut faire? La réponse est simple : nous devons d'une manière ou d'une autre transformer la fonction Mâcher sur la régression logistique, dont les valeurs se situent dans la plage Mâcher sur la régression logistique à une fonction dont les valeurs seront comprises dans la plage Mâcher sur la régression logistique. Et une telle fonction existe, elle s'appelle fonction de réponse logistique ou transformation logit inverse. Rencontrer:

Mâcher sur la régression logistique

Voyons étape par étape comment cela fonctionne fonction de réponse logistique. Notez que nous marcherons dans la direction opposée, c'est-à-dire nous supposerons que nous connaissons la valeur de probabilité, qui se situe dans la plage allant de Mâcher sur la régression logistique à Mâcher sur la régression logistique puis nous « déroulerons » cette valeur sur toute la plage de nombres de Mâcher sur la régression logistique à Mâcher sur la régression logistique.

03. Nous dérivons la fonction de réponse logistique

Étape 1. Convertissez les valeurs de probabilité en une plage Mâcher sur la régression logistique

Lors de la transformation de la fonction Mâcher sur la régression logistique в fonction de réponse logistique Mâcher sur la régression logistique Nous allons laisser notre analyste crédit tranquille et faire un tour chez les bookmakers. Non, bien sûr, nous ne parierons pas, tout ce qui nous intéresse là-bas c'est le sens de l'expression, par exemple, la chance est de 4 contre 1. La cote, familière à tous les parieurs, est le rapport des « réussites » aux « réussites ». les échecs". En termes de probabilité, les probabilités sont la probabilité qu’un événement se produise divisée par la probabilité que l’événement ne se produise pas. Écrivons la formule de la probabilité qu'un événement se produise Mâcher sur la régression logistique:

Mâcher sur la régression logistique

Mâcher sur la régression logistique - probabilité qu'un événement se produise, Mâcher sur la régression logistique — probabilité qu'un événement ne se produise PAS

Par exemple, si la probabilité qu'un cheval jeune, fort et joueur, surnommé « Veterok », batte une vieille femme flasque nommée « Matilda » lors d'une course est égale à Mâcher sur la régression logistique, alors les chances de succès de "Veterok" seront Mâcher sur la régression logistique к Mâcher sur la régression logistique Mâcher sur la régression logistique et vice versa, connaissant les probabilités, il ne nous sera pas difficile de calculer la probabilité Mâcher sur la régression logistique:

Mâcher sur la régression logistique

Ainsi, nous avons appris à « traduire » la probabilité en chances, qui prennent des valeurs de Mâcher sur la régression logistique à Mâcher sur la régression logistique. Faisons un pas de plus et apprenons à « traduire » la probabilité sur la droite numérique entière de Mâcher sur la régression logistique à Mâcher sur la régression logistique.

Étape 2. Convertissez les valeurs de probabilité en une plage Mâcher sur la régression logistique

Cette étape est très simple : prenons le logarithme des probabilités à la base du nombre d'Euler. Mâcher sur la régression logistique et on obtient :

Mâcher sur la régression logistique

Maintenant nous savons que si Mâcher sur la régression logistique, puis calculez la valeur Mâcher sur la régression logistique sera très simple et, en plus, cela devrait être positif : Mâcher sur la régression logistique. C'est vrai.

Par curiosité, vérifions et si Mâcher sur la régression logistique, alors nous nous attendons à voir une valeur négative Mâcher sur la régression logistique. Nous vérifions: Mâcher sur la régression logistique. C'est exact.

Nous savons maintenant comment convertir la valeur de probabilité de Mâcher sur la régression logistique à Mâcher sur la régression logistique le long de toute la droite numérique à partir de Mâcher sur la régression logistique à Mâcher sur la régression logistique. À l'étape suivante, nous ferons le contraire.

Pour l'instant, notons que conformément aux règles du logarithme, connaître la valeur de la fonction Mâcher sur la régression logistique, vous pouvez calculer les cotes :

Mâcher sur la régression logistique

Cette méthode de détermination des cotes nous sera utile dans la prochaine étape.

Étape 3. Dérivons une formule pour déterminer Mâcher sur la régression logistique

Nous avons donc appris, sachant Mâcher sur la régression logistique, trouver les valeurs des fonctions Mâcher sur la régression logistique. Cependant, en fait, nous avons besoin exactement du contraire : connaître la valeur Mâcher sur la régression logistique trouver Mâcher sur la régression logistique. Pour ce faire, tournons-nous vers un concept tel que la fonction de cote inverse, selon laquelle :

Mâcher sur la régression logistique

Dans l'article, nous ne dériverons pas la formule ci-dessus, mais nous la vérifierons à l'aide des nombres de l'exemple ci-dessus. Nous le savons avec une probabilité de 4 contre 1 (Mâcher sur la régression logistique), la probabilité que l'événement se produise est de 0.8 (Mâcher sur la régression logistique). Faisons une substitution : Mâcher sur la régression logistique. Cela coïncide avec nos calculs effectués précédemment. Allons-nous en.

Dans la dernière étape, nous avons déduit que Mâcher sur la régression logistique, ce qui signifie que vous pouvez effectuer une substitution dans la fonction de cotes inverses. On a:

Mâcher sur la régression logistique

Divisez le numérateur et le dénominateur par Mâcher sur la régression logistique, ensuite:

Mâcher sur la régression logistique

Juste au cas où, pour nous assurer que nous n’avons commis aucune erreur nulle part, nous ferons encore une petite vérification. À l'étape 2, nous pour Mâcher sur la régression logistique déterminé que Mâcher sur la régression logistique. Ensuite, en remplaçant la valeur Mâcher sur la régression logistique dans la fonction de réponse logistique, nous nous attendons à obtenir Mâcher sur la régression logistique. On remplace et on obtient : Mâcher sur la régression logistique

Félicitations, cher lecteur, nous venons de dériver et de tester la fonction de réponse logistique. Regardons le graphique de la fonction.

Graphique 3 « Fonction de réponse logistique »

Mâcher sur la régression logistique

Code pour dessiner le graphique

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

Dans la littérature, vous pouvez également trouver le nom de cette fonction sous la forme fonction sigmoïde. Le graphique montre clairement que le principal changement dans la probabilité qu'un objet appartienne à une classe se produit dans une plage relativement petite. Mâcher sur la régression logistique, quelque part de Mâcher sur la régression logistique à Mâcher sur la régression logistique.

Je suggère de retourner voir notre analyste crédit et de l'aider à calculer la probabilité de remboursement du prêt, sinon il risque de se retrouver sans bonus :)

Tableau 2 « Emprunteurs potentiels »

Mâcher sur la régression logistique

Code pour générer la table

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

Nous avons donc déterminé la probabilité de remboursement du prêt. En général, cela semble être vrai.

En effet, la probabilité que Vasya, avec un salaire de 120.000 3.000 RUR, puisse donner 100 0.3 RUR à la banque chaque mois est proche de XNUMX %. Soit dit en passant, nous devons comprendre qu'une banque peut accorder un prêt à Lesha si la politique de la banque prévoit, par exemple, de prêter à des clients avec une probabilité de remboursement du prêt supérieure, disons, à XNUMX. C’est juste que dans ce cas, la banque créera une réserve plus importante pour d’éventuelles pertes.

Il convient également de noter que le rapport salaire/paiement d'au moins 3 et avec une marge de 5.000 XNUMX RUR a été retiré du plafond. Nous ne pouvons donc pas utiliser le vecteur de poids sous sa forme originale Mâcher sur la régression logistique. Nous devions réduire considérablement les coefficients, et dans ce cas, nous avons divisé chaque coefficient par 25.000 XNUMX, c'est-à-dire que nous avons essentiellement ajusté le résultat. Mais cela a été fait spécifiquement pour simplifier la compréhension du matériel au stade initial. Dans la vie, nous n'aurons pas besoin d'inventer et d'ajuster des coefficients, mais de les trouver. Dans les prochaines sections de l'article, nous dériverons les équations avec lesquelles les paramètres sont sélectionnés Mâcher sur la régression logistique.

04. Méthode des moindres carrés pour déterminer le vecteur de poids Mâcher sur la régression logistique dans la fonction de réponse logistique

On connaît déjà cette méthode de sélection d'un vecteur de poids Mâcher sur la régression logistiquecomme méthode des moindres carrés (LSM) et en fait, pourquoi ne l’utilisons-nous pas alors dans des problèmes de classification binaire ? En effet, rien ne vous empêche d'utiliser multinationale, seule cette méthode dans les problèmes de classification donne des résultats moins précis que Perte logistique. Il existe une base théorique à cela. Examinons d'abord un exemple simple.

Supposons que nos modèles (utilisant MSE и Perte logistique) ont déjà commencé à sélectionner le vecteur de poids Mâcher sur la régression logistique et nous avons arrêté le calcul à un moment donné. Peu importe que ce soit au milieu, à la fin ou au début, l'essentiel est que nous ayons déjà quelques valeurs du vecteur de poids et supposons qu'à cette étape, le vecteur de poids Mâcher sur la régression logistique pour les deux modèles, il n'y a aucune différence. Prenez ensuite les poids obtenus et remplacez-les par fonction de réponse logistique (Mâcher sur la régression logistique) pour un objet appartenant à la classe Mâcher sur la régression logistique. Nous examinons deux cas où, conformément au vecteur de poids sélectionné, notre modèle est très erroné et vice versa - le modèle est très sûr que l'objet appartient à la classe Mâcher sur la régression logistique. Voyons quelles amendes seront infligées lors de l'utilisation multinationale и Perte logistique.

Code pour calculer les pénalités en fonction de la fonction de perte utilisée

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

Un cas de bévue — le modèle attribue un objet à une classe Mâcher sur la régression logistique avec une probabilité de 0,01

Pénalité d'utilisation multinationale sera:
Mâcher sur la régression logistique

Pénalité d'utilisation Perte logistique sera:
Mâcher sur la régression logistique

Un cas de forte confiance — le modèle attribue un objet à une classe Mâcher sur la régression logistique avec une probabilité de 0,99

Pénalité d'utilisation multinationale sera:
Mâcher sur la régression logistique

Pénalité d'utilisation Perte logistique sera:
Mâcher sur la régression logistique

Cet exemple illustre bien qu'en cas d'erreur grossière, la fonction de perte Perte de journal pénalise le modèle beaucoup plus que MSE. Comprenons maintenant quel est le contexte théorique de l'utilisation de la fonction de perte Perte de journal dans les problèmes de classification.

05. Méthode du maximum de vraisemblance et régression logistique

Comme promis au début, l’article regorge d’exemples simples. Dans le studio, il y a un autre exemple et d'anciens invités - des emprunteurs bancaires : Vasya, Fedya et Lesha.

Juste au cas où, avant de développer l'exemple, permettez-moi de vous rappeler que dans la vie, nous avons affaire à un échantillon d'apprentissage de milliers ou de millions d'objets avec des dizaines ou des centaines de fonctionnalités. Cependant, ici, les chiffres sont pris de manière à pouvoir facilement entrer dans la tête d'un data scientist novice.

Revenons à l'exemple. Imaginons que le directeur de la banque décide d'accorder un prêt à toutes les personnes dans le besoin, malgré le fait que l'algorithme lui ait dit de ne pas l'accorder à Lesha. Et maintenant, suffisamment de temps s'est écoulé et nous savons lequel des trois héros a remboursé le prêt et lequel ne l'a pas fait. Ce à quoi il fallait s'attendre : Vasya et Fedya ont remboursé le prêt, mais Lesha ne l'a pas fait. Imaginons maintenant que ce résultat soit pour nous un nouvel échantillon de formation et, en même temps, c'est comme si toutes les données sur les facteurs influençant la probabilité de remboursement du prêt (salaire de l'emprunteur, montant de la mensualité) avaient disparu. Ensuite, intuitivement, nous pouvons supposer qu'un emprunteur sur trois ne rembourse pas son prêt à la banque, ou en d'autres termes, la probabilité que le prochain emprunteur rembourse son prêt. Mâcher sur la régression logistique. Cette hypothèse intuitive a une confirmation théorique et est basée sur méthode du maximum de vraisemblance, souvent dans la littérature on l'appelle principe du maximum de vraisemblance.

Commençons par nous familiariser avec l'appareil conceptuel.

Probabilité d'échantillonnage est la probabilité d'obtenir exactement un tel échantillon, d'obtenir exactement de telles observations/résultats, c'est-à-dire le produit des probabilités d'obtenir chacun des résultats de l'échantillon (par exemple, si le prêt de Vasya, Fedya et Lesha a été remboursé ou non en même temps).

Fonction de vraisemblance relie la vraisemblance d'un échantillon aux valeurs des paramètres de distribution.

Dans notre cas, l'échantillon d'apprentissage est un schéma de Bernoulli généralisé, dans lequel la variable aléatoire ne prend que deux valeurs : Mâcher sur la régression logistique ou Mâcher sur la régression logistique. Par conséquent, la vraisemblance de l’échantillon peut être écrite comme une fonction de vraisemblance du paramètre Mâcher sur la régression logistique comme suit:

Mâcher sur la régression logistique
Mâcher sur la régression logistique

L'entrée ci-dessus peut être interprétée comme suit. La probabilité conjointe que Vasya et Fedya remboursent le prêt est égale à Mâcher sur la régression logistique, la probabilité que Lesha ne rembourse PAS le prêt est égale à Mâcher sur la régression logistique (puisque ce n'est PAS le remboursement du prêt qui a eu lieu), donc la probabilité conjointe des trois événements est égale Mâcher sur la régression logistique.

Méthode du maximum de vraisemblance est une méthode pour estimer un paramètre inconnu en maximisant fonctions de vraisemblance. Dans notre cas, nous devons trouver une telle valeur Mâcher sur la régression logistiqueà quel Mâcher sur la régression logistique atteint son maximum.

D'où vient l'idée réelle : rechercher la valeur d'un paramètre inconnu à laquelle la fonction de vraisemblance atteint un maximum ? Les origines de l’idée proviennent de l’idée qu’un échantillon est la seule source de connaissances dont nous disposons sur la population. Tout ce que nous savons sur la population est représenté dans l’échantillon. Par conséquent, tout ce que nous pouvons dire, c’est qu’un échantillon constitue le reflet le plus précis de la population dont nous disposons. Par conséquent, nous devons trouver un paramètre pour lequel l’échantillon disponible devient le plus probable.

Évidemment, nous avons affaire à un problème d’optimisation dans lequel il faut trouver le point extrême d’une fonction. Pour trouver le point extrême, il est nécessaire de considérer la condition du premier ordre, c'est-à-dire d'assimiler la dérivée de la fonction à zéro et de résoudre l'équation par rapport au paramètre souhaité. Cependant, rechercher la dérivée d'un produit d'un grand nombre de facteurs peut être une tâche longue ; pour éviter cela, il existe une technique spéciale : passer au logarithme fonctions de vraisemblance. Pourquoi une telle transition est-elle possible ? Faisons attention au fait que nous ne recherchons pas l'extremum de la fonction elle-mêmeMâcher sur la régression logistique, et le point extremum, c'est-à-dire la valeur du paramètre inconnu Mâcher sur la régression logistiqueà quel Mâcher sur la régression logistique atteint son maximum. Lors du passage à un logarithme, le point extrême ne change pas (bien que l'extremum lui-même diffère), car le logarithme est une fonction monotone.

Conformément à ce qui précède, continuons à développer notre exemple avec les prêts de Vasya, Fedya et Lesha. Passons d'abord à logarithme de la fonction de vraisemblance:

Mâcher sur la régression logistique

Maintenant, nous pouvons facilement différencier l'expression par Mâcher sur la régression logistique:

Mâcher sur la régression logistique

Et enfin, considérons la condition du premier ordre - nous assimilons la dérivée de la fonction à zéro :

Mâcher sur la régression logistique

Ainsi, notre estimation intuitive de la probabilité de remboursement du prêt Mâcher sur la régression logistique était théoriquement justifié.

Très bien, mais que devons-nous faire de ces informations maintenant ? Si l'on suppose qu'un emprunteur sur trois ne restitue pas l'argent à la banque, alors cette dernière fera inévitablement faillite. C'est vrai, mais seulement en évaluant la probabilité de remboursement du prêt égale à Mâcher sur la régression logistique Nous n’avons pas pris en compte les facteurs influençant le remboursement du prêt : le salaire de l’emprunteur et le montant de la mensualité. Rappelons que nous avons préalablement calculé la probabilité de remboursement du prêt par chaque client en tenant compte de ces mêmes facteurs. Il est logique que nous obtenions des probabilités différentes de la constante égale Mâcher sur la régression logistique.

Définissons la vraisemblance des échantillons :

Code de calcul des probabilités d'échantillon

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)

Échantillon de vraisemblance à valeur constante Mâcher sur la régression logistique:

Mâcher sur la régression logistique

Exemple de vraisemblance lors du calcul de la probabilité de remboursement du prêt en tenant compte des facteurs Mâcher sur la régression logistique:

Mâcher sur la régression logistique
Mâcher sur la régression logistique

La vraisemblance d'un échantillon avec une probabilité calculée en fonction des facteurs s'est avérée supérieure à la vraisemblance avec une valeur de probabilité constante. Qu'est-ce que cela signifie? Ceci suggère que la connaissance des facteurs a permis de sélectionner plus précisément la probabilité de remboursement du prêt pour chaque client. Ainsi, lors de l'émission du prochain prêt, il serait plus correct d'utiliser le modèle proposé à la fin de la section 3 de l'article pour évaluer la probabilité de remboursement de la dette.

Mais alors, si l’on veut maximiser fonction de vraisemblance d'échantillon, alors pourquoi ne pas utiliser un algorithme qui produira des probabilités pour Vasya, Fedya et Lesha, par exemple, égales à 0.99, 0.99 et 0.01, respectivement. Peut-être qu'un tel algorithme fonctionnera bien sur l'échantillon d'apprentissage, car il rapprochera la valeur de vraisemblance de l'échantillon de Mâcher sur la régression logistique, mais, d'une part, un tel algorithme aura très probablement des difficultés de capacité de généralisation, et d'autre part, cet algorithme ne sera certainement pas linéaire. Et si les méthodes de lutte contre le surentraînement (capacité de généralisation tout aussi faible) ne sont clairement pas incluses dans le plan de cet article, revenons plus en détail sur le deuxième point. Pour ce faire, répondez simplement à une question simple. La probabilité que Vasya et Fedya remboursent le prêt pourrait-elle être la même, compte tenu des facteurs que nous connaissons ? Du point de vue de la logique, bien sûr que non, cela ne peut pas être le cas. Ainsi, Vasya paiera 2.5 % de son salaire par mois pour rembourser le prêt, et Fedya - près de 27,8 %. Également dans le graphique 2 « Classification des clients », nous voyons que Vasya est beaucoup plus éloignée de la ligne séparant les classes que Fedya. Et enfin, on sait que la fonction Mâcher sur la régression logistique pour Vasya et Fedya prend des valeurs différentes : 4.24 pour Vasya et 1.0 pour Fedya. Maintenant, si Fedya, par exemple, gagnait un ordre de grandeur supérieur ou demandait un prêt plus petit, alors les probabilités de rembourser le prêt pour Vasya et Fedya seraient similaires. En d’autres termes, la dépendance linéaire ne peut être trompée. Et si nous calculions réellement les chances Mâcher sur la régression logistique, et ne les avons pas sortis de nulle part, nous pouvons affirmer en toute sécurité que nos valeurs Mâcher sur la régression logistique permettent au mieux d'estimer la probabilité de remboursement du prêt par chaque emprunteur, mais comme nous sommes convenus de supposer que la détermination des coefficients Mâcher sur la régression logistique a été réalisé selon toutes les règles, alors nous le supposerons - nos coefficients nous permettent de donner une meilleure estimation de la probabilité :)

Cependant, nous nous éloignons. Dans cette section, nous devons comprendre comment le vecteur des poids est déterminé Mâcher sur la régression logistique, ce qui est nécessaire pour évaluer la probabilité de remboursement du prêt par chaque emprunteur.

Résumons brièvement avec quel arsenal nous cherchons des cotes Mâcher sur la régression logistique:

1. Nous supposons que la relation entre la variable cible (valeur de prédiction) et le facteur influençant le résultat est linéaire. C'est pour cette raison qu'il est utilisé fonction de régression linéaire espèce Mâcher sur la régression logistique, dont la ligne divise les objets (clients) en classes Mâcher sur la régression logistique и Mâcher sur la régression logistique ou Mâcher sur la régression logistique (clients qui sont en mesure de rembourser le prêt et ceux qui ne le sont pas). Dans notre cas, l'équation a la forme Mâcher sur la régression logistique.

2. Nous utilisons fonction logit inverse espèce Mâcher sur la régression logistique déterminer la probabilité qu'un objet appartienne à une classe Mâcher sur la régression logistique.

3. Nous considérons notre ensemble de formation comme la mise en œuvre d'un Schémas de Bernoulli, c'est-à-dire que pour chaque objet une variable aléatoire est générée, qui avec probabilité Mâcher sur la régression logistique (le sien pour chaque objet) prend la valeur 1 et avec probabilité Mâcher sur la régression logistique - 0.

4. Nous savons ce que nous devons maximiser fonction de vraisemblance d'échantillon en tenant compte des facteurs acceptés afin que l'échantillon disponible devienne le plus plausible. En d’autres termes, nous devons sélectionner les paramètres pour lesquels l’échantillon sera le plus plausible. Dans notre cas, le paramètre retenu est la probabilité de remboursement du prêt Mâcher sur la régression logistique, qui à son tour dépend de coefficients inconnus Mâcher sur la régression logistique. Nous devons donc trouver un tel vecteur de poids Mâcher sur la régression logistique, auquel la probabilité de l'échantillon sera maximale.

5. Nous savons quoi maximiser fonctions de vraisemblance d'échantillon peut être utilisé méthode du maximum de vraisemblance. Et nous connaissons toutes les astuces pour travailler avec cette méthode.

C'est ainsi que cela s'avère être un déménagement en plusieurs étapes :)

Rappelez-vous maintenant qu'au tout début de l'article nous voulions dériver deux types de fonctions de perte Perte logistique en fonction de la façon dont les classes d'objets sont désignées. Il se trouve que dans les problèmes de classification à deux classes, les classes sont notées Mâcher sur la régression logistique и Mâcher sur la régression logistique ou Mâcher sur la régression logistique. Selon la notation, la sortie aura une fonction de perte correspondante.

Cas 1. Classification des objets en Mâcher sur la régression logistique и Mâcher sur la régression logistique

Auparavant, lors de la détermination de la probabilité d'un échantillon dans lequel la probabilité de remboursement de la dette par l'emprunteur était calculée sur la base de facteurs et de coefficients donnés Mâcher sur la régression logistique, nous avons appliqué la formule :

Mâcher sur la régression logistique

En fait Mâcher sur la régression logistique est le sens fonctions de réponse logistique Mâcher sur la régression logistique pour un vecteur de poids donné Mâcher sur la régression logistique

Alors rien ne nous empêche d’écrire la fonction de vraisemblance de l’échantillon comme suit :

Mâcher sur la régression logistique

Il arrive qu'il soit parfois difficile pour certains analystes novices de comprendre immédiatement le fonctionnement de cette fonction. Regardons 4 courts exemples qui clarifieront les choses :

1. si Mâcher sur la régression logistique (c'est-à-dire que selon l'échantillon d'apprentissage, l'objet appartient à la classe +1), et notre algorithme Mâcher sur la régression logistique détermine la probabilité de classer un objet dans une classe Mâcher sur la régression logistique égal à 0.9, alors cet échantillon de vraisemblance sera calculé comme suit :

Mâcher sur la régression logistique

2. si Mâcher sur la régression logistiqueEt Mâcher sur la régression logistique, alors le calcul sera comme ceci :

Mâcher sur la régression logistique

3. si Mâcher sur la régression logistiqueEt Mâcher sur la régression logistique, alors le calcul sera comme ceci :

Mâcher sur la régression logistique

4. si Mâcher sur la régression logistiqueEt Mâcher sur la régression logistique, alors le calcul sera comme ceci :

Mâcher sur la régression logistique

Il est évident que la fonction de vraisemblance sera maximisée dans les cas 1 et 3 ou dans le cas général - avec des valeurs correctement devinées des probabilités d'assigner un objet à une classe Mâcher sur la régression logistique.

En raison du fait que lors de la détermination de la probabilité d'attribuer un objet à une classe Mâcher sur la régression logistique Nous ne connaissons que les coefficients Mâcher sur la régression logistique, alors nous les chercherons. Comme mentionné ci-dessus, il s'agit d'un problème d'optimisation dans lequel nous devons d'abord trouver la dérivée de la fonction de vraisemblance par rapport au vecteur de poids. Mâcher sur la régression logistique. Cependant, il est d'abord logique de se simplifier la tâche : nous chercherons la dérivée du logarithme fonctions de vraisemblance.

Mâcher sur la régression logistique

Pourquoi après le logarithme, en fonctions d'erreur logistique, nous avons changé le signe de Mâcher sur la régression logistique sur Mâcher sur la régression logistique. Tout est simple, puisque dans les problèmes d'évaluation de la qualité d'un modèle il est d'usage de minimiser la valeur d'une fonction, on multiplie le côté droit de l'expression par Mâcher sur la régression logistique et par conséquent, au lieu de maximiser, nous minimisons maintenant la fonction.

En fait, à l'heure actuelle, sous vos yeux, la fonction de perte a été minutieusement dérivée - Perte logistique pour un ensemble de formations comprenant deux cours : Mâcher sur la régression logistique и Mâcher sur la régression logistique.

Maintenant, pour trouver les coefficients, il suffit de trouver la dérivée fonctions d'erreur logistique puis, à l'aide de méthodes d'optimisation numérique, telles que la descente de gradient ou la descente de gradient stochastique, sélectionnez les coefficients les plus optimaux Mâcher sur la régression logistique. Mais, étant donné le volume considérable de l'article, il est proposé d'effectuer la différenciation par vous-même, ou peut-être que ce sera le sujet du prochain article avec beaucoup d'arithmétique sans exemples aussi détaillés.

Cas 2. Classification des objets en Mâcher sur la régression logistique и Mâcher sur la régression logistique

L'approche ici sera la même que pour les cours Mâcher sur la régression logistique и Mâcher sur la régression logistique, mais le chemin lui-même vers la sortie de la fonction de perte Perte logistique, sera plus orné. Commençons. Pour la fonction de vraisemblance, nous utiliserons l'opérateur "si donc..."... C'est-à-dire si Mâcher sur la régression logistiqueLe ème objet appartient à la classe Mâcher sur la régression logistique, puis pour calculer la vraisemblance de l'échantillon, nous utilisons la probabilité Mâcher sur la régression logistique, si l'objet appartient à la classe Mâcher sur la régression logistique, alors nous substituons à la vraisemblance Mâcher sur la régression logistique. Voici à quoi ressemble la fonction de vraisemblance :

Mâcher sur la régression logistique

Décrivons sur nos doigts comment cela fonctionne. Considérons 4 cas :

1. si Mâcher sur la régression logistique и Mâcher sur la régression logistique, alors la probabilité d'échantillonnage "passera" Mâcher sur la régression logistique

2. si Mâcher sur la régression logistique и Mâcher sur la régression logistique, alors la probabilité d'échantillonnage "passera" Mâcher sur la régression logistique

3. si Mâcher sur la régression logistique и Mâcher sur la régression logistique, alors la probabilité d'échantillonnage "passera" Mâcher sur la régression logistique

4. si Mâcher sur la régression logistique и Mâcher sur la régression logistique, alors la probabilité d'échantillonnage "passera" Mâcher sur la régression logistique

Il est évident que dans les cas 1 et 3, lorsque les probabilités ont été correctement déterminées par l'algorithme, fonction de vraisemblance sera maximisé, c'est-à-dire que c'est exactement ce que nous voulions obtenir. Cependant, cette approche est assez lourde et nous considérerons ensuite une notation plus compacte. Mais d'abord, logarithmonons la fonction de vraisemblance avec un changement de signe, puisque nous allons maintenant la minimiser.

Mâcher sur la régression logistique

Remplaçons plutôt Mâcher sur la régression logistique expression Mâcher sur la régression logistique:

Mâcher sur la régression logistique

Simplifions le terme correct sous le logarithme en utilisant des techniques arithmétiques simples et obtenons :

Mâcher sur la régression logistique

Il est maintenant temps de se débarrasser de l'opérateur "si donc...". Notez que lorsqu'un objet Mâcher sur la régression logistique appartient à la classe Mâcher sur la régression logistique, puis dans l'expression sous le logarithme, au dénominateur, Mâcher sur la régression logistique élevé au pouvoir Mâcher sur la régression logistique, si l'objet appartient à la classe Mâcher sur la régression logistique, alors $e$ est élevé à la puissance Mâcher sur la régression logistique. Par conséquent, la notation du diplôme peut être simplifiée en combinant les deux cas en un seul : Mâcher sur la régression logistique. puis fonction d'erreur logistique prendra la forme :

Mâcher sur la régression logistique

Conformément aux règles du logarithme, on retourne la fraction et on met le signe "Mâcher sur la régression logistique" (moins) pour le logarithme, on obtient :

Mâcher sur la régression logistique

Voici la fonction de perte perte logistique, qui est utilisé dans l'ensemble de formation avec les objets attribués aux classes : Mâcher sur la régression logistique и Mâcher sur la régression logistique.

Eh bien, à ce stade, je prends congé et nous concluons l'article.

Mâcher sur la régression logistique Le travail précédent de l’auteur est « Apporter l’équation de régression linéaire sous forme matricielle »

matières auxiliaires

1. Littérature

1) Analyse de régression appliquée / N. Draper, G. Smith - 2e éd. – M. : Finances et Statistiques, 1986 (traduction de l’anglais)

2) Théorie des probabilités et statistiques mathématiques / V.E. Gmurman - 9e éd. - M. : Ecole Supérieure, 2003

3) Théorie des probabilités / N.I. Chernova - Novossibirsk : Université d'État de Novossibirsk, 2007

4) Business Analytics : des données à la connaissance / Paklin N. B., Oreshkov V. I. - 2e éd. — Saint-Pétersbourg : Peter, 2013

5) Data Science Data science from scratch / Joel Gras - Saint-Pétersbourg : BHV Petersburg, 2017

6) Statistiques pratiques pour les spécialistes de la science des données / P. Bruce, E. Bruce - Saint-Pétersbourg : BHV Petersburg, 2018

2. Conférences, cours (vidéo)

1) L'essence de la méthode du maximum de vraisemblance, Boris Demeshev

2) Méthode du maximum de vraisemblance dans le cas continu, Boris Demeshev

3) Régression logistique. Cours ouvert ODS, Yury Kashnitsky

4) Conférence 4, Evgeny Sokolov (à partir de 47 minutes de vidéo)

5) Régression logistique, Viatcheslav Vorontsov

3. Sources Internet

1) Modèles de classification et de régression linéaires

2) Comment comprendre facilement la régression logistique

3) Fonction d'erreur logistique

4) Tests indépendants et formule de Bernoulli

5) Ballade de MMP

6) Méthode du maximum de vraisemblance

7) Formules et propriétés des logarithmes

8) Pourquoi numéro Mâcher sur la régression logistique?

9) Classificateur linéaire

Source: habr.com

Ajouter un commentaire