Tubería de clasificación

Esta página presenta una canalización para la clasificación. Es decir el seguimiento de un proceso desde la exploración de los datos hasta la clasificación a través de los modelos de evaluación.

tubería de clasificación

El aprendizaje supervisado se puede subdividir en clasificación y algoritmos de clasificación. regresión. El modelo de clasificación identifica la categoría a la que pertenece un objeto, mientras que el modelo de regresión predice una salida continua.

A veces hay una línea ambigua entre los algoritmos de clasificación y los algoritmos de regresión. Se pueden usar muchos algoritmos tanto para la clasificación como para la regresión, y la clasificación es solo un modelo de regresión con un umbral aplicado. Cuando el número está por encima del umbral, se clasifica como verdadero, mientras que un número inferior se clasifica como falso.

En este artículo, discutiremos los 6 mejores algoritmos de aprendizaje automático para problemas de clasificación, que incluyen: regresión logística, árbol de decisión, bosque aleatorio, máquina de vectores de soporte, k-vecino más cercano y bayas ingenuas. Aquí está la canalización para la clasificación.

Canalización para clasificación canalización para clasificación

Regresión logística

La regresión logística usa la función sigmoidea anterior para devolver la probabilidad de una etiqueta. Es muy utilizado cuando el problema de clasificación es binario, como verdadero o falso, ganador o perdedor, positivo o negativo, etc.

La función sigmoidea genera una salida de probabilidad. Y al comparar la probabilidad con un umbral predefinido, al objeto se le asigna una etiqueta en consecuencia.

de aprender.Modelo lineal importar LogisticRegression dtc = DecisionTreeClassifier()
dtc.adaptar(X_tren, y_tren)
y_pred = dtc.predecir(X_prueba)

Árbol de decisión

El árbol de decisión construye ramas de árbol en un enfoque jerárquico y cada rama puede considerarse como una declaración if-else. Las ramas crecen dividiendo el conjunto de datos en subconjuntos, según las características más importantes.

de aprender.árbol importar Registro de DecisionTreeClassifier = Regresión logística()
Registrarse.adaptar(X_tren, y_tren)
y_pred = Registrarse.predecir(X_prueba)

Bosque aleatorio

Como sugiere el nombre, el bosque aleatorio es una colección de árboles de decisión. Este es un tipo común de método de conjunto, que agrega los resultados de múltiples predictores. Random Forest utiliza además una técnica de embolsado que permite que cada árbol ser entrenado en una muestra aleatoria del conjunto de datos original y obtener el voto mayoritario del árbol. En comparación con el árbol de decisión, tiene una mejor generalización pero es menos interpretable debido a que se agregaron más capas al modelo.

de aprender.juntos importar Clasificador de bosque aleatorio rfc = RandomForestClassifier()
rfc.adaptar(X_tren, y_tren)
y_pred = rfc.predecir(X_prueba)

Máquina de vectores de soporte (SVM)

La máquina de vectores de soporte encuentra la mejor manera de clasificar los datos en función de la posición relativa a un límite entre la clase positiva y la clase negativa. Este límite se conoce como el hiperplano que maximiza la distancia entre puntos de datos de diferentes clases. Similar al árbol de decisión y al bosque aleatorio, la máquina de vectores de soporte se puede usar tanto en la clasificación como en la regresión, se elige SVC (clasificador de vectores de soporte) para el problema de clasificación.

de aprender.svm importar CVS
servicio = CVS()
servicio.adaptar(X_tren, y_tren)
y_pred = servicio.predecir(X_prueba)

k vecino más cercano (kNN)

Puede pensar en el algoritmo del vecino más cercano k como una representación de cada punto de datos en un espacio dimensional, que está definido por n características. Y calcula la distancia entre un punto y otro, luego asigna la etiqueta de datos no observados en función de las etiquetas de los puntos de datos observados más cercanos. 

de aprender.vecinos importar KNeighborsClassifier knn = KVecinosClasificador()
conocido.adaptar(X_tren, y_tren)
y_pred = conocido.predecir(X_prueba)

bayes ingenuos

Naive Bayes se basa en el Teorema de Bayes, un enfoque para calcular la probabilidad condicional basado en el conocimiento previo y la suposición ingenua de que cada característica es independiente entre sí. La mayor ventaja de Naive Bayes es que, aunque la mayoría de los algoritmos de aprendizaje automático se basan en una gran cantidad de datos de entrenamiento, funciona relativamente bien incluso cuando el tamaño de los datos de entrenamiento es pequeño. Gaussian Naive Bayes es un tipo de clasificador Naive Bayes que sigue la distribución normal.

de aprender.naive_bayes importar GaussianNB gnb = KVecinosClasificador()
gnb.adaptar(X_tren, y_tren)
y_pred = gnb.predecir(X_prueba)

Hacer la canalización para la clasificación.

Cargar el conjunto de datos y obtener una vista previa de los datos

Elegí el popular conjunto de datos UCI de enfermedades cardíacas en Kaggle para predecir la presencia de enfermedades cardíacas en función de varios factores relacionados con la salud. El primer paso en el proceso de clasificación es comprender los datos.

Utilice df.info() para obtener una vista resumida del conjunto de datos, incluido el tipo de datos, los datos que faltan y la cantidad de registros.

Análisis de datos exploratorios (EDA)

El histograma, el diagrama de barras agrupadas y el diagrama de caja son técnicas EDA adecuadas para la clasificación de algoritmos de aprendizaje automático.

Análisis univariado

Canalización para clasificación canalización para clasificación
 

Para realizar un análisis univariante, se utiliza el histograma para todas las características. Esto se debe a que todas las características se han codificado como valores numéricos en el conjunto de datos. Esto nos ahorra tiempo para la codificación categórica que generalmente ocurre durante la fase de ingeniería de características.

Características categóricas frente a objetivo: gráfico de barras agrupadas

Canalización para clasificación canalización para clasificación

Para mostrar cómo pesa el valor categórico en la determinación del valor objetivo, el gráfico de barras agrupadas es una representación simple. Por ejemplo, sex=1 y sex=0 tienen una distribución distinta del valor objetivo, lo que indica que es probable que contribuya más a la predicción del objetivo. Por el contrario, si la distribución objetivo es la misma independientemente de las características categóricas, significa que no están correlacionadas.

Características numéricas frente a objetivo: diagrama de caja

Canalización para clasificación canalización para clasificación

El diagrama de caja muestra cómo los valores de las características numéricas varían según los grupos objetivo. Por ejemplo, podemos decir que 'pico antiguo' tiene una clara diferencia cuando el objetivo es 0 versus el objetivo es 1, lo que sugiere que es un predictor importante. Sin embargo, 'trestbps' y 'chol' parecen ser menos notables, ya que la distribución del diagrama de caja es similar entre los grupos objetivo.

Separación de conjuntos de datos

El algoritmo de clasificación cae dentro de la categoría de aprendizaje supervisado, por lo que el conjunto de datos debe dividirse en un subconjunto para entrenamiento y un subconjunto para prueba (a veces también un conjunto de validación) . El modelo se entrena en el conjunto de entrenamiento y luego se examina utilizando el conjunto de prueba.

de aprender.selección_modelo importar tren_prueba_dividir
de aprender importar preprocesamiento

X = d.f..soltar(['objetivo'], eje=1)
y = d.f.["objetivo"]

X_tren, X_prueba, y_tren, y_prueba = tren_prueba_dividir(X, y, test_size=0.33, estado_aleatorio=42)

Tubería de clasificación

Para crear una tubería, agrego los 6 algoritmos de clasificación principales mencionados anteriormente en la lista de modelos y los revisaré más adelante para entrenar, probar, predecir y evaluar.

Canalización para clasificación canalización para clasificación

Evaluación del modelo

Aquí hay una explicación abstracta de los métodos de evaluación comúnmente utilizados para los modelos de clasificación: precisión, ROC y AUC y matriz de confusión. El proceso de clasificación incluye tanto el procesamiento de datos, los modelos y su evaluación.

tubería de clasificación

La precisión es el indicador más simple del rendimiento del modelo. Mide el porcentaje de predicciones correctas.

El ROC es el gráfico de la tasa de falsos positivos frente a la tasa de verdaderos positivos en diferentes umbrales de clasificación. AUC es el área bajo la curva ROC, y un AUC más alto indica un mejor rendimiento del modelo.

tubería de clasificación

La matriz de confusión muestra los valores reales frente a los predichos y resume los valores verdadero negativo, falso positivo, falso negativo y verdadero positivo en un formato de matriz.

 

Negativo verdadero

 

Falso positivo

 

Falso negativo

 

VerdaderoPositivo

 
Entonces podemos usar seaborn para visualizar la matriz de confusión en un mapa de calor.
Canalización para clasificación canalización para clasificación

Según los tres métodos de evaluación anteriores, Random Forests y Naive Arrays funcionan mejor, mientras que KNN no funciona bien. Sin embargo, esto no significa que los bosques aleatorios y las matrices ingenuas sean algoritmos superiores. Solo podemos decir que son más adecuados para este conjunto de datos donde el tamaño es relativamente más pequeño y los datos no están a la misma escala.

Cada algoritmo tiene su propia preferencia y requiere diferentes técnicas de procesamiento de datos e ingeniería de características, por ejemplo, KNN es sensible a las características en diferentes escalas y la multicolinealidad afecta el resultado de la regresión logística. Comprender las características de cada uno nos permite equilibrar la compensación y seleccionar el modelo apropiado en función del conjunto de datos.

¡Esto marca el final del proceso de clasificación!