[R-es] A modern object-oriented machine learning framework in R

Carlos Ortega co| @end|ng |rom qu@||tyexce||ence@e@
Sab Ene 4 14:17:31 CET 2020


Hola Diego,

Ya, la nueva versión de "mlr" es mucho más modular que la versión anterior.
Y para poder usar los diferentes algoritmos ("learners") hay que cargar la
librería "mlr3learners" que no se invoca por defecto cuando usas "mlr3".

Mira este ejemplo reproducible que adjunto, antes de cargar la librería
(mlr3learners) y probar con "ranger" tuve el mismo mensaje de error que has
obtenido.
Es interesante mirar también la página donde están todos los algoritmos que
están contemplados ahora mismo.

#--------------------------------------------------------
#----------------------------------
#------- RANGER
# Load available learners
# https://mlr3learners.mlr-org.com/
library(mlr3learners)

learner = mlr3::lrn("classif.ranger")
print(learner)
# available parameters:
learner$param_set$ids()

# create learning task
task_iris = TaskClassif$new(id = "iris", backend = iris, target = "Species")
task_iris

# load learner and set hyperparamter
learner = lrn("classif.ranger", num.trees = 100)

# train/test split
train_set = sample(task_iris$nrow, 0.8 * task_iris$nrow)
test_set = setdiff(seq_len(task_iris$nrow), train_set)

# train the model
learner$train(task_iris, row_ids = train_set)

# predict data
prediction = learner$predict(task_iris, row_ids = test_set)

# calculate performance
prediction$confusion

measure = msr("classif.acc")
prediction$score(measure)
#--------------------------------------------------------




Gracias,
Carlos Ortega
www.qualityexcellence.es

El sáb., 4 ene. 2020 a las 13:46, Diego Martín (<ako.sistemas using gmail.com>)
escribió:

> Estimadísimo Carlos:
>
>                                 Muchísimas gracias por responderme y
> hacerlo tan rápido. Contemplé esa posibilidad, es decir, que el
> hiperparámetro estuviera suponiendo un problema, y probé de esta forma:
>
> > learner <- lrn("classif.ranger", num.trees = 5, mtry = NULL)
>
> Error: Element with key 'classif.ranger' not found in DictionaryLearner!
>
>                                 Pero obtuve el mismo error. Como muestro.
> Reconozco el error de imprecisión al plantear la duda, por no poner esta
> experiencia. Este resultado, por decirlo de alguna manera, me mueve a
> pensar que el problema está en el reposititorio de la librería mlr3, al
> buscar la técnica de clasificación.
>
>                                 No sé si hay algo más que no he hecho,
> además de cargar las librerías que entiendo deben estar, es decir:
> library(ranger)
> library(mlr3)
>
>                                 Agradeceré cualquier comentario que me
> hagáis. Gracias Carlos.
>
>                                 Diego Martín-Oliva.
>                                 Geógrafo.
>
> PS. Hoja del libro sobre mlr3, donde estuve buscando los *Learners*
> integrados en el paquete.
>
>
> El vie., 3 ene. 2020 a las 23:42, Carlos Ortega (<cof using qualityexcellence.es>)
> escribió:
>
>> Hola Diego,
>>
>> El problema que estás teniendo es por el hiperparámetro "cp" que has
>> usado.
>>
>> Ese hiperparámetro es propio del algoritmo de árbol de decisión "rpart",
>> pero no de "ranger".
>> Mira los hiperparámetros propios de "ranger" y prueba con uno de ellos
>> (por ejemplo n.trees o también mtry).
>>
>> De igual forma, tienes el mismo problema usando xgboost que tampoco tiene
>> "cp" como hiperparámetro.
>>
>> Saludos,
>> Carlos Ortega
>> www.qualityexcellence.es
>>
>> El vie., 3 ene. 2020 a las 20:00, Diego Martín (<ako.sistemas using gmail.com>)
>> escribió:
>>
>>> Estimados amigos:
>>>
>>>                              Esta tarde he estado probando la librería
>>> mlr3, que me resulta muy interesante para trabajos de clasificación. En
>>> concreto, para entender su funcionamiento he probado un ejemplo simple
>>> (viene en CRAN). Sin embargo, cuando cambio el parámetro de clasifiación
>>> en
>>> la función de aprendizaje, me aparece el error siguiente:
>>>
>>>
>>> *Error: Element with key 'classif.ranger' not found in
>>> DictionaryLearner!*
>>>
>>>                            La situación es la siguiente:
>>>
>>> library(ranger)
>>> library(mlr3)
>>> task_iris <- TaskClassif$new(id = "iris",
>>>                              backend = iris,
>>>                              target = "Species",
>>>                              positive = NULL)
>>> # learner <- lrn("classif.rpart", cp = 0.01)
>>> learner <- lrn("classif.ranger", cp = 0.01)
>>>
>>>                              De forma que, no entiende, no halla,
>>> "classif.ranger". Lo cual no ocurre con "classif.rpart". Si bien es el
>>> que
>>> usa en el ejemplo de CRAN. No veo dónde está el problema. La librería
>>> "ranger" carga perfectamente, he consultado
>>> *https://mlr3book.mlr-org.com/list-learners.html
>>> <https://mlr3book.mlr-org.com/list-learners.html>*, y es una de las
>>> posibilidades.
>>>
>>>                             La ayuda de lrn(), con la que cuento cuando
>>> hago help("lrn"), en mi opinión no es precisa, y no se trata de que esté
>>> en
>>> inglés, se trata de que no va al grano y, de modo muy genéricio, habla
>>> del
>>> aprendizaje en esta librería.
>>>
>>>                             No corresponde, pero por curiosidad he
>>> empleado
>>> también la opción "classif.xgboost", y obtengo el mismo error. No me
>>> digan,
>>> por favor, que xgboost, no sirve para variables categóricas, lo sé, se
>>> trata solo de una prueba para ver si esa sí la encontraba en el
>>> directorio
>>> de la librería.
>>>
>>>                            Por adelantado agradezco a todos su atención a
>>> mi duda y, por supuesto, la dedicación que le otorguen.
>>>
>>>                            Gracias.
>>>                            Diego Martín-Oliva.
>>>                            Geógrafo.
>>>
>>>         [[alternative HTML version deleted]]
>>>
>>> _______________________________________________
>>> R-help-es mailing list
>>> R-help-es using r-project.org
>>> https://stat.ethz.ch/mailman/listinfo/r-help-es
>>>
>>
>>
>> --
>> Saludos,
>> Carlos Ortega
>> www.qualityexcellence.es
>>
>

-- 
Saludos,
Carlos Ortega
www.qualityexcellence.es

	[[alternative HTML version deleted]]



Más información sobre la lista de distribución R-help-es