Implementar la función tren() en R

Sheeraz Gul 21 junio 2023
Implementar la función tren() en R

El método train() (de la biblioteca caret) se utiliza para el entrenamiento de clasificación y regresión. También se utiliza para ajustar los modelos seleccionando los parámetros de complejidad.

Este tutorial demuestra cómo usar el método train() del paquete caret en R.

Implementar la función tren() en R

Para usar el método train(), primero debemos instalar el caret y otros paquetes necesarios. En nuestro caso, utilizaremos los paquetes caret y mlbench.

install.packages("caret", dependencies = c("Depends", "Suggests"))
install.packages('mlbench')

Después de instalar los paquetes, podemos cargarlos y usarlos. Usamos el conjunto de datos integrado iris para el método tren():

# Load Packages
library(caret)
library(mlbench)

# Load IRIS dataset
data(iris)

# Show the first Six lines of the iris data set
head(iris)

El código anterior carga los paquetes y el conjunto de datos y muestra las primeras seis líneas del conjunto de datos del iris:

  Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1          5.1         3.5          1.4         0.2  setosa
2          4.9         3.0          1.4         0.2  setosa
3          4.7         3.2          1.3         0.2  setosa
4          4.6         3.1          1.5         0.2  setosa
5          5.0         3.6          1.4         0.2  setosa
6          5.4         3.9          1.7         0.4  setosa

Lo siguiente que debe hacer es crear un objeto a partir del conjunto de datos, que luego se usará en el método train():

# create binary object
iris$binary  <- ifelse(iris$Species=="setosa",1,0)
iris$Species <- NULL

A continuación, se utiliza un método trainControl() para modificar el método de remuestreo. Este método toma múltiples parámetros; la salida se usará en el método train():

ctrl <- trainControl(method = "repeatedcv",
                        number = 4,
                        savePredictions = TRUE,
                        verboseIter = T,
                        returnResamp = "all")

Finalmente, podemos usar el método train() para ajustar el modelo de datos. Tomará el objeto binario que creamos arriba.

Tenemos como parámetros los datos, método, familia y trControl:

# the train method
iris_train <- train(binary ~.,
                 data=iris,
                 method = "glm",
                 family="binomial",
                 trControl = ctrl)

Producción :

+ Fold1.Rep1: parameter=none
- Fold1.Rep1: parameter=none
+ Fold2.Rep1: parameter=none
- Fold2.Rep1: parameter=none
+ Fold3.Rep1: parameter=none
- Fold3.Rep1: parameter=none
+ Fold4.Rep1: parameter=none
- Fold4.Rep1: parameter=none
Aggregating results
Fitting final model on full training set

El modelo está entrenado ahora. Podemos ver el rendimiento de nivel de pliegue:

# fold level performance
iris_train$resample

Salida de remuestreo:

          RMSE  Rsquared          MAE parameter   Resample
1 3.929660e-06 1.0000000 6.420415e-07      none Fold1.Rep1
2 2.735382e-13 1.0000000 6.115382e-14      none Fold2.Rep1
3 8.221919e-12 1.0000000 1.397945e-12      none Fold3.Rep1
4 9.119130e-04 0.9999968 1.479318e-04      none Fold4.Rep1

Una vez que se entrena el modelo, podemos crear modelos intermedios usando las otras opciones en el conjunto de datos.

Código de ejemplo completo

Aquí está el código de ejemplo completo para su conveniencia:

install.packages("caret", dependencies = c("Depends", "Suggests"))
install.packages('mlbench')

# Load Packages
library(caret)
library(mlbench)

# Load IRIS dataset
data(iris)

# Show the first Six lines of the iris data set
head(iris)

# create binary object
iris$binary  <- ifelse(iris$Species=="setosa",1,0)
iris$Species <- NULL

# use trainControl() method to modify the resampling method
ctrl <- trainControl(method = "repeatedcv",
                        number = 4,
                        savePredictions = TRUE,
                        verboseIter = T,
                        returnResamp = "all")
# the train method
iris_train <- train(binary ~.,
                 data=iris,
                 method = "glm",
                 family="binomial",
                 trControl = ctrl)

# fold level performance
iris_train$resample
Sheeraz Gul avatar Sheeraz Gul avatar

Sheeraz is a Doctorate fellow in Computer Science at Northwestern Polytechnical University, Xian, China. He has 7 years of Software Development experience in AI, Web, Database, and Desktop technologies. He writes tutorials in Java, PHP, Python, GoLang, R, etc., to help beginners learn the field of Computer Science.

LinkedIn Facebook

Artículo relacionado - R Function