Scikit-learn: Famille de fonctions de perte de Poisson, gamma et tweedie

Créé le 7 déc. 2015  ·  57Commentaires  ·  Source: scikit-learn/scikit-learn

J'aimerais que sklearn prenne en charge Poisson, gamma et d'autres fonctions de perte de la famille Tweedie. Ces distributions de pertes sont largement utilisées dans l'industrie pour le comptage et d'autres données à longue queue. De plus, ils sont implémentés dans d'autres bibliothèques telles que R: GLM, GLMNET, GBM ext. Une partie de la mise en œuvre de ces distributions consisterait à inclure un moyen de transmettre les compensations aux fonctions de perte. Il s'agit d'une manière courante de gérer l'exposition lors de l'utilisation d'une fonction de lien de journal avec ces distributions.

La communauté sklearn serait-elle ouverte à l'ajout de ces fonctions de perte. Si c'est le cas, moi ou (j'espère que d'autres) seraient disposés à rechercher la faisabilité de la mise en œuvre de ces fonctions de perte et compensations dans l'API sklearn. Merci

New Feature

Commentaire le plus utile

@thenomemac Vous avez tout à fait raison de changer la fonction de perte en raison de l'exposition, je me suis trompé. En fait, je crois que j'ai réussi. J'ai un WIP très précoce (plus juste pour jouer): https://github.com/bjlkeng/scikit-learn/blob/poisson_regression/sklearn/linear_model/poisson.py (consultez la fonction _poisson_loss() ).

@josef-pkt Merci, j'ai regardé l'implémentation des statsmodels, c'est en fait assez bon (sauf pour l'API, dont je ne suis pas fan). C'est en fait un peu plus général où leur modèle "de comptage" prend en charge d'autres régressions basées sur le comptage comme le binôme négatif. L'implémentation de statsmodel prend déjà en compte l'exposition et la régularisation (ce que je recherchais également).

Étant donné que statsmodels a une implémentation, pensez-vous qu'il est toujours utile d'avoir quelque chose comme ça dans sklearn ? Si c'est le cas, je peux essayer de faire plus d'efforts pour le mettre sous une forme utilisable. J'ai juste été assez occupé avec le travail donc je n'ai pas eu beaucoup de temps.

Tous les 57 commentaires

Je pense que nous devrions au moins ajouter une régression de poisson, même si je ne la connais pas très bien.
Avez-vous des exemples d'ensembles de données ouverts ?
Sur quel type de données la perte gamma est-elle utilisée ?

Pouvez-vous préciser le décalage ?

Ce seraient tous des modèles séparés dans linear_model , je pense. Je ne sais pas s'ils sont généralement appris à l'aide de l-bfgs ou si les gens utilisent des solveurs de CD ? Peut-être que @mblondel ou @larsmans ou @agramfort en savent plus ?

La distribution de poisson est largement utilisée pour modéliser les données de comptage. On peut montrer qu'il s'agit de la distribution limite pour une approximation normale d'un binôme où le nombre d'essais va à l'infini et la probabilité va à zéro et les deux se produisent à un rythme tel que np est égal à une fréquence moyenne pour votre processus. Gamma peut être théoriquement démontré comme étant le temps jusqu'à ce qu'un événement poisson se produise. Ainsi, par exemple, le nombre d'accidents que vous aurez cette année peut être théoriquement démontré comme poisson. Et le temps prévu jusqu'à votre prochain accident est ou troisième poste est un processus gamma. Tweedie est un parent généralisé de ces distributions qui permet un poids supplémentaire sur zéro. Considérez tweedie comme une modélisation des dollars de perte et 99% de tous les clients ont un poids nul, les autres ont une perte positive ou gamma à longue queue. En pratique, ces distributions sont largement utilisées pour les problèmes de régression dans les assurances, la modélisation des risques, les modèles de catastrophes, la finance, l'économie et les sciences sociales. N'hésitez pas à référencer wikipedia. J'aimerais avoir ces fonctions de perte comme choix dans glmnet, GBM et random forest. Cela signifie que dans GBM, par exemple, l'algorithme de boosting de Freedman utiliserait cette perte au lieu de la perte gaussienne ou quartile. Gamma et poisson (beta tweedie) sont déjà dans les packages Rs GBM et glm et xgboost a un certain support. Les compensations sont utilisées par les praticiens pour pondérer leurs données en fonction de l'exposition. Typiquement, un modèle de poisson a une fonction de lien ex : yhat=offset x exp(résultat du modèle de régression) est appelé le lien logarithmique et est le plus courant. Ici, le décalage permet de capturer l'exposition différemment pour différentes unités d'observation. Les processus de Poisson sont additifs, mais différents exemples peuvent avoir été pris sur un espace ou un temps ou un nombre de clients non égaux et, par conséquent, le vecteur de décalage est nécessaire pour chaque observation. Je suis prêt à m'attaquer à la programmation, mais je ne suis pas très familier avec l'API, donc j'apprécierais les suggestions, alors je fais les choses correctement et je les intègre à la version.

D'accord, je travaille sur la mise en œuvre de cela. J'ajoute les trois distributions notées ci-dessus et les décalages. J'apprécierais les commentaires du public général de sklearn sur la façon de mettre en œuvre les décalages. Je prévois d'ajouter un nouvel argument à l'appel GradientBoostedRegression 'offset=None' où offset serait un vecteur comme un objet de longueur n (nombre d'échantillons). Ma principale question est de savoir si je dois ajouter des décalages à toutes les fonctions de perte (Gaussien, Huber, Quantile) comme cela se fait dans l'implémentation GBM de R ou si je dois simplement ajouter permettre aux décalages de fonctionner avec la famille tweedie et lancer un avertissement si vous essayez utiliser offset avec une fonction de perte non prise en charge ?

Je demandais plus des cas d'utilisation pratiques, comme dans des ensembles de données ou des publications. Je sais ce que font les distributions ;)

Ce serait probablement un bon ajout, même si je ne peux pas vous garantir que votre contribution sera fusionnée. Il serait probablement bon d'en discuter plus largement avant de vous lancer. À moins que vous ne vouliez simplement l'implémenter pour vous-même et que vous ne vous souciez pas si nous le fusionnons ;)

Donc, je suppose que vous êtes principalement intéressé par l'amplification du gradient, pas par les modèles linéaires ?

ping @pprett @glouppe @arjoly

Je suis intéressé à l'intégrer tout autour mais surtout des ensembles d'arbres
première. Quoi qu'il en soit, ils représentent une bonne quantité de travail en double en tant que forêt aléatoire
et GBM ont tous deux un ABC différent pour chaque fonction de perte. Alors je peux juste faire
le travail une fois et le faire fonctionner dans les deux malheureusement. je peux aussi en avoir
ensembles de données. À quoi ressemble le processus de fusion de ce processus
dois-je suivre. Je suis nouveau dans la contribution, je veux donc m'assurer que c'est fait
droit. Mais comme je l'ai dit, GBM traite les classes de perte indépendamment de toute autre chose
dans sklearn afin que mes modifications apportées à GBM puissent facilement être autonomes. je n'ai qu'à
modifier le code dans le script .py.
Le 10 décembre 2015 à 16h57, "Andreas Mueller" [email protected] a écrit :

Je demandais plus des cas d'utilisation pratiques, comme dans des ensembles de données ou
éditions. Je sais ce que font les distributions ;)

Ce serait probablement un bon ajout, même si je ne peux pas vous garantir que
votre contribution sera fusionnée. Ce serait bien d'en discuter
plus largement avant de vous lancer. À moins que vous ne souhaitiez simplement l'implémenter pour
vous-même et ne vous souciez pas si nous le fusionnons ;)

Donc je suppose que vous êtes surtout intéressé par l'amplification du gradient, pas linéaire
des modèles?

ping @pprett https://github.com/pprett @glouppe
https://github.com/glouppe @arjoly https://github.com/arjoly


Répondez directement à cet e-mail ou consultez-le sur GitHub
https://github.com/scikit-learn/scikit-learn/issues/5975#issuecomment -163761067
.

Ce serait bien d'avoir des commentaires de nos experts GBM que j'ai cinglés ci-dessus, mais vous pouvez également écrire à la liste de diffusion pour demander si les gens seraient intéressés par l'ajout.

prévoyez-vous également de prendre en charge les solveurs de coordonnées avec des pénalités L1/L2
comme _glmnet
?_

Des mises à jour sur ce problème ? J'aimerais voir une régression de Poisson ajoutée dans linear_models afin que je n'aie pas à m'aventurer en dehors de l'utilisation de sklearn . Si personne n'y travaille activement, je peux essayer de le mettre en œuvre.

personne AFAIK.

n'hésitez pas à l'essayer et à partager une implémentation WIP.

J'allais travailler là-dessus et j'y vais toujours aussi. Si je le fais bien que je
besoin d'un moyen propre d'ajouter des décalages à l'API. Je pensais ajouter un
offset kwarg et la valeur par défaut pourrait être None et lancer un avertissement en cas de perte
n'est pas poisson. J'utilise principalement poisson pour la modélisation d'assurance où le
l'offset est log (exposition gagnée) Je sais par l'expérimentation et la distribution
théorie selon laquelle pour des données de comptage clairsemées, vous obtiendrez un modèle largement inférieur
sans décalages. Actuellement, le modèle linéaire de R et GBM prennent tous deux en charge Poisson
avec décalages. C'est donc mon outil actuel. J'aimerais ajouter ceci à
sklearn cependant si d'autres veulent l'ajouter.
Le 1er mai 2016 à 4h03, "Alexandre Gramfort" [email protected]
a écrit:

personne AFAIK.

n'hésitez pas à l'essayer et à partager une implémentation WIP.


Vous recevez ceci parce que vous êtes l'auteur du fil.
Répondez directement à cet e-mail ou consultez-le sur GitHub
https://github.com/scikit-learn/scikit-learn/issues/5975#issuecomment -216024458

@thenomemac Avez-vous une implémentation WIP à laquelle je pourrais jeter un œil ?

Pour les décalages, ne pourriez-vous pas simplement demander à l'utilisateur de diviser ses décomptes par le décalage/l'exposition pour faire de la valeur "y" un taux au lieu d'un décompte (https://en.wikipedia.org/wiki/Poisson_regression#. 22Exposition.22_et_décalage) ? Le package GLM de R possède une excellente interface pour spécifier des modèles (y compris la spécification de décalages), mais vous ne savez pas comment cela s'intégrerait dans l'API de modèles linéaires existante.

@bjlkeng Je n'ai pas encore d'implémentation WIP complète. J'ai commencé il y a quelque temps, puis j'ai été distrait. Je ne pense pas que diviser par les expositions pour obtenir un taux de poisson soit une dérivation correcte de l'algorithme GBM pour la perte de poisson. Le décalage=log(exposition) dans le gradient est un facteur additif. Ainsi, vous donnez effectivement plus de poids aux "zones" avec une exposition plus élevée. Pas sûr à 100% de pouvoir revenir au bon gradient à chaque itération d'ajustement de l'apprenant de base (arbre), car le schéma actuel de transmission des poids à l'apprenant de l'arbre est multiplicatif et non additif. Je vais essayer de taper une dérivation mathématique plus rigoureuse de ce à quoi je fais référence. Je peux dire qu'en pratique c'est important. Dans les ensembles de données du monde réel, j'ai modélisé où vous vous attendez à ce que les données de comptage soient poisson, l'utilisation du gbm de R convergera plus rapidement et vers un meilleur résultat car il gère les décalages de la manière "mathématiquement" correcte. Et d'autres implémentations gbm telles que xgboost avec une fonction de perte de poisson ne peuvent pas modéliser les données aussi bien en utilisant un taux de Poisson que suggéré.

(à part j'ai trouvé le lien vers ce problème sur stats.stackexchange

statmodels GLM a un décalage et une exposition (exposition uniquement pour le lien de journal)

Dans le maître, il existe maintenant une option de réseau élastique pour GLM et quelques autres modèles, implémentée via une boucle apython pour la descente des coordonnées (utilise le maximum de vraisemblance générique avec décalage)

En master il y a maintenant aussi la famille Tweedie pour GLM. Cependant, il n'utilise pas la fonction de perte de logvraisemblance complète car il s'agit d'une somme infinie de termes et le calcul d'une version tronquée est lent et les approximations couramment utilisées ne sont pas très précises sur une certaine plage de l'espace des paramètres.

Donc, si vous avez besoin d'une implémentation de référence, statsmodels contient ces parties. Je n'ai jamais entendu parler ou regardé GBM pour GLM. Je n'en sais pas non plus assez sur le code scikit-learn pour dire comment il s'intégrerait.
)

@thenomemac Vous avez tout à fait raison de changer la fonction de perte en raison de l'exposition, je me suis trompé. En fait, je crois que j'ai réussi. J'ai un WIP très précoce (plus juste pour jouer): https://github.com/bjlkeng/scikit-learn/blob/poisson_regression/sklearn/linear_model/poisson.py (consultez la fonction _poisson_loss() ).

@josef-pkt Merci, j'ai regardé l'implémentation des statsmodels, c'est en fait assez bon (sauf pour l'API, dont je ne suis pas fan). C'est en fait un peu plus général où leur modèle "de comptage" prend en charge d'autres régressions basées sur le comptage comme le binôme négatif. L'implémentation de statsmodel prend déjà en compte l'exposition et la régularisation (ce que je recherchais également).

Étant donné que statsmodels a une implémentation, pensez-vous qu'il est toujours utile d'avoir quelque chose comme ça dans sklearn ? Si c'est le cas, je peux essayer de faire plus d'efforts pour le mettre sous une forme utilisable. J'ai juste été assez occupé avec le travail donc je n'ai pas eu beaucoup de temps.

Je pense que ce serait toujours précieux.

@bjlkeng Merci pour le commentaire! Êtes-vous intéressé à le prendre et à faire une demande d'extraction ? Sinon, je peux essayer de prendre ce problème et tenter de faire un PR... D'abord pour poisson et ensuite pour gamma... @agramfort Est-ce que ça vous va ? :)

Hey @raghavrv , désolé pour la réponse tardive. Le travail est devenu assez chargé et j'ai aussi réalisé que cela prendrait plus de temps que je n'en avais le temps. Alors n'hésitez pas à continuer. Je jetterais un coup d'œil à l'implémentation de statsmodel car ils ont la plupart des fonctionnalités que je pense que vous voudriez ici.

@raghavrv Avez-vous commencé à travailler là-dessus ? Je peux également contribuer à ce que nous ayons au moins une régression de Poisson dans sklearn.

@btabibian @raghavrv Quel est le statut de ceci ? J'ai besoin d'une implémentation de régression de Poisson pour un projet et je serais prêt à contribuer.

Allez-y s'il vous plaît :) Je n'ai pas eu le temps pour ça désolé...

Idem je n'ai pas eu le temps. J'ai aussi eu du mal avec l'API et comment
intégrer les compensations. Je pourrais montrer les maths ou un exemple de code dans statsmodels.
Mais TLDR vous avez besoin de décalages si vous voulez utiliser la régression de poisson avec
des expositions inégales (zone ou temps) alors vous avez besoin de décalages. Le modèle ne
donnez la pondération correcte si vous divisez simplement vos décomptes par les expositions.

Le 1er avril 2017 à 14h49, "(Venkat) Raghav (Rajagopalan)" <
[email protected]> a écrit :

Allez-y s'il vous plaît :) Je n'ai pas eu le temps pour ça désolé...


Vous recevez ceci parce que vous avez été mentionné.
Répondez directement à cet e-mail, consultez-le sur GitHub
https://github.com/scikit-learn/scikit-learn/issues/5975#issuecomment-290939521 ,
ou couper le fil
https://github.com/notifications/unsubscribe-auth/AOeuWjVGf3-VmeasNHMLQAB1dnd4zuUQks5rrpw4gaJpZM4Gwd6-
.

Je vais commencer à me renseigner alors. @thenomemac merci pour le conseil ! Je vais vérifier la mise en œuvre des statsmodels pour voir comment ils gèrent l'exposition.

Bonjour, y a-t-il des mises à jour ? Serait-il aussi possible d'ajouter une vraisemblance binomiale négative ? Cela ne devrait pas faire beaucoup de différence pour Poisson. Sinon je pourrais me renseigner..

Meilleur,
Simon

Salut @dirmeier , malheureusement non. Je suis passé à un modèle bayésien hiérarchique et je n'ai jamais réussi à implémenter la régression de Poisson.

@dirmeier , @jakobworldpeace y a-t-il des travaux en cours que vous pouvez nous indiquer ? Je peux aussi sauter sur jeter un oeil à ça?

Salut @NickHoernle ,
J'utilise actuellement R pour la régression NB, car je n'ai pas le temps. Je serais heureux si vous voulez mettre en œuvre cela :)

@NickHoernle Il n'y a pas de WIP mais l'implémentation de la régression de Poisson statsmodels devrait vous aider à démarrer.

Excellent. Je vais commencer à jeter un œil à cela et voir où nous en sommes.

J'ai travaillé sur les GLM ici : https://github.com/madrury/py-glm.

Je n'ai pas l'intention de le fusionner avec sklearn, c'est vraiment pour que mes élèves l'utilisent en classe, mais je voudrais souligner le travail au cas où il serait utile à quiconque travaille sur ce problème.

votre solveur dans une méthode de newton qui aura du mal à évoluer en haute
dimension. Il ne prend pas non plus en charge les pénalités de type L1. Vérifiez également votre API
cohérence avec sklearn. Fit ne devrait prendre que X, y et sample_weights

pour résoudre les problèmes d'évolutivité, la première chose à faire est d'utiliser l-bfgs. Voir
notre code de régression logistique

HTH

Comme je l'ai dit, mon objectif n'est pas une cohérence totale avec sklearn, c'est juste d'avoir une implémentation simple qui suit MuCullagh et Nelder et fournit certains des outils inférentiels (ce qui, je crois, le met hors de portée de sklearn). Il est destiné à être utilisé dans un environnement de classe sur des ensembles de données de taille moyenne. Je voulais juste lier le code ici au cas où des idées seraient utiles à quiconque travaille sur cette fonctionnalité pour sklearn (et pour obtenir un peu de visibilité, cela ne fait jamais de mal).

Je ne pense pas aux pénalités L1 comme dans la portée, pour cela j'utiliserais simplement glmnet . L2 est assez simple à intégrer dans le framework GLM classique que j'ai ajouté.

Quant à la méthode fit , je risquerai un petit commentaire ici, j'espère que ce n'est pas déplacé. Le manque de offset comme prévu pour s'adapter était une grande partie de la raison pour laquelle sklearn n'a pas réussi à mon dernier emploi. Vous en avez vraiment besoin pour faire une modélisation d'assurance appropriée. Les régulateurs s'attendent à ce que les modèles de Poisson et Tweedie soient ajustés de cette façon et peuvent être assez rigides dans leurs attentes.

merci d'avoir précisé la vision.

l'offset est-il spécifique aux modèles de Poisson et Tweedie ?
s'il s'agit d'une valeur spécifique à l'échantillon, il peut s'agir d'un sample_prop dans l'ajustement
paramètres.
C'est juste le max_iter ou tol qui ne dépend pas des données qui devrait être dans
l'initial.

A comparer avec le #9405 ?

@agramfort Vous avez raison à propos de max_iter et tol, je vais les déplacer vers __init__.

Avez-vous une référence pour ce que vous entendez par sample_prop ?

voir https://github.com/scikit-learn/enhancement_proposals/pull/6

on discute encore de la meilleure façon de le faire...

Une brève note sur les décalages : AFAIK, les poids d'échantillonnage sont suffisants pour traiter l'exposition, c'est-à-dire que l'ajustement de y=valeurs/exposition avec sample_weight=exposition devrait faire l'affaire et se généralise bien à d'autres distributions et liens autres que Poisson avec log-link.

@madrury Merci pour le partage. Je vais regarder ta réalisation et comparer avec la mienne.

Est-ce que ça intéresse toujours les gens ? Je serais intéressé à contribuer.

Je suis toujours intéressé par la fonctionnalité si quelqu'un l'ajoute sklearn.

Le jeudi 21 décembre 2017 à 18 h 04, Jared Samet [email protected]
a écrit:

Est-ce que ça intéresse toujours les gens ? Je serais intéressé à contribuer.


Vous recevez ceci parce que vous avez été mentionné.
Répondez directement à cet e-mail, consultez-le sur GitHub
https://github.com/scikit-learn/scikit-learn/issues/5975#issuecomment-353479618 ,
ou couper le fil
https://github.com/notifications/unsubscribe-auth/AOeuWtvi4Um_o_ERuVe1ob86201G-ASdks5tCuP4gaJpZM4Gwd6-
.

@oracleofnj @thenomemac

J'ai une implémentation glm générale validée dans ma bibliothèque py-glm, mais je n'ai pas l'intention d'essayer de la fusionner dans sklearn (j'ai pris des décisions de conception qui la rendent incompatible avec celle de sklearn). Il est configuré de manière à ce qu'il soit très facile d'ajouter d'autres familles exponentielles.

J'ai également une implémentation complète et pure de glmnet en python qui prend en charge les mêmes familles exponentielles dans la même bibliothèque, mais je suis bloqué sur un bogue et je l'ai posé. J'aimerais avoir de l'aide pour résoudre le bogue, j'ai juste besoin d'un peu de motivation pour le récupérer.

@madrury Heureux de tenter de vous aider avec ce bug.

Bonjour, quelque chose construit pour ces distributions? Curieux de toute mise à jour. Merci.

Personnellement, je serais d'accord pour fermer ce problème pour aider les contributeurs
se concentrer. Les raisons:

  • Le paysage du python a changé

  • statsmodels est maintenant beaucoup plus mature et inclut ces distributions avec
    pondération d'exposition appropriée

  • les implémentations basées sur jit via pytorch ou tensorflow facilitent
    mettre en œuvre toute perte ésotarique sans pénalité de performance ni forfait
    recompilation

Les pensées?

nous allouons actuellement des ressources pour aider à
https://github.com/scikit-learn/scikit-learn/pull/9405
et faites-le (au moins certaines parties) atterrir en maître. Il faut s'y attaquer
les prochains mois.

Super travail !

Le sam. 13 avr. 2019, 03:27 Alexandre Gramfort [email protected]
a écrit:

nous allouons actuellement des ressources pour aider à
https://github.com/scikit-learn/scikit-learn/pull/9405
et faites-le (au moins certaines parties) atterrir en maître. Il faut s'y attaquer
les prochains mois.


Vous recevez ceci parce que vous avez été mentionné.
Répondez directement à cet e-mail, consultez-le sur GitHub
https://github.com/scikit-learn/scikit-learn/issues/5975#issuecomment-482784732 ,
ou couper le fil
https://github.com/notifications/unsubscribe-auth/AOeuWj8PD0nfltM7Acg12Pfhl4sG5n7Fks5vgYbogaJpZM4Gwd6-
.

Ce serait formidable d'avoir GLM dans sciki-learn. Cela réduira le besoin d'aller vers d'autres langues. J'ai hâte d'y être.

D'accord. Venant du monde R, j'ai été surpris que sklearn n'ait pas déjà la fonctionnalité GLM. J'espère que ce sera bientôt.

Je vais ajouter un autre vote pour inclure GLM dans sklearn. C'est une classe de base de modèles qui est enseignée dans les programmes de statistiques de premier cycle. De plus, le fait qu'il existe une section "Modèles linéaires généralisés" dans le manuel de l'utilisateur qui n'inclut aucune discussion sur les fonctions de lien ou les distributions d'erreurs me surprend.

@patrickspry Statsmodels a une bonne implémentation de la plupart des GLM qu'un étudiant de premier cycle apprendrait.

@patrickspry Il existe un PR assez complet dans https://github.com/scikit-learn/scikit-learn/pull/9405 et des travaux sont en cours pour fusionner cette fonctionnalité.

Ah, fantastique ! Merci pour l'information!

Un délai estimé pour fusionner le PR ? Merci.

@ Jiang-Li Voir ici

Pour les modèles linéaires, il y a #14300. Ensuite, il y a le numéro ouvert # 15123. Personnellement, j'aimerais vraiment voir des modèles basés sur des arbres avec des fonctions de perte de tweedie.

Pour les modèles linéaires # 14300 est maintenant fusionné, bien que des fonctionnalités supplémentaires puissent encore être ajoutées https://github.com/scikit-learn/scikit-learn/pull/9405#issuecomment -594553953

Personnellement, j'aimerais vraiment voir des modèles basés sur des arbres avec des fonctions de perte de tweedie.

Cela pourrait en effet être la prochaine étape (par exemple https://github.com/scikit-learn/scikit-learn/issues/15123#issuecomment-542090766)

Il est impressionnant de voir l'excellent travail de sklearn 0.23, qui comprend le Poisson, le gamma et le tweedie. J'espère voir plus d'améliorations à l'avenir.
En lisant le Guide de l'utilisateur, la régression logistique est en dehors de la régression linéaire généralisée. Il devrait peut-être y avoir au moins quelques mots indiquant dans la section Régression linéaire généralisée que la régression logistique est un type de GLM et peut être résolue en utilisant la même fonction de perte de déviance.

On dirait que nous pouvons fermer le problème maintenant que #14300 est fusionné ?

En lisant le Guide de l'utilisateur, la régression logistique est en dehors de la régression linéaire généralisée. Il devrait peut-être y avoir au moins quelques mots indiquant dans la section Régression linéaire généralisée que la régression logistique est un type de GLM et peut être résolue en utilisant la même fonction de perte de déviance.

Merci pour le retour @magicmathmandarin ! Oui absolument. Le PR original https://github.com/scikit-learn/scikit-learn/pull/9405 incluait en fait la déviance de BinomialDistribution pour la régression logistique binaire. La raison pour laquelle nous n'avons pas inclus cela dans le premier PR fusionné est que même s'ils font effectivement partie du même cadre théorique, l'implémentation spécialisée LogisticRegression actuellement est toujours recommandée (mieux testée par les utilisateurs, gère plus d'options, par exemple multi-classe), et nous ne voulions pas confondre les utilisateurs. Maintenant qu'il est fusionné, je conviens que cette partie peut être mieux formulée.

On dirait que nous pouvons fermer le problème maintenant que #14300 est fusionné ?

Sûr. Il y a des discussions de suivi dans https://github.com/scikit-learn/scikit-learn/issues/16668 , https://github.com/scikit-learn/scikit-learn/pull/16692 et https : //github.com/scikit-learn/scikit-learn/issues/15123.

Cette page vous a été utile?
0 / 5 - 0 notes