Aprendizaje supervisado y no supervisado en programación R

Arthur Samuel “Machine Learning” “Campo de estudio que le da a las computadoras la capacidad de aprender sin ser programadas explícitamente”

En este artículo, analicemos los dos aprendizajes más importantes, por ejemplo, el aprendizaje supervisado y no supervisado en la  programación R.

lenguaje R de la

Ventajas de implementar el aprendizaje automático usando el lenguaje R

  • Proporciona un buen código explicativo. Por ejemplo, si se encuentra en la etapa inicial de trabajo con un proyecto de aprendizaje automático y necesita explicar el trabajo que realiza, se vuelve fácil trabajar con la comparación del lenguaje R con el lenguaje python, ya que proporciona el método estadístico adecuado para trabajar con datos. con menos líneas de código.
  • El lenguaje R es perfecto para la visualización de datos. El lenguaje R proporciona el mejor prototipo para trabajar con modelos de aprendizaje automático.
  • El lenguaje R tiene las mejores herramientas y paquetes de biblioteca para trabajar con proyectos de aprendizaje automático. Los desarrolladores pueden usar estos paquetes para crear el mejor modelo previo, modelo y modelo posterior de los proyectos de aprendizaje automático. Además, los paquetes para R son más avanzados y extensos que el lenguaje Python, lo que lo convierte en la primera opción para trabajar con proyectos de aprendizaje automático.

Aprendizaje supervisado

que el aprendizaje supervisado se clasifica en dos categorías de algoritmos:  

  • Clasificación : un problema de clasificación es cuando la variable de salida es una categoría, como «Rojo» o «azul» o «enfermedad» y «sin enfermedad».
  • Regresión : un problema de regresión es cuando la variable de salida es un valor real, como «dólares» o «peso».

El aprendizaje supervisado trata o aprende con datos «etiquetados». Esto implica que algunos datos ya están etiquetados con la respuesta correcta.

Tipos

Implementación en R

Implementemos uno de los aprendizajes supervisados ​​muy populares, es decir , la regresión lineal simple en la programación R. Regresión lineal simple

lm(Y ~ modelo) 

El comando lm() proporciona los coeficientes del modelo pero no proporciona más información estadística. El siguiente código R se usa para implementar la regresión lineal simple.

Ejemplo:

R

# Simple Linear Regression
# Importing the dataset
dataset = read.csv('salary.csv')
 
# Splitting the dataset into the
# Training set and Test set
install.packages('caTools')
library(caTools)
split = sample.split(dataset$Salary,
                     SplitRatio = 0.7)
trainingset = subset(dataset, split == TRUE)
testset = subset(dataset, split == FALSE)
 
# Fitting Simple Linear Regression
# to the Training set
lm.r = lm(formula = Salary ~ YearsExperience,
                          data = trainingset)
coef(lm.r)
 
# Predicting the Test set results
ypred = predict(lm.r, newdata = testset)
 
install.packages("ggplot2")
library(ggplot2)
 
# Visualising the Training set results
ggplot() + geom_point(aes(x = trainingset$YearsExperience,
                          y = trainingset$Salary),
                          colour = 'red') +
           geom_line(aes(x = trainingset$YearsExperience,
                         y = predict(lm.r, newdata = trainingset)),
                         colour = 'blue') +
         
ggtitle('Salary vs Experience (Training set)') +
xlab('Years of experience') +
ylab('Salary')
 
# Visualising the Test set results
ggplot() + geom_point(aes(x = testset$YearsExperience,
                          y = testset$Salary),
                          colour = 'red') +
           geom_line(aes(x = trainingset$YearsExperience,
                         y = predict(lm.r, newdata = trainingset)),
                         colour = 'blue') +
 
ggtitle('Salary vs Experience (Test set)') +
xlab('Years of experience') +
ylab('Salary')

Producción:

Intercept YearsExperience
24558.39 10639.23

Visualización de los resultados del conjunto de entrenamiento:

Output Plot

Visualización de los resultados del conjunto de pruebas:

Output Plot

Aprendizaje sin supervisión

R – El aprendizaje no supervisado es el entrenamiento de máquinas que utilizan información que no está clasificada ni etiquetada y que permite que el algoritmo actúe sobre esa información sin guía. En este caso, la tarea de la máquina es agrupar información desordenada según similitudes, patrones y diferencias sin ningún entrenamiento previo de datos. A diferencia del aprendizaje supervisado, no se proporciona ningún maestro, lo que significa que no se dará capacitación a la máquina. Por lo tanto, la máquina está restringida a encontrar la estructura oculta en datos no etiquetados por nosotros mismos. El aprendizaje no supervisado se clasifica en dos categorías de algoritmos:  

  • Agrupamiento : un problema de agrupamiento es donde desea descubrir los agrupamientos inherentes en los datos, como agrupar clientes por comportamiento de compra.
  • Asociación : un problema de aprendizaje de reglas de asociación es donde desea descubrir reglas que describan grandes porciones de sus datos, como que las personas que compran X también tienden a comprar Y.

Tipos

Agrupación:

  1. Exclusivo (particionamiento)
  2. aglomerativo
  3. superposición
  4. probabilístico

Tipos de agrupamiento:

  1. Agrupación jerárquica
  2. Agrupamiento de K-medias
  3. K-NN (k vecinos más cercanos)
  4. Análisis de componentes principales
  5. Valor singular de descomposición
  6. Análisis de componentes independientes

Implementar en k-means agrupamiento en R

Implementemos uno de los aprendizajes no supervisados ​​muy populares , es decir, el agrupamiento de K-means en la programación R. K significa agrupar R Programar agrupaciones

Sintaxis: kmeans(x, centros = 3, nstart = 10)

Dónde:

  • x son datos numéricos
  • centres es el número predefinido de grupos
  • el algoritmo k-means tiene un componente aleatorio y se puede repetir nstart veces para mejorar el modelo devuelto

R

# Installing Packages
install.packages("ClusterR")
install.packages("cluster")
 
# Loading package
library(ClusterR)
library(cluster)
 
# Loading data
data(iris)
    
# Structure 
str(iris)
 
# Removing initial label of
# Species from original dataset
iris_1 <- iris[, -5]
 
# Fitting K-Means clustering Model
# to training dataset
set.seed(240) # Setting seed
kmeans.re <- kmeans(iris_1, centers = 3,
                            nstart = 20)
kmeans.re
 
# Cluster identification for
# each observation
kmeans.re$cluster
 
# Confusion Matrix
cm <- table(iris$Species, kmeans.re$cluster)
cm
 
# Model Evaluation and visualization
plot(iris_1[c("Sepal.Length", "Sepal.Width")])
plot(iris_1[c("Sepal.Length", "Sepal.Width")],
            col = kmeans.re$cluster)
plot(iris_1[c("Sepal.Length", "Sepal.Width")],
               col = kmeans.re$cluster,
               main = "K-means with 3 clusters")
 
# Plotiing cluster centers
kmeans.re$centers
kmeans.re$centers[, c("Sepal.Length",
                      "Sepal.Width")]
 
# cex is font size, pch is symbol
points(kmeans.re$centers[, c("Sepal.Length",
                             "Sepal.Width")],
       col = 1:3, pch = 8, cex = 3)
 
# Visualizing clusters
y_kmeans <- kmeans.re$cluster
clusplot(iris_1[, c("Sepal.Length", "Sepal.Width")],
                      y_kmeans,
                      lines = 0,
                      shade = TRUE,
                      color = TRUE,
                      labels = 2,
                      plotchar = FALSE,
                      span = TRUE,
                      main = paste("Cluster iris"),
                      xlab = 'Sepal.Length',
                      ylab = 'Sepal.Width')

Producción:

  • Modelo kmeans_re:

Se fabrican los 3 clusters que son de 50, 62 y 38 tamaños respectivamente. Dentro del clúster, la suma de cuadrados es 88,4%.

  • Identificación del conglomerado:

El modelo logró una precisión del 100 % con un valor p inferior a 1. Esto indica que el modelo es bueno.

  • Array de confusión:

Entonces, 50 Setosa se clasifican correctamente como Setosa. De 62 Versicolor, 48 Versicolor se clasifican correctamente como Versicolor y 14 se clasifican como virginica. De 36 vírgenes, 19 vírgenes se clasifican correctamente como vírgenes y 2 se clasifican como Versicolor.

  • K-medias con gráfico de 3 grupos:
     

El modelo mostró 3 parcelas de conglomerados con tres colores diferentes y con Sepal.longitud y con Sepal.ancho.

  • Trazado de centros de conglomerados:

En la parcela, los centros de los conglomerados están marcados con cruces del mismo color del conglomerado.

  • Parcela de conglomerados:

Entonces, se forman 3 grupos con diferentes longitudes y anchos de sépalos. 

Publicación traducida automáticamente

Artículo escrito por AmiyaRanjanRout y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *