Apprentissage automatique Python (5) régression logistique, limite de décision, fonction de coût, méthode de descente de gradient pour obtenir une régression logistique linéaire et non linéaire

Le problème résolu par la régression linéaire est d'introduire les caractéristiques de l'ensemble de données dans le modèle, de prédire une valeur pour minimiser l'erreur, et la valeur prédite est infiniment proche de la valeur réelle. Par exemple, d'autres caractéristiques de la maison sont introduites dans le modèle pour prédire le prix du logement.Le prix du logement est une série de valeurs continues, et la régression linéaire résout l'apprentissage supervisé. Les résultats prédits par de nombreux scénarios ne sont pas nécessairement continus, et le problème que nous voulons résoudre n'est pas toujours similaire au problème des prix des logements.

problème de classement

Que la prédiction porte sur les globules rouges ou les globules blancs, les globules rouges et les globules blancs sont deux catégories complètement différentes. Lors de la prédiction, nous devons d'abord disposer de données historiques, former le modèle, puis évaluer le modèle à plusieurs reprises pour obtenir le modèle idéal, puis transmettre les nouvelles données dans le modèle et faire une série de prédictions pour obtenir des globules rouges (0), Ou les globules blancs (1), qui est le problème de classification binaire le plus simple.
insérez la description de l'image ici
Si la régression linéaire est utilisée pour résoudre les problèmes de classification, y = 0 y=0y=0 correspond aux globules rouges,y = 1 y=1y=1 correspond aux globules blancs. La présentation de l'ensemble de données est illustrée dans la figure ci-dessous. À ce stade, une ligne doit être trouvée pour séparer les deux. Si la régression linéaire est utilisée pour le faire, il faut considérer la fonction de coût minimum (erreur minimale), et l'autre doit être la meilleure donnée séparée. Pour séparer les globules rouges et blancs, prendre une valeur (0,5) sur la ligne, sih ( x ) >= 0,5 h(x)>=0,5h ( x )>=Si c'est 0,5 , le point obtenu est au-dessus, et le résultat prédit est 1 ; sih ( x ) < 0,5 h(x)<0,5h ( x )<Si c'est 0,5 , le point obtenu est en dessous et le résultat prédit est 0.
insérez la description de l'image ici
S'il y a un autre point d'échantillonnage dans les données, comme indiqué dans la figure ci-dessous, la solution de la ligne d'ajustement doit être la fonction de coût minimum, et la ligne d'ajustement s'étendra vers la droite, qui est la ligne bleue sur la figure, si h ( x) = 0,5 h(x)=0,5h ( x )=Si c'est 0,5 , les points qui apparaîtront dans la zone A ne sont pas exactement 1. C'est-à-dire que lorsqu'il y a un point d'échantillonnage anormal dans les données, lorsque le modèle de régression linéaire est utilisé pour résoudre le problème, notre prédiction globale changera. À ce moment, l'algorithme de régression logistique doit être introduit.
insérez la description de l'image ici

régression logistique

L'algorithme de régression logistique est l'un des algorithmes les plus populaires et les plus utilisés aujourd'hui. Bien que son nom contienne le mot régression, il est en fait utilisé pour résoudre des problèmes de classification. Scénarios couramment utilisés : exploration de données ; diagnostic automatique des maladies ; prévisions économiques et classification des spams, etc. La régression logistique est également plus importante dans l'apprentissage profond, c'est un algorithme relativement classique, et beaucoup de ses principes sont utilisés dans l'apprentissage profond et les réseaux de neurones.

Mise en œuvre de la régression logistique

Fonction de prédiction : h ( x ) = θ TX h(x)=θ^TXh ( x )=jeT X, la valeur prédite sera bien supérieure à 1, ou bien inférieure à 0, et elle ne pourra pas être classée. Le but :h ( x ) h(x)h ( x ) converge entre 0 et 1,0 < = h ( x ) 0 < = 1 0<=h(x)0<=10<=h ( x ) 0<=1
实现:使用sigmoïde (Logistique) sigmoïde(Logistique)s je g m o je ( L o g je s t je c )函数,g ( z ) = 1 1 + e − zg(z)=\frac{1}{1+e^{-z}}g ( z )=1 + e−z _1. Tozz _z tend vers+∞ +∞+ e − ze^{-z}ez tend vers 0,g ( z ) g(z)g ( z ) tend vers 1 infiniment ; quandzzz tend vers− ∞ -∞e − ze^{-z}ez tend vers+∞ +∞+ g ( z ) g(z)g ( z ) tend vers 0 à l'infini.
insérez la description de l'image ici

Mettre h ( x ) h(x)h ( x ) eng ( z ) g(z)g ( z ) , obtenirg ( θ TX ) = 1 1 + e − θ TX g(θ^TX)=\frac{1}{1+e^{-θ^TX}}g ( jeTX )_=1 + e- jeTX _1, vous pouvez utiliser g ( θ TX ) g(θ^TX)g ( jeT X)mappe entre 0 et 1.
insérez la description de l'image ici
Lorsqueθ TX >= 0 θ^TX>=0jeTX _>=0 ,g ( θ TX ) > = 0,5 g(θ^TX)>=0,5g ( jeTX )_>=0,5 , proche de 1 ;
lorsqueθ TX < 0 θ^TX<0jeTX _<0 ,g ( θTX ) < 0,5 g(θ^TX)<0,5g ( jeTX )_<0,5 , proche de 0. La formule peut aussi s'écrireh ( x ) = 1 1 + e − θ TX h(x)=\frac{1}{1+e^{-θ^TX}}h ( x )=1 + e- jeTX _1.
Un ensemble de données est formé pour produire un modèle, de nouvelles données sont substituées dans le modèle et le résultat prédit est obtenu. Le résultat ne peut pas être exactement 0 ou 1, ou il peut être compris entre 0 et 1. Si le résultat obtenu h ( x ) = 0,7 h(x)=0,7h ( x )=0,7 , on peut prédire qu'il existe une probabilité de 70 % de globules blancs (1) et une probabilité de 30 % de globules rouges (0). Probabilité d'en faire partie :h ( x ) = P ( y = 1 ∣ x ; θ ) h(x)=P(y=1|x;θ)h ( x )=P ( et=1∣ x ;θ ) ety = 1 y=1y=1 étatxxProbabilité de x ; somme des probabilités entre :P ( y = 1 ∣ x ; θ ) + P ( y = 0 ∣ x ; θ ) = 1 P(y=1|x;θ)+P(y= 0|x ;θ)=1P ( et=1∣ x ;je )+P ( et=0∣x ; _je )=1

  • somme
    h ( x ) h(x)h ( x ) en utilisantg(θTX) g(θ^TX)g ( jeT X)converge entre 0 et 1.
    h ( X ) = g ( θ TX ) = P ( y = 1 ∣ X ; θ ) h(x)=g(θ^TX)=P(y=1|x;θ)h ( x )=g ( jeTX )_=P ( et=1∣ x ;θ )g ( z ) = 1 1 + e − zg(z)=\frac{1}{1+e^{-z}}g ( z )=1 + e−z _1
    θ TX > 0 , h ( x ) > = 0,5 θ^TX>0,h(x)>=0,5jeTX _>0 ,h ( x )>=0,5 , alors prédisezy = 1 y=1y=1
    θ TX < 0 , h ( x ) < 0,5 θ^TX<0,h(x)<0,5jeTX _<0 ,h ( x )<0.5 , alors prédisezy = 0 y=0y=0

limite de décision

Aidez-nous à mieux comprendre la régression logistique et à comprendre la connotation de l'expression de fonction, x 1 x_1X1x2x_2X2La distribution représente la caractéristique, donc h ( x ) = g ( θ 0 + θ 1 x 1 + θ 2 x 2 ) h(x)=g(θ_0+θ_1x_1+θ_2x_2)h ( x )=g ( je0+je1X1+je2X2) , la seconde moitié est équivalente àθ TX θ^TXjeTX ._
Comme le montre la figure ci-dessous, supposons queθ 0 = − 3 , θ 1 = 1 , θ 2 = 1 θ_0=-3, θ_1=1, θ_2=1je0=3 je1=1 , je2=1 , obtenirθ TX = − 3 + x 1 + x 2 θ^TX=-3+x_1+x_2jeTX _=3+X1+X2, si − 3 + x 1 + x 2 > = 0 -3+x_1+x_2>=03+X1+X2>=0 , signifianth ( x ) >= 0,5 h(x)>=0,5h ( x )>=0.5 , la valeur est plus proche de 1, alorsy = 1 y=1y=1 est plus susceptible d'être divisé en 1 ; si− 3 + x 1 + x 2 < 0 -3+x_1+x_2<03+X1+X2<0 , ce qui signifieh(x) < 0,5 h(x)<0,5h ( x )<0.5 , la valeur est plus proche de 0, alorsy = 0 y=0y=0 est plus susceptible d'être divisé en 0. Tracez la ligne selon l'expression, volonté− 3 -33 se déplace vers la droite du signe égal lorsquex 1 = 0 x_1=0X1=0 ,x 2 = 3 x_2=3X2=3 ; lorsquex2 = 0 x_2 = 0X2=0 ,x 1 = 3 x_1=3X1=3 , tracez une ligne entre deux points, au-dessus de la ligne se trouvex 1 + x 2 >= 3 x_1+x_2>=3X1+X2>=Dans la partie de 3 , la catégorie est prédite être 1, et de même, la catégorie sous la ligne est prédite être 0.
insérez la description de l'image ici

Dans la figure ci-dessous, les échantillons positifs sont représentés par une croix et les échantillons négatifs par un cercle. Pour le moment, une ligne droite ne peut pas être utilisée pour diviser les deux. Dans la régression linéaire précédente, si les données ne peuvent pas être ajustées par une ligne droite, la régression polynomiale est utilisée. Ajoutez quelques expressions d'ordre supérieur. La même approche peut également être utilisée pour la régression logistique.
h ( X ) = g ( θ 0 + θ 1 X 1 + θ 2 x 2 + θ 3 X 1 2 + θ 4 X 2 2 ) h(x)=g(θ_0+θ_1x_1+θ_2x_2+θ_3x_1^2+θ_4x_2 ^ 2)h ( x )=g ( je0+je1X1+je2X2+je3X12+je4X22),oùθ0 + θ 1 x 1 + θ 2 x 2 + θ 3 x 1 2 + θ 4 x 2 2 θ_0+θ_1x_1+θ_2x_2+θ_3x_1^2+θ_4x_2^2je0+je1X1+je2X2+je3X12+je4X22Équivalent à θTX θ^TXjeTX ._
Comme le montre la figure ci-dessous, supposons queθ 0 = − 1 , θ 1 = 0 , θ 2 = 0 , θ 3 = 1 , θ 4 = 1 θ_0=-1, θ_1=0, θ_2=0, θ_3=1, θ_4= 1je0=1 je1=0 , je2=0 , je3=1 , je4=1 , après substitution dans la formule, on obtientθ TX = − 1 + x 1 2 + x 2 2 θ^TX=-1+x_1^2+x_2^2jeTX _=1+X12+X22,若− 1 + x 1 2 + x 2 2 > = 0 -1+x_1^2+x_2^2>=01+X12+X22>=0 , alors nous pouvons obtenirθ TX = x 1 2 + x 2 2 > = 1 θ^TX=x_1^2+x_2^2>=1jeTX _=X12+X22>=1h (x) h(x)Si la valeur de h ( x ) est supérieure à 0,5, la catégorie est divisée en 1, sinon la catégorie est divisée en 0. x 1 2 + x 2 2 = 1 x_1^2+x_2^2=1X12+X22=1 est un cercle standard avec l'origine comme centre et un rayon de 1, qui est la frontière de décision. Les points à l'extérieur du cercle sont plus grands que le rayon et appartiennent à la catégorie 1. Au contraire, les points à l'intérieur du cercle sont plus petits que le rayon et appartiennent à la catégorie est 0. La frontière de décision passe parθ θθ pour déterminer,h ( x ) = 1 1 + e − θ TX h(x)=\frac{1}{1+e^{-θ^TX}}h ( x )=1 + e- jeTX _1, 1 et e sont des constantes, X est l'ensemble d'échantillons de données (caractéristiques), seulement θ θθ est un paramètre, tant que θ est déterminéθθ détermine également la frontière de décisionh ( x ) h(x)h ( x ) , c'est-à-dire que la limite h ( x ) h(x)peut être préditeLa valeur de h ( x ) .
insérez la description de l'image ici
Résolution pourθ θValeur θ , similaire à la régression linéaire, trouverθ θθ est basé sur la fonction de coût, de sorte que la fonction de coût est minimisée pour obtenirθ θValeur thêta .

fonction de coût

Il n'y a qu'une seule solution optimale globale pour une fonction convexe. Lorsqu'une fonction non convexe cherche une solution optimale, elle est susceptible de tomber dans une solution optimale locale au lieu d'un minimum global. Les fonctions non convexes ne peuvent pas atteindre un minimum global par descente de gradient.
insérez la description de l'image ici
La fonction de coût définie par régression linéaire est : J ( θ ) = 1 2 m ∑ i = 1 m ( h ( xi ) − yi ) 2 J(θ)= \frac{1}{2m}\displaystyle{\sum_{ je=1}^{m}(h(x^i)-y^i)^2}J ( θ )=2 mètres1je = 1m( h ( xje )yje )2 , la somme des carrés de la valeur réelle moins la valeur prédite, puis divisée par le nombre de caractéristiques, qui est l'erreur quadratique moyenne, à ce momenth ( xi ) = θ 0 + θ 1 xih(x^i )=θ_0+θ_1x^ jeh ( xje )=je0+je1Xi , si la fonction de coût est appliquée à la régression logistique, alorsh ( xi ) h(x^i)h ( xi )n'est plus une simple relation de régression linéaire, maish ( x ) = 1 1 + e − θ TX h(x)=\frac{1}{1+e^{-θ^TX}}h ( x )=1 + e- jeTX _1, En remplaçant le contenu après le signe égal dans la fonction de coût dans son ensemble, le graphique deviendra une fonction non convexe, ce qui n'est pas pratique pour trouver le minimum global.
Objectif : Trouver une fonction de coût différente telle que J ( θ ) J(θ)J ( θ ) devient une fonction convexe.
Réalisation : utilisez le logarithme pour supprimer l'impact de l'indexation, transformez-le en une relation linéaire et utilisez le logarithme pour couvrir l'indice. 2n = 4 2^n=42n=4 , peut être converti enlog 2 4 = n log_24=nl o g24=n , obtenirn = 2 n=2n=2 .
Solution : Convertissez en une fonction convexe. Si elle est unaire, trouvez directement la dérivée seconde. Si elle est supérieure ou égale à zéro, c'est une fonction convexe ; si elle est multivariée, utilisez la matrice hessienne pour la résoudre, ce qui implique une définition positive.
Fonction : La solution optimale locale de la fonction convexe est la solution optimale globale.

  • y = 1 y=1y=Lorsque 1 , la fonction de coûtCost ( h ( x ) , y ) = − loge ( h ( x ) ) Cost(h(x),y)=-log_e(h(x))Coût ( h ( x ) , _ _y )=l o ge( h ( x ))
    Coût CoûtLe coût est la perte prédite par l'échantillon actuel. P est la probabilité,y = 1 y=1y=1 probabilité.
    quandy = 1 y=1y=1 ,h (x) h(x)h ( x ) doit être proche de 1 pour minimiser la fonction de coût,yyy est la valeur réelle, la catégorie est 1,h ( x ) = P ( y = 1 ∣ x ; θ ) h(x)=P(y=1|x;θ)h ( x )=P ( et=1∣ x ;θ ) est la probabilité que la valeur prédite soit 1, plus la probabilité est élevée, plus le résultat est prochey = 1 y=1y=1 . Sih ( x ) = 1 h(x)=1h ( x )=1 est le meilleur effet,C ost = − loge ( h ( x ) ) = 0 Cost=-log_e(h(x))=0Coût _ _=l o ge( h ( x ))=0 , ce qui signifie que la perte est la plus petite et que la fonction de coût est 0 ;
    sih ( x ) = 0 h(x)=0h ( x )=0h ( X ) = P ( y = 1 ∣ X ; θ ) h(x)=P(y=1|x;θ)h ( x )=P ( et=1∣ x ;θ ) est la probabilité que la valeur prédite soit 1 soit 0,Cost ( h ( x ) , y ) = − loge ( h ( x ) ) Cost(h(x),y)=-log_e(h(x) )Coût ( h ( x ) , _ _y )=l o ge( h ( x )) est infini et la valeur de perte est très grande.
    insérez la description de l'image ici
  • y = 0 y=0y=Lorsque 0 , la fonction de coûtC ost ( h ( x ) , y ) = − loge ( 1 − h ( x ) ) Cost(h(x),y)=-log_e(1-h(x))Coût ( h ( x ) , _ _y )=l o ge( 1h ( x ))
    y = 0 y=0y=0 ,h ( x ) h(x)h ( x )为1,Coût ( h ( x ) , y ) = − loge ( 1 − h ( x ) ) Coût(h(x),y)=-log_e(1-h(x))Coût ( h ( x ) , _ _y )=l o ge( 1h ( x )) a une valeur prédite de 1 avec probabilité 0,log ( 1 − h ( x ) ) log(1-h(x))journal ( 1 _ _h ( x )) est infini ; sinonh ( x ) h(x)h ( x ) vaut 0, tend versy = 0 y=0y=0 catégorie,− loge 1 = 0 -log_e1=0l o ge1=0 , la perte est minime.
    insérez la description de l'image ici
    Remarque : Pour la régression logistique, il n'est pas nécessaire de faire la distinction entre les catégories de probabilité prédites. Lorsqueh ( x ) = P >= 0,5 h(x)=P>=0,5h ( x )=P>=0,5 , divisé dans la catégorie 1, proche de 1 ; lorsqueh ( x ) = P < 0,5 h(x)=P<0,5h ( x )=P<0,5 , divisé dans la catégorie 0, tend vers 0.
    Les deux fonctions de coût ci-dessus sont segmentées, résolvantθ θθ valeur pour résoudre le problème réel, ety = 0 ou 1 y=0 ou 1y=0 ou 1 , vous pouvez simplifier l'équation pour trouver la fonction de coût et intégrer les deux formules ci-dessus en une seule, ce qui est pratique pour une dérivation ultérieure. Coût ( h ( x ) , y ) = − yloge ( h ( x ) ) − ( 1 − y ) loge ( 1 − h ( x ) ) Cost(h(x),y)=-ylog_e(h(x) ))-(1-y)log_e(1-h(x))Coût ( h ( x ) , _ _y )=y l o ge( h ( x ))( 1y ) journal _ _e( 1h ( x ))
    insérez la description de l'image ici
    Coût ( h ( x ) , y ) Coût(h(x),y)Coût ( h ( x ) , _ _y ) est la perte d'une donnée d'échantillon, chaque point d'échantillon a une perte, il faut intégrer de nombreux points d'échantillon, additionner et diviser par le nombre d'échantillons, mettre en avant le signe négatif, et obtenir la formule suivante, ceci La méthode est aussi une entropie croisée.
    J ( θ ) = 1 m ∑ je = 1 m C ost ( h ( X ) , y ) = − 1 m ∑ je = 1 m [ yloge ( h ( X ) ) + ( 1 − y ) loge ( 1 − h ( x ) ) ] J(θ)= \frac{1}{m}\displaystyle{\sum_{i=1}^{m}Coût(h(x),y)}=-\frac{1}{ m}\displaystyle{\sum_{i=1}^{m}[ylog_e(h(x))+(1-y)log_e(1-h(x))]}J ( θ )=m1je = 1mCoût ( h ( x ) , _ _y )=m1je = 1m[ y l o ge( h ( x ))+( 1y ) journal _ _e( 1h ( x ))]
    La régression logistique est un algorithme très couramment utilisé et est également utilisé dans l'apprentissage en profondeur. Cette équation utilise la méthode du maximum naturel en statistique pour trouver rapidement les paramètres de différents modèles.C'est aussi une fonction convexe, qui résout le problème précédent des fonctions non convexes et facilite la dérivée suivante.

Dérivation de la méthode de descente de gradient

fonction de coût:
J ( θ ) = = − 1 m ∑ je = 1 m [ yloge ( h ( x ) ) + ( 1 − y ) loge ( 1 − h ( x ) ) ] J(θ)= =-\frac {1}{m}\displaystyle{\sum_{i=1}^{m}[ylog_e(h(x))+(1-y)log_e(1-h(x))]}J ( θ )==m1je = 1m[ y l o ge( h ( x ))+( 1y ) journal _ _e( 1h ( x ))]
But : Trouverθ θθ , de sorte que la fonction de coûtJ ( θ ) J(θ)J ( θ ) est le plus petit.
Méthode de substitution,z = θ TX z=θ^TXz=jeT X,对g ( z ) g(z)La dérivée de g ( z ) devient1 1 + e − z \frac{1}{1+e^{-z}}1 + e−z _1Prenez la dérivée, 1 + e − z 1+e^{-z}1+ez dérivation deviente − ze^{-z}e− dérivée z multipliée par− z -z Dérivée de z pour z = θ TX z=θ^TXz=jeT Xdérivation, X est une constante,θ T θ^TjeT est une variable, après dérivation estxxX

insérez la description de l'image ici
insérez la description de l'image ici
Le résultat après la dérivation de la fonction de coût est :
insérez la description de l'image ici
l'essence de la méthode de descente de gradient est d'itérer la direction de la descente de la courbe par dérivation sans arrêt. point, le processus avec la plus petite perte
logex = lnx = 1 x log_ex=lnx =\frac{1}{x}l o geX=l n x=X1

Descente de gradient pour la régression logistique linéaire

insérez la description de l'image ici
insérez la description de l'image ici
insérez la description de l'image ici
insérez la description de l'image ici

sklearn implémente la régression logistique linéaire

API de régression logistique

sklearn.linear_model.LogisticRegression(solver='liblinear',penalty='l2',C=1.0,
solver 可选参数:{
    
    'liblinear','sag','saga','newton-cg','lbfgs'}
penalty:正则化的种类
C:正则化力度

liblinear est la valeur par défaut, qui est un algorithme pour les problèmes d'optimisation et convient aux petits ensembles de données ; sag et saga sont utilisés pour les grands ensembles de données et newton-cg est utilisé pour les problèmes multi-classes.
Il y a des exemples positifs et négatifs dans les données, et l'interface sklearn utilise par défaut des exemples positifs avec un petit nombre.
insérez la description de l'image ici
insérez la description de l'image ici
insérez la description de l'image ici

Méthode de descente de gradient pour la régression logistique non linéaire

API de rapport d'évaluation de taxonomie

sklearn.metrics.classification_report(y_true,y_pred,labels=[],target_names=None)
y_true:真实目标值
y_pred:估计器预测目标值
labels:指定类别对应的数字
target_names:目标类别名称
return:每个类别精确率与召回率

insérez la description de l'image ici
insérez la description de l'image ici
insérez la description de l'image ici
insérez la description de l'image ici
insérez la description de l'image ici

Utiliser l'ensemble de données fourni par sklearn

insérez la description de l'image ici
insérez la description de l'image ici

Je suppose que tu aimes

Origine blog.csdn.net/hwwaizs/article/details/131905921
conseillé
Classement