Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Introducción
KNN
Máquina de soporte de vectores (SVM)
Naïve Bayes
Redes Neuronales Artificiales (ANN)
Evaluar la eficacia del modelo
Manos a la obra
Enlaces de interés
Introducción al aprendizaje
automatizado –Machine Learning–
Módulo 3
Introducción
Dependiendo de cómo se aborde el problema del ML, los diferentes algoritmos se pueden agrupar
en:
Aprendizaje supervisado:
Cuando las entradas al sistema (la base de conocimiento) están formadas por un conjunto
de datos etiquetados a priori. Es decir, sabemos la clasificación correcta de un conjunto de
datos, y a partir de ellos se va a generar una función predictora.
ares.inf.um.es/00Rteam/pub/mamutCola/modulo3.html 1/29
7/2/2021 Introducción al aprendizaje automatizado –Machine Learning–
Aprendizaje no supervisado:
Las entradas al sistema están formadas por un conjunto de datos de los que se desconoce
su clasificación correcta. En este caso, se espera que el algoritmo sea capaz de reconocer
patrones para poder etiquetar y clasificar nuevos datos de entrada.
Una vez completados estos pasos, nuestro modelo puede ser implementado en la clasificación de
nuevos datos.
KNN
K-Nearest Neighbours (Los k vecinos más próximos) es un algoritmo de clasificación
supervisada,basado en distancias. General aunque no necesariamente la distancia Euclídea.
observaciones en las n variables, la distancia euclídea entre estas dos observaciones se define
como:
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
2 2 2
dist(p, q) = √ (p1 − q1 ) + (p2 − q2 ) +. . . +(pn − qn )
Esa distancia se puede definir de diferentes maneras y en función de cómo se haga los resultados
podrían variar.
En el ejemplo de las siguientes imágenes se trata de clasificar un tomate a alguno de los grupos ya
definidos.
ares.inf.um.es/00Rteam/pub/mamutCola/modulo3.html 2/29
7/2/2021 Introducción al aprendizaje automatizado –Machine Learning–
El principal problema que puede plantear este método es decidir sobre cuántos vecinos se calcula
la distancia. Si nos fijamos en la imagen siguiente, al elegir k = 2 –dos vecinos– nuestra
observación –circulo verde– se clasificaría como triángulo rojo. Sin embargo si fijamos k = 3 –tres
vecinos– entonces nuestra observación será clasificada como cuadrado azul.
ares.inf.um.es/00Rteam/pub/mamutCola/modulo3.html 3/29
7/2/2021 Introducción al aprendizaje automatizado –Machine Learning–
No hay una única regla, una formula general dice que el número de vecinos a tener en cuenta, está
en función del tamaño de la muestra n
1
K = n 2
Otros métodos incluirían ensayos con diferentes números de vecinos y posteriormente evaluar el
desempeño de la clasificación —curvas ROC, Cross-Validation, …— para quedarnos con aquel
número con el que se obtenga un mejor desempeño.
Implementación de KNN en R
data( iris )
Preprocesar datos
2
σ
NormIris <- as.data.frame( scale( iris[, 1:4 ], scale = TRUE, center = TRUE ) )
summary( NormIris )
ares.inf.um.es/00Rteam/pub/mamutCola/modulo3.html 4/29
7/2/2021 Introducción al aprendizaje automatizado –Machine Learning–
Previsualizar datos
Entrenar/testar clasificador
La función knn del paquete class entrena y clasifica en un único paso. Como parámetros le
pasamos en conjunto de datos de entrenamiento, el conjunto de datos para el test, las clases a las
que pertenece cada elemento, y el número de vecinos.
ares.inf.um.es/00Rteam/pub/mamutCola/modulo3.html 5/29
7/2/2021 Introducción al aprendizaje automatizado –Machine Learning–
# predicción
print(iris.pred)
# realidad
print(iris.test[ ,5 ])
Validar resultados
Realidad
Predic setosa versicolor virginica
setosa 23 0 0
versicolor 0 12 0
virginica 0 1 14
Una vez creado un clasificador y comprobado que clasifica bien, podemos probarlo con un dato
nuevo. Si encuentro un iris en el campo y mido pétalo y sépalo, puedo utilizar mi clasificador para
determinar a que variedad pertenece.
ares.inf.um.es/00Rteam/pub/mamutCola/modulo3.html 6/29
7/2/2021 Introducción al aprendizaje automatizado –Machine Learning–
[1] setosa
attr(,"prob")
[1] 1
Levels: setosa versicolor virginica
Construcción de un modelo
A diferencia de KNN, el algoritmo busca los límites o fronteras entra las clases. Esa frontera en un
espacio de dos dimensiones —dos variables— sería una línea, en 3 dimensiones sería un plano, y
genéricamente para un espacio multidimensional —multivariante— sería un hiperplano. Este
hiperplano separa el hiperespacio en diferentes regiones, donde las observaciones que caigan
dentro de la misma región pertenecerán a la misma clase.
La dificultad radica en definir cuál es el hiperplano óptimo. El algoritmo busca una frontra que
maximize la distancia entre ella y los elementos marginales de cada clase.
ares.inf.um.es/00Rteam/pub/mamutCola/modulo3.html 7/29
7/2/2021 Introducción al aprendizaje automatizado –Machine Learning–
En ocasiones definir esa frontera es intuitivo, pero lo normal cuando se trabaja con más de dos
variables es que la definición de ese hiperplano se vuelva muy compleja y computacionalmente
muy costosa.
ares.inf.um.es/00Rteam/pub/mamutCola/modulo3.html 8/29
7/2/2021 Introducción al aprendizaje automatizado –Machine Learning–
Para simplificar el cálculo del hiperplano se pueden realizar una serie de transformaciones sobre
los datos de manera que sea menos compleja la obtención de las diferentes regiones y por tanto
hacer menos costoso —computacionalmente hablando— el aprendizaje.
Para poder llevar a cabo esto se utilizan distintas funciones kernel que pueden llevar a cabo
diferentes tipos de transformaciones. Estas son algunas de ellas:
Polinomial: K (x i,
n
x j ) = (x i x j )
Perceptrón: K (x i, x j ) = ∥x i x j ∥
(xi−xj)2
−
Base radial Gaussiana: K (xi, xj) = e 2σ 2
ares.inf.um.es/00Rteam/pub/mamutCola/modulo3.html 9/29
7/2/2021 Introducción al aprendizaje automatizado –Machine Learning–
Gráficamente la función kernel aplica una transformación sobre los datos, simplificando
enormemente la definición de la frontera.
Implementación de SVM en R
data( iris )
Preprocesar datos
#generar muestras
iris.train <- iris[ sample( c( 1:150 ), 100 ), 1:5 ]
Aplicar SVM
Con la función svm del paquete e1071 se puede generar generar un modelo mediante algoritmo de
soporte de vectores. Como parámetros hay que proporcionar los datos en forma de fórmula de R,
donde la variable respuesta son las clases frente al resto de variables predictoras Species ~ . ,
hay que definir sobre que datos se está refiriendo la fórmula, si queremos normalizar los datos y el
tipo de función kernel que queremos utilizar.
ares.inf.um.es/00Rteam/pub/mamutCola/modulo3.html 10/29
7/2/2021 Introducción al aprendizaje automatizado –Machine Learning–
Call:
svm(formula = Species ~ ., data = iris.train, kernel = "linear",
probability = TRUE, scale = TRUE)
Parameters:
SVM-Type: C-classification
SVM-Kernel: linear
cost: 1
gamma: 0.25
( 10 2 13 )
Number of Classes: 3
Levels:
setosa versicolor virginica
Una vez entrenado el modelo, podemos hacer predicción con el conjunto de datos de iris.test .
# Versión simple
table( SVM_predict, Realidad = as.factor( iris.test[ ,5 ] ) )
Realidad
SVM_predict setosa versicolor virginica
setosa 12 0 0
versicolor 0 9 0
virginica 0 0 9
Igual que en el caso de KNN, podemos hacer una predicción sobre nuestro modelo con una
muestra recogida en el campo, y obtendremos a qué clase ha sido asignada y con que
probabilidad.
ares.inf.um.es/00Rteam/pub/mamutCola/modulo3.html 11/29
7/2/2021 Introducción al aprendizaje automatizado –Machine Learning–
1
setosa
attr(,"probabilities")
virginica setosa versicolor
1 0.009415069 0.9764111 0.0141738
Levels: setosa versicolor virginica
Naïve Bayes
Es un clasificador probabilístico “ingenuo” basado en el teorema de Bayes, que asume que la
probabilidad de cada variable es independiente de las demás. Básicamente, su lógica se basa en
que dado un conjunto de datos de entrenamiento etiquetados, el clasificador calcula la
probabilidad observada para cada clase, en función de los valores de sus variables. Cuando es
usado posteriormente para predecir datos sin etiquetar, asigna estos datos a la clase con mayor
probabilidad de pertenencia.
C asos f avorables
P (X) =
C asos posibles
1
P (X = 3) =
6
Probabilidad condicionada
P (Y ∣ X)
P (Y = 10 ∣ X = 4)
Teorema de Bayes
Basado en el Teorema de Bayes:
P (X ∣ Y ) P (Y )
P (Y ∣ X) =
P (X)
En castellano
ares.inf.um.es/00Rteam/pub/mamutCola/modulo3.html 12/29
7/2/2021 Introducción al aprendizaje automatizado –Machine Learning–
P (probabilidad condicional) P (a priori)
P (posteriori) =
P (total)
Tenemos datos históricos sobre si se ha jugado o no al tenis con una serie de parámetros
meteorológicos muy simples.
En base a esto, y empleando la lógica bayesiana determinaremos qué probabilidad tenemos de
que haya partido un día nublado, frío, con alta humedad y sin viento.
Probabilidades
¿Jugaremos al tenis (Y ) un día nublado, frío, con humedad alta y sin viento (X )?
P (X ∣ Y )vi ⋅ P (Y )
P (Y = S i ∣ X v1,v2,v3,v4 ) =
P (total)
Probabilidades
Call:
naiveBayes.default(x = X, y = Y, laplace = laplace)
A-priori probabilities:
Y
setosa versicolor virginica
0.29 0.35 0.36
Conditional probabilities:
Sepal.Length
Y [,1] [,2]
setosa 5.086207 0.3215189
versicolor 5.917143 0.3776753
virginica 6.616667 0.6855655
Sepal.Width
Y [,1] [,2]
setosa 3.455172 0.4230723
versicolor 2.757143 0.2983146
virginica 2.952778 0.3220347
Petal.Length
Y [,1] [,2]
setosa 1.520690 0.1372675
versicolor 4.291429 0.3760252
virginica 5.608333 0.5862106
Petal.Width
Y [,1] [,2]
setosa 0.2827586 0.1197288
versicolor 1.3171429 0.1790263
virginica 1.9916667 0.2892107
ares.inf.um.es/00Rteam/pub/mamutCola/modulo3.html 14/29
7/2/2021 Introducción al aprendizaje automatizado –Machine Learning–
Contrastar la predicción
Realidad
Predicción setosa versicolor virginica
setosa 12 0 0
versicolor 0 9 0
virginica 0 0 9
colnames(miIris)<-colnames(iris[,1:4])
Lo que nos devuelve la predicción es la probabilidad de pertenencia a cada clase. En este caso es
una probabilidad del 100% de pertenecer a la clase setosa, y por tanto 0% al resto de clases.
Cada nodo de entrada tiene asociado un peso W y en cada nodo se aplica una función de
i
activación (opcional) y una de propagación con la suma de las entradas ponderadas por sus pesos.
ares.inf.um.es/00Rteam/pub/mamutCola/modulo3.html 15/29
7/2/2021 Introducción al aprendizaje automatizado –Machine Learning–
A pesar del nombre, su parecido con los sistemas biológicos se queda en la estructura física, es
decir una serie de nodos interconectados formando una red con entradas y salidas.
Pero aunque parezca algo complejo, una especie de caja negra en la que le damos información y
esperamos a que “eso” obre el milagro y nos de un resultado, el fundamento es bastante simple:
Dados una serie de parámetros de entrada, las redes neuronales buscan la forma de combinarlos
para obtener el resultado esperado.
Componentes
N entradas, x 1, . . . , xn
y = ∑ x 0 w0 , . . . , x n wn
fa (x) = 1 si y ,
> 0 fa (x) = −1 si x ≤ 0
Supongamos que tenemos la nota de dos exámenes parciales y la nota final. No sabemos como
pondera el profesor las notas de los exámenes parciales para obtener la final. La red neuronal irá
probando distintas combinaciones hasta que de con la correcta.
Nuestros parámetros de entrada son las dos notas y la salida será la nota final esperada.
ares.inf.um.es/00Rteam/pub/mamutCola/modulo3.html 16/29
7/2/2021 Introducción al aprendizaje automatizado –Machine Learning–
e1 ω
ω Σ nf
e2
Esto podría complicarse. Imaginemos ahora que tenemos las notas de dos exámenes más la de
una práctica. Hemos suspendido un examen y sin embargo hemos aprobado la asignatura. En este
caso ya no es tan trivial ponderar el peso de cada examen.
p1
ω
ω
e1 c1 ω
ω nf
ω
e2 c2
Pero podría ser peor. La retorcida mente de este profesor, podría tener en cuenta, la asistencia, la
participación, la actitud con los compañeros, además de las notas de teoría y prácticas. Además a
cada uno de estos parámetros le podría dar un peso diferente, incluso dar pesos diferentes a
combinaciones de parámetros. Es más, podría ser que no todas las combinaciones fuesen lineales,
algunas podrían ser cuadráticas, logarítmicas, …
ares.inf.um.es/00Rteam/pub/mamutCola/modulo3.html 17/29
7/2/2021 Introducción al aprendizaje automatizado –Machine Learning–
as
pt
ac c1a
c2a
e1
c1b nf
c2b
e2
c1c
pr
Pero afortunadamente para nosotros, no tenemos que preocuparnos de todo esto, lo único que
tendríamos que hacer básicamente, es decir cuáles son nuestras notas de entrada y nuestra nota
final. La red se encarga de generar el modelo y de esta forma la próxima vez que sepamos las notas
iniciales, no tendremos que esperar a saber la nota final, nuestro modelo nos lo va a predecir.
data(iris)
#generar muestras
iris.train <- iris[ sample( c( 1:150 ), 100 ), 1:5 ]
En este caso hay que generar nuevas columnas de VERDADERO/FALSO para pertenencia de cada
observación a cada clase —especie—.
names(iris.train)[6]<-"setosa"
names(iris.train)[7]<-"versicolor"
names(iris.train)[8]<-"virginica"
head(iris.train)
ares.inf.um.es/00Rteam/pub/mamutCola/modulo3.html 18/29
7/2/2021 Introducción al aprendizaje automatizado –Machine Learning–
La función neuralnet del paquete del mismo nombre, requiere la introducción de parámetros de
forma similar a como se hizo en SVM, mediante una foŕmula, donde las variables dependientes –
setosa, versicolor, virgínica– lo son en función de las predictoras. Podemos definir también la
topología de la red, es decir cuántas capas y cuántos nodos por capa.
Una vez entrenada nuestra red, podemos visualizar su topología, los pesos ponderados asignados
a cada nodo. Con la función print podemos obtener bastante información acerca del modelo.
Predicción
Con los datos que nos reservamos para el test, vamos a hacer la predicción, en este caso en lugar
de la función predict usada anteriormente, empleamos compute
ares.inf.um.es/00Rteam/pub/mamutCola/modulo3.html 19/29
7/2/2021 Introducción al aprendizaje automatizado –Machine Learning–
El resultado de la predicción no es tan “amigable” como en los otros algoritmos vistos, pero con un
poco de código lo podemos extraer y dejar más claro.
resultado <- 0
for ( i in 1:dim( pred.nn$net.result )[1] ){
resultado[i] <- which.max( pred.nn$net.result[ i, ] )
}
resultado[ resultado == 1 ] <- "setosa"
resultado[ resultado == 2 ] <- "versicolor"
resultado[ resultado == 3 ] <- "virginica"
Realidad
Predicción setosa versicolor virginica
setosa 13 0 0
versicolor 0 18 1
virginica 0 0 18
# Datos
w_train <- wdbc_N[ sample( c( 1 : nrow( wdbc_N ) ), 425 ), ]
w_test <- wdbc_N[ sample( c( 1 : nrow( wdbc_N ) ), 140 ), ]
# Etiquetas
w_train_label <- w_train$diagnosis
w_test_label <- w_test$diagnosis
Entrenar el modelo
ares.inf.um.es/00Rteam/pub/mamutCola/modulo3.html 20/29
7/2/2021 Introducción al aprendizaje automatizado –Machine Learning–
[1] M B B M B B B M M B M B B B B B M B M M M B B M B B B
[28] B B B B M M B M M M B B B B B B B B M B M M B M B B M
[55] B B B B M M B M B B B B B B B B M M B B M B M B B B B
[82] M B B B M B B B B M B B B B B B B M M M M M B B B B B
[109] B M M B B B M B B B M M M M B M M M M M M B M B B B M
[136] B M M B B
attr(,"prob")
[1] 1.0000000 0.9523810 1.0000000 0.9047619 1.0000000
[6] 0.8095238 0.6190476 0.7142857 0.9523810 1.0000000
[11] 0.9523810 1.0000000 0.7142857 1.0000000 0.7619048
[16] 1.0000000 0.9523810 1.0000000 1.0000000 1.0000000
[21] 0.7619048 1.0000000 1.0000000 1.0000000 0.7619048
[26] 1.0000000 0.9523810 1.0000000 1.0000000 0.7142857
[31] 0.6190476 1.0000000 1.0000000 1.0000000 0.8571429
[36] 1.0000000 0.8571429 1.0000000 0.6666667 1.0000000
[41] 1.0000000 0.7619048 0.7619048 1.0000000 1.0000000
[46] 1.0000000 1.0000000 1.0000000 1.0000000 1.0000000
[51] 1.0000000 1.0000000 0.9523810 1.0000000 1.0000000
[56] 0.9047619 1.0000000 1.0000000 0.9047619 0.8571429
[61] 1.0000000 1.0000000 1.0000000 0.9047619 1.0000000
[66] 1.0000000 0.5238095 1.0000000 1.0000000 1.0000000
[71] 0.7619048 0.5238095 0.9523810 1.0000000 1.0000000
[76] 0.9523810 1.0000000 1.0000000 1.0000000 1.0000000
[81] 0.8571429 1.0000000 1.0000000 1.0000000 1.0000000
[86] 0.8571429 1.0000000 0.9523810 1.0000000 1.0000000
[91] 1.0000000 0.8571429 1.0000000 0.7142857 0.8571429
[96] 1.0000000 1.0000000 0.9523810 1.0000000 1.0000000
[101] 0.9047619 1.0000000 0.6666667 1.0000000 0.7619048
[106] 1.0000000 1.0000000 0.7619048 1.0000000 0.6190476
[111] 0.9523810 0.5238095 1.0000000 1.0000000 0.5714286
[116] 1.0000000 1.0000000 1.0000000 1.0000000 1.0000000
[121] 0.8571429 1.0000000 0.9523810 0.8571429 1.0000000
[126] 1.0000000 1.0000000 0.8095238 0.8571429 0.9523810
[131] 1.0000000 0.8571429 1.0000000 1.0000000 0.6190476
[136] 1.0000000 1.0000000 0.8095238 1.0000000 1.0000000
Levels: B M
ares.inf.um.es/00Rteam/pub/mamutCola/modulo3.html 21/29
7/2/2021 Introducción al aprendizaje automatizado –Machine Learning–
Observación
Predicción B M
B 80 8
M 0 52
Calcula una tabla similar a la anterior pero más completa. Aporta proporciones de aciertos por
filas, columnas y totales.
Cell Contents
|-------------------------|
| N |
| N / Row Total |
| N / Col Total |
| N / Table Total |
|-------------------------|
| Observación
Predicción | B | M | Row Total |
-------------|-----------|-----------|-----------|
B | 80 | 8 | 88 |
| 0.909 | 0.091 | 0.629 |
| 1.000 | 0.133 | |
| 0.571 | 0.057 | |
-------------|-----------|-----------|-----------|
M | 0 | 52 | 52 |
| 0.000 | 1.000 | 0.371 |
| 0.000 | 0.867 | |
| 0.000 | 0.371 | |
-------------|-----------|-----------|-----------|
Column Total | 80 | 60 | 140 |
| 0.571 | 0.429 | |
-------------|-----------|-----------|-----------|
ares.inf.um.es/00Rteam/pub/mamutCola/modulo3.html 22/29
7/2/2021 Introducción al aprendizaje automatizado –Machine Learning–
negativo.
Call:
roc.default(response = labels, predictor = prob, auc = TRUE, ci = TRUE)
Como se puede observar el la curva, el clasificador no parece ser muy bueno, ya que su AUC no es
muy alta (0.6527083)
ares.inf.um.es/00Rteam/pub/mamutCola/modulo3.html 23/29
7/2/2021 Introducción al aprendizaje automatizado –Machine Learning–
Call:
roc.default(response = labels, predictor = prob, auc = TRUE, ci = TRUE)
Ahora el AUC a aumentado a 0.733125 por lo que al aumentar el número de vecinos, ha mejorado –
en este caso– la eficiencia del predictor.
Validación cruzada —cross-validation—
Como se ha comentado anteriormente, una vez que hemos generado el modelo, interesa conocer
la precisión de este modelo en la predicción de los resultados. Dicho de otra manera, interesa
estimar el error cometido en la predicción.
La validación cruzada aglutina una serie de técnicas, utilizadas para validar la precisión de un
modelo predictivo. Para ello, comprueba la bondad predictiva del modelo sobre un conjunto de
datos de prueba independientes de los datos empleados para generar el modelo.
Hay distintas técnicas de validación cruzada para la estimación del error, aqui vamos a ver alguna
de ellas.
Para todas las técnicas que vamos a ver, utilizaremos el paquete caret , uno de los más completos
paquetes de machine learning que hay en R.
ares.inf.um.es/00Rteam/pub/mamutCola/modulo3.html 24/29
7/2/2021 Introducción al aprendizaje automatizado –Machine Learning–
En primer lugar cargaremos y prepararemos los datos, esto nos servirá para todos los métodos que
vamos a ver. A continuación iremos haciendo las validaciones con las diferentes técnicas
set.seed(111)
train <- createDataPartition( iris$Species, p = 0.7, list = FALSE )
train.iris <- iris[ train, ]
test.iris <- iris[ -train, ]
#Crear el modelo
model <- naiveBayes(Species ~ . , data = train.iris )
predictions <- predict( model, test.iris )
predictions <- as.numeric( predictions )
test <- as.numeric( as.factor( test.iris$Species ) )
R2 RMSE MAE
1 0.9363057 0.2108185 0.04444444
2
R
Es la correlación al cuadrado entre observaciones y predicciones. Cuanto más alto mejor será el
modelo
obtiene el error total cometido calculado como la media de los errores obtenidos para cada
observación que se ha testado.
set.seed(111)
train <- trainControl(method = "LOOCV")
model <- train(Species ~ ., data=iris, method = "naive_bayes", trControl = trai
print(model)
Naive Bayes
150 samples
4 predictor
3 classes: 'setosa', 'versicolor', 'virginica'
No pre-processing
Resampling: Leave-One-Out Cross-Validation
Summary of sample sizes: 149, 149, 149, 149, 149, 149, ...
Resampling results across tuning parameters:
La ventaja del método es que utiliza todos los datos para entrenar y para testar el modelo.
La desventaja es que precisamente por utilizar todos los datos, tiene un alto coste computacional,
especialmente cuando tenemos un conjunto de datos muy grande.
En el primer caso, el conjunto de datos se divide en K subjuntos, uno de ellos se utiliza como
datos de prueba y el resto K − 1 los datos de entrenamiento. La validación cruzada se realizará
durante K iteraciones. En cada iteración un subconjunto será el conjunto de prueba y el resto de
entrenamiento.
La idea es similar al método LOOCV, pero en lugar de hacerlo a nivel de observación, se hace a
nivel de conjunto de observaciones.
El método de k-fold repetido es idéntico al método k-fold, sólo que en este caso, una vez
terminadas las k-iteraciones, se vuelve a particionar en subconjuntos y se repite el proceso
anterior. Estos ciclos se repetirán el número de veces que se indique.
ares.inf.um.es/00Rteam/pub/mamutCola/modulo3.html 26/29
7/2/2021 Introducción al aprendizaje automatizado –Machine Learning–
K-fold
set.seed(111)
train <- trainControl(method = "cv", number = 10 )
model <- train(Species ~ ., data=iris, method = "naive_bayes", trControl = trai
print(model)
Naive Bayes
150 samples
4 predictor
3 classes: 'setosa', 'versicolor', 'virginica'
No pre-processing
Resampling: Cross-Validated (10 fold)
Summary of sample sizes: 135, 135, 135, 135, 135, 135, ...
Resampling results across tuning parameters:
repeat K-fold
set.seed(111)
train <- trainControl(method = "repeatedcv", number = 10, repeats = 3 )
model <- train(Species ~ ., data=iris, method = "naive_bayes", trControl = trai
print(model)
ares.inf.um.es/00Rteam/pub/mamutCola/modulo3.html 27/29
7/2/2021 Introducción al aprendizaje automatizado –Machine Learning–
Naive Bayes
150 samples
4 predictor
3 classes: 'setosa', 'versicolor', 'virginica'
No pre-processing
Resampling: Cross-Validated (10 fold, repeated 3 times)
Summary of sample sizes: 135, 135, 135, 135, 135, 135, ...
Resampling results across tuning parameters:
Manos a la obra
Ha llegado la hora de poner en práctica parte de lo aprendido en este módulo, para ello vamos ha
crear un clasificador con un conjunto de datos biométricos de estudiantes de la Universidad de
Murcia, y lo utilizaremos para intentar predecir el sexo de un individuo basado en sus datos
biométricos, así que …manos a la obra (http://ares.inf.um.es:3838/ares/mamutCola/modulo03/).
Enlaces de interés
Un tutorial online en DataCamp (visitar
(https://www.datacamp.com/community/tutorials/machine-learning-in-r)).
ares.inf.um.es/00Rteam/pub/mamutCola/modulo3.html 28/29
7/2/2021 Introducción al aprendizaje automatizado –Machine Learning–
ares.inf.um.es/00Rteam/pub/mamutCola/modulo3.html 29/29