Pourquoi utiliser la mise à l'échelle de Platt?


17

Afin d'étalonner un niveau de confiance à une probabilité dans un apprentissage supervisé (par exemple, pour mapper la confiance d'un SVM ou d'un arbre de décision à l'aide de données suréchantillonnées), une méthode consiste à utiliser la mise à l'échelle de Platt (par exemple, obtenir des probabilités calibrées à partir de la stimulation ).

Fondamentalement, on utilise la régression logistique pour mapper à . La variable dépendante est la véritable étiquette et le prédicteur est la confiance du modèle non calibré. Ce que je ne comprends pas, c'est l'utilisation d'une variable cible autre que 1 ou 0. La méthode appelle à la création d'un nouveau "label":[;][0;1]

Pour éviter le sur-ajustement du train sigmoïde, un modèle hors échantillon est utilisé. S'il y a exemples positifs et exemples négatifs dans le train, pour chaque exemple de formation, l'étalonnage Platt utilise les valeurs cibles et (au lieu de 1 et 0, respectivement), où N+Ny+y

y+=N++1N++2;y=1N+2

Ce que je ne comprends pas, c'est l'utilité de cette nouvelle cible. La régression logistique ne va-t-elle pas simplement traiter la variable dépendante comme une étiquette binaire (quelle que soit l'étiquette donnée)?

MISE À JOUR:

J'ai trouvé que dans SAS, le changement de la dépendance de à quelque chose d'autre revenait au même modèle (en utilisant ). Peut-être mon erreur ou peut-être le manque de polyvalence de SAS. J'ai pu changer le modèle dans R. À titre d'exemple:1/0PROC GENMOD

data(ToothGrowth) 
attach(ToothGrowth) 

  # 1/0 coding 
dep          <- ifelse(supp == "VC", 1, 0) 
OneZeroModel <- glm(dep~len, family=binomial) 
OneZeroModel 
predict(OneZeroModel) 

  # Platt coding 
dep2           <- ifelse(supp == "VC", 31/32, 1/32) 
plattCodeModel <- glm(dep2~len, family=binomial) 
plattCodeModel 
predict(plattCodeModel) 

compare        <- cbind(predict(OneZeroModel), predict(plattCodeModel)) 

plot(predict(OneZeroModel), predict(plattCodeModel))

Réponses:


13

Je suggère de consulter la page wikipedia de régression logistique . Il indique qu'en cas de variable logistique binaire dépendante, la régression logistique mappe les prédicteurs à la probabilité d'occurrence de la variable dépendante. Sans aucune transformation, la probabilité utilisée pour l'apprentissage du modèle est soit 1 (si y est positif dans l'ensemble d'apprentissage), soit 0 (si y est négatif).

pi=1(1+exp(Afi+B))fiy+y


Merci pour la réponse! J'utilisais d'abord SAS et je n'ai pas pu obtenir une variable de réponse différente. Je rentre l'exemple suivant dans R et vois qu'un avertissement est émis pour ne pas être une variable de réponse entière mais le résultat correspondait à un modèle différent.
B_Miner du

data (ToothGrowth) attach (ToothGrowth) # 1/0 codage dep <-ifelse (supp == "VC", 1,0) OneZeroModel <-glm (dep ~ len, family = binomial) OneZeroModel Predict (OneZeroModel) #Platt coding dep2 <-ifelse (supp == "VC", 31/32, 1/32) plattCodeModel <-glm (dep2 ~ len, family = binomial) plattCodeModel prédire (plattCodeModel) comparer <-cbind (prédire (OneZeroModel), prédire ( plattCodeModel)) plot (prédire (OneZeroModel), prédire (plattCodeModel))
B_Miner

@ user2040: 1. Oui ... y a-t-il une question ou est-ce juste une remarque :)? 2. pourquoi n'ajoutez-vous pas le code à la question? Aucun formatage n'est horrible.
steffen

2

Une autre méthode pour éviter le sur-ajustement que j'ai trouvé utile consiste à ajuster le modèle de régression logistique univariée à la sortie de validation croisée sans sortie du SVM, qui peut être approximée efficacement en utilisant la limite Span .

Cependant, si vous voulez un classificateur qui produit des estimations de la probabilité d'appartenance à une classe, vous feriez mieux d'utiliser la régression logistique du noyau, qui vise à le faire directement. La sortie du SVM est conçue pour une classification discrète et ne contient pas nécessairement les informations requises pour une estimation précise des probabilités loin du contour p = 0,5.

Les classificateurs de processus gaussiens sont une autre bonne option si vous voulez un classificateur probabiliste basé sur le noyau.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.