Primeros pasos con la clasificación

Como sugiere el nombre, Clasificación es la tarea de «clasificar cosas» en subcategorías. ¡Pero, por una máquina! Si eso no parece mucho, imagine que su computadora puede diferenciar entre usted y un extraño. Entre una patata y un tomate. Entre una calificación de A y una F. Ahora, suena interesante ahora. En Aprendizaje automático y estadística, la clasificación es el problema de identificar a cuál de un conjunto de categorías (subpoblaciones) pertenece una nueva observación, sobre la base de un conjunto de datos de entrenamiento que contiene observaciones y cuya pertenencia a categorías se conoce.

Tipos de clasificación

La clasificación es de dos tipos:  

  1. Clasificación binaria : cuando tenemos que categorizar datos dados en 2 clases distintas. Ejemplo: sobre la base de las condiciones de salud dadas de una persona, tenemos que determinar si la persona tiene una determinada enfermedad o no.
  2. Clasificación multiclase : el número de clases es más de 2. Por ejemplo: sobre la base de datos sobre diferentes especies de flores, tenemos que determinar a qué especie pertenece nuestra observación.

1

Fig: Clasificación Binaria y Multiclase. Aquí x1 y x2 son las variables sobre las que se predice la clase. 

¿Cómo funciona la clasificación?

Supongamos que tenemos que predecir si un determinado paciente tiene o no una determinada enfermedad, en base a 3 variables, llamadas características.

Esto significa que hay dos resultados posibles: 

  1. El paciente tiene dicha enfermedad. Básicamente, un resultado etiquetado como «Sí» o «Verdadero».
  2. El paciente está libre de enfermedad. Un resultado etiquetado como «No» o «Falso».

Este es un problema de clasificación binaria.  
Tenemos un conjunto de observaciones denominado conjunto de datos de entrenamiento, que comprende datos de muestra con resultados de clasificación reales. Entrenamos un modelo, llamado Clasificador en este conjunto de datos, y usamos ese modelo para predecir si un determinado paciente tendrá la enfermedad o no. 
El resultado, por lo tanto, ahora depende de:  

  1. Qué tan bien estas características pueden «mapear» el resultado.
  2. La calidad de nuestro conjunto de datos. Por calidad, me refiero a cualidades estadísticas y matemáticas.
  3. Qué tan bien nuestro Clasificador generaliza esta relación entre las características y el resultado.
  4. Los valores de x1 y x2.

A continuación se muestra el diagrama de bloques generalizado de la tarea de clasificación. 

2

 Diagrama de bloques de clasificación generalizada.

  1. X: datos preclasificados, en forma de array N*M. N es el nro. de observaciones y M es el número de características
  2. y: Un vector Nd correspondiente a las clases pronosticadas para cada una de las N observaciones.
  3. Extracción de características: extracción de información valiosa de la entrada X mediante una serie de transformaciones.
  4. Modelo ML: El “Clasificador” que entrenaremos.
  5. y’: Etiquetas predichas por el Clasificador.
  6. Métrica de calidad: Métrica utilizada para medir el rendimiento del modelo.
  7. Algoritmo ML: El algoritmo que se utiliza para actualizar los pesos w’, que actualizan el modelo y “aprende” iterativamente. 

Tipos de clasificadores (algoritmos)

Hay varios tipos de clasificadores. Algunos de ellos son : 

  • Clasificadores Lineales: Regresión Logística
  • Clasificadores basados ​​en árboles: clasificador de árboles de decisión
  • Máquinas de vectores de soporte
  • Redes neuronales artificiales
  • Regresión bayesiana
  • Clasificadores bayesianos ingenuos gaussianos
  • Clasificador de descenso de gradiente estocástico (SGD)
  • Métodos de conjunto: Random Forests, AdaBoost, Bagging Classifier, Voting Classifier, ExtraTrees Classifier

¡Una descripción detallada de estas metodologías está más allá de un artículo!  

Aplicaciones prácticas de la clasificación

  1. El automóvil autónomo de Google utiliza técnicas de clasificación habilitadas para aprendizaje profundo que le permiten detectar y clasificar obstáculos.
  2. El filtrado de correo electrónico no deseado es uno de los usos más extendidos y mejor reconocidos de las técnicas de clasificación.
  3. La detección de problemas de salud, el reconocimiento facial, el reconocimiento de voz, la detección de objetos y el análisis de sentimientos utilizan la clasificación en su núcleo.

Implementación:

Obtengamos una experiencia práctica sobre cómo funciona la clasificación. Estudiaremos varios clasificadores y veremos una comparación analítica bastante simple de su rendimiento en un conjunto de datos estándar bien conocido, el conjunto de datos de Iris.  

Requisitos para ejecutar el script dado:

  1. Python 3.8.10
  2. Scipy y Numpy
  3. Pandas  para E/S de datos
  4. Scikit-learn  proporciona todos los clasificadores

Ejemplo

Python

# Python program to perform classification on Iris dataset
  
# Run this program on your local Python interpreter
# provided you have installed the required libraries
  
# Importing the required libraries
import numpy as np
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
from sklearn import datasets
from sklearn import svm
from sklearn.tree import DecisionTreeClassifier
from sklearn.naive_bayes import GaussianNB
  
# import the iris dataset
iris = datasets.load_iris()
X = iris.data
y = iris.target
  
# splitting X and y into training and testing sets
X_train, X_test, y_train, y_test = train_test_split(
    X, y, test_size=0.3, random_state=1)
  
# GAUSSIAN NAIVE BAYES
gnb = GaussianNB()
# train the model
gnb.fit(X_train, y_train)
# make predcitions
gnb_pred = gnb.predict(X_test)
# print the accuracy
print("Accuracy of Gaussian Naive Bayes: ", accuracy_score(y_test, gnb_pred))
  
# DECISION TREE CLASSIFIER
dt = DecisionTreeClassifier(random_state=0)
# train the model
dt.fit(X_train, y_train)
# make predcitions
dt_pred = dt.predict(X_test)
# print the accuracy
print("Accuracy of Decision Tree Classifier: ", accuracy_score(y_test, dt_pred))
  
# SUPPORT VECTOR MACHINE
svm_clf = svm.SVC(kernel='linear')  # Linear Kernel
# train the model
svm_clf.fit(X_train, y_train)
# make predcitions
svm_clf_pred = svm_clf.predict(X_test)
# print the accuracy
print("Accuracy of Support Vector Machine: ",
      accuracy_score(y_test, svm_clf_pred))

Conclusión: La clasificación es un campo de estudio muy amplio. Aunque comprende una pequeña parte de Machine Learning en su conjunto, es uno de los más importantes. 
Eso es todo por ahora. En el próximo artículo, veremos cómo funciona la clasificación en la práctica y nos ensuciamos las manos con el código Python. 

Este artículo es una contribución de Sarthak Yadav . Si le gusta GeeksforGeeks y le gustaría contribuir, también puede escribir un artículo y enviarlo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks. 

Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente. 

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 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 *