Reconocen entidades específicas dentro del conjunto de datos e intenta obtener conclusiones sobre cómo esas entidades deben etiquetarse o definirse.
Los algoritmos de clasificación comunes son clasificadores lineales, máquinas de vectores de soporte (SVM), árboles de decisión, k-nearest Neighbor y Random Forest
Tenemos dos grandes tipos: problemas de clasificación binaria y multiclase
Clasifica los datos en dos clases, como Si/No, bueno/malo, alto/bajo, padece una enfermedad en particular o no, etc.
Clasifica datos en tres o más clases; por ej. clasificación de documentos, categorización de productos, clasificación de malware
Nota: No es conveniente tener muchas categorías en los problemas de clasificación
Predicción comportamiento de clientes
Clasificación de documentos
Clasificación de imágenes
Clasificación de texto web
Predicción de la tasa de clics de los anuncios
Categorización de productos
Clasificación de Malware
Detección de fraude
Análisis de sentimientos de imágenes
Evaluación para ofertas promocionales
Problemas de detección de anomalías
Fraude en tarjetas de crédito
Validación de deducciones
Evaluación de solvencia crediticia
Recomendaciones para liberación de órdenes
Análisis de sentimiento
Predicción de abandono de clientes
AdaBoostClassifier - ABC
Gaussian Naive Bayes Classifier - GNB
LightGBM - LGB
Gradient Boosting Classifier - GBC
K-nearest Neighbours Classifier - KNN
Linear Discriminant Analysis - LDA
Decision Trees - DT
Logistic Regression Classifier - LRC
Multi-layer Perceptron Classifier - MLPC
Nearest Centroid Classifier - NCC
Nu-Support Vector Classifier - nuSVC
Quadratic Discriminant Analysis - QDA
Random forest Classifier - RFC
XGBOOST - XGB
Árboles de decisión
K-Nearest-Neighbor
Regresión logística (Sólo para Clasificación binaria) - Target 0 / 1
Son estructuras matemáticas (diagramas de flujo) que utilizan criterios de teoría de la información como la impureza (Gini, entropía) para hacer segmentaciones
El aprendizaje basado en árboles de decisión está ampliamente extendido en la actualidad, y múltiples modelos hacen diferentes implementaciones de los mismos.
Las primeras versiones de estos modelos fueron implementados por Leo Breiman.
Se utilizan para problemas de Clasificación y Regresión.
Aprenden de los datos generando reglas de tipo if-else.
Separan los datos en grupos cada vez más pequeños de subsets de un dataset original.
A cada división se la conoce con el nombre de nodo. Cuando un nodo no conduce a nuevas divisiones se le denomina hoja, para luego ser considerada como ramas del árbol.
Caja blanca (conjunto de reglas con booleanos), sus resultados son fáciles de entender e interpretar.
Relativamente robusto cuando la complejidad no es tan alta.
Funcionan relativamente bien con grandes conjuntos de datos.
Combinaciones de los mismos pueden dar resultados muy certeros sin perder explicabilidad, por ejemplo, Random Forest.
Tienden al sobreajuste u overfitting de los datos, por lo que el modelo al predecir nuevos casos no estima con el mismo índice de acierto.
Se ven influenciadas por los outliers, creando árboles con ramas muy profundas que no predicen bien para nuevos casos.
Crear árboles demasiado complejos puede conllevar que no se adapten bien a los nuevos datos.
Se pueden crear árboles sesgados si una de las clases es más numerosa que otra es decir, si hay desbalance de clases.
Exploremos una nueva idea de como hacer una clasificación de la siguiente forma:
Tomar un atributo, aplicar una condición
Seleccionar otro atributo y chequear condición
En las hojas tendremos la asignación final
Aplicar el método con cuántas variables se desee
from matplotlib import pyplot as plt
from sklearn import datasets
from sklearn.tree import DecisionTreeClassifier
from sklearn import tree
Mejor modelo (algoritmo) a aplicar, una solución puede ser esta librería (PyCaret) que te compara muchos modelos a la misma vez
Puede usarse para clasificar nuevas muestras (valores discretos) o para predecir (regresión, valores continuos).
Sirve esencialmente para clasificar valores, buscando los puntos de datos “más similares” (por cercanía).
Entonces, supongamos el siguiente escenario: Tenemos un Dataset con 2 Features, en el cual cada instancia puede pertenecer a una de dos clases: “Rojo” o “Azul”.
Depende el K es con el criterio a clasificar, pero evitar los extremos, un extremo es K=1 y el otro K=n. Cuanto más agrande el K más sesgo y si lo hago muy chico lo voy a estar overfiteando, por lo tanto hay que buscar un intermedio.
Ejemplo en Python:
import matplotlib.pyplot as plt
import pandas as pd
from sklearn import datasets, neighbors
from mlxtend.plotting import plot_decision_regions
def knn_comparison(data, k): # funcion de comparacion
x = data[['X','Y']].values # Extraccion de columns, separo x e y
y = data['class'].astype(int).values # Clase y como int
clf = neighbors.KNeighborsClassifier(n_neighbors=k) #algoritmo, instancio el modelo.
clf.fit(x, y)# Graficar la region de decision
plot_decision_regions(x, y, clf=clf, legend=2)# Añadir anotaciones
plt.xlabel('X')
plt.ylabel('Y')
plt.title('Knn with K='+ str(k))
plt.show()
# Cargar y aplicar funcion
data1 = pd.read_csv('ushape.csv')
for i in [1,5,20,30,40,80]: # Para diferentes valores de k (Knn)
knn_comparison(data1, i) Genera un plot para cada valor
Que prediga la probabilidad.
Técnica de aprendizaje automático que proviene del campo de la estadística. A pesar de su nombre no es un algoritmo, sino que es un método para problemas de clasificación, en los que se obtienen un valor binario entre 0 y 1.
Es un modelo estadístico que se utiliza para determinar si una variable independiente tiene un efecto sobre una variable dependiente binaria (Clasificación).
Usualmente solo hay dos resultados potenciales.
Depende de la definición de un umbral para distinguir las clases binarias (por ejemplo, <50% mal escrito = no es spam,> 50% mal escrito = spam).