2017-04-12 2 views
0

J'essaie d'utiliser la mesure multiclass.au1p dans le paquet mlr. Il m'a donné une erreur disantcomment utiliser la mesure multiclass.au1p dans mlr

Erreur dans le FUN (X [[i]], ...): Mesure multiclass.au1p exige prédire le type d'être: 'prob'!

Lorsque j'ai essayé de définir le type de prédire prob alors il m'a donné une erreur semblable à suivre pour tout classificateur i utilisé

Erreur dans setPredictType.Learner (apprenant, predict.type): Essayer à prédire les probs, mais classif.xgboost.multiclass ne supporte pas cela!

Comment puis-je résoudre ce problème?

Après mon code

trainTask <- makeClassifTask(data = no_out_pso,target = "response_grade") 

    Clslearn = makeLearner("classif.xgboost", predict.type = "prob") 
    Clslearn = makeMulticlassWrapper(Clslearn, mcw.method = "onevsrest") 
    Clslearn = setPredictType(Clslearn, "prob") 

    rdesc = makeResampleDesc("CV", iters = 3) 

    r = resample(Clslearn, trainTask, rdesc, measures = list(mlr::acc, mlr::multiclass.au1p, mlr::multiclass.au1u)) 

    print(r) 

Répondre

3

Il ne fonctionne pas avec le makeMulticlassWrapper, parce que cela ne prend pas en charge la prédiction de probabilité (pour le moment). J'obtiens aussi une erreur, quand j'essaie de le mettre à prob dans votre code.

code

qui fonctionne:

Clslearn = makeLearner("classif.xgboost", predict.type = "prob") 
rdesc = makeResampleDesc("CV", iters = 3) 
r = resample(Clslearn, iris.task, rdesc, measures = list(mlr::acc, mlr::multiclass.au1p, mlr::multiclass.au1u)) 
+0

merci PhilippPro :) – RoshanaSheri

1

Vous devez utiliser un classificateur qui prend en charge la prédiction des probabilités. Vous pouvez obtenir une liste avec la fonction listLearners():

listLearners(properties = "prob") 
+0

hey mais quand j'ai essayé listLearners ("classif", propriétés = c ("multiclassent", "prob")) [c ("classe", "multiclassent", » prob ")] xgboost et les autres apprenants j'ai essayé, retourné vrai pour à la fois mullticlass et prob – RoshanaSheri