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:
- 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.
- 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.
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:
- El paciente tiene dicha enfermedad. Básicamente, un resultado etiquetado como «Sí» o «Verdadero».
- 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:
- Qué tan bien estas características pueden «mapear» el resultado.
- La calidad de nuestro conjunto de datos. Por calidad, me refiero a cualidades estadísticas y matemáticas.
- Qué tan bien nuestro Clasificador generaliza esta relación entre las características y el resultado.
- Los valores de x1 y x2.
A continuación se muestra el diagrama de bloques generalizado de la tarea de clasificación.
Diagrama de bloques de clasificación generalizada.
- X: datos preclasificados, en forma de array N*M. N es el nro. de observaciones y M es el número de características
- y: Un vector Nd correspondiente a las clases pronosticadas para cada una de las N observaciones.
- Extracción de características: extracción de información valiosa de la entrada X mediante una serie de transformaciones.
- Modelo ML: El “Clasificador” que entrenaremos.
- y’: Etiquetas predichas por el Clasificador.
- Métrica de calidad: Métrica utilizada para medir el rendimiento del modelo.
- 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
- 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.
- 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.
- 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:
- Python 3.8.10
- Scipy y Numpy
- Pandas para E/S de datos
- 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