Construyendo su primer clasificador de aprendizaje automático en Python



Este artículo lo ayudará a construir un clasificador de aprendizaje automático en Python desde cero. También le proporcionará un conocimiento detallado de Clasificación.

es la palabra de moda en este momento. Se están haciendo algunas cosas increíbles con la ayuda del aprendizaje automático. De ser nuestro asistente personal , a decidir nuestro rutas de viaje , ayudándonos a comprar, ayudándonos a administrar nuestros negocios, a cuidar nuestros salud y Bienestar, El aprendizaje automático está integrado en nuestra existencia diaria a niveles tan fundamentales que la mayoría de las veces ni siquiera nos damos cuenta de que confiamos en él. En este artículo, seguiremos el enfoque de un principiante para implementar un clasificador de aprendizaje automático estándar en Python.

Descripción general del aprendizaje automático

El aprendizaje automático es un concepto que permite a la máquina aprender de los ejemplos y la experiencia, y eso también sin estar programado explícitamente. Entonces, en lugar de escribir el código, lo que hace es alimentar datos al algoritmo genérico, y el algoritmo / máquina construye la lógica basada en los datos dados.





Clasificador de aprendizaje automático

El aprendizaje automático implica la capacidad de las máquinas para tomar decisiones, evaluar los resultados de sus acciones y mejorar su comportamiento para obtener mejores resultados de forma sucesiva.



El proceso de aprendizaje tiene lugar de tres formas principales

  • Aprendizaje supervisado
  • Aprendizaje sin supervisión
  • Aprendizaje reforzado

Una plantilla para clasificadores de aprendizaje automático

Las herramientas de aprendizaje automático se proporcionan de manera bastante conveniente en una biblioteca de Python denominada scikit-learn, que son muy fáciles de acceder y aplicar.



Instale scikit-learn a través del símbolo del sistema usando:

pip install -U scikit-learn

Si es un usuario de anaconda, en el indicador de anaconda puede usar:

conda instalar scikit-learn

La instalación requiere la instalación previa de los paquetes NumPy y SciPy en su sistema.

Preprocesamiento: El primer paso y el más necesario en cualquier análisis de datos basado en aprendizaje automático es la parte de preprocesamiento. La representación y limpieza correctas de los datos es absolutamente esencial para que el modelo de aprendizaje automático se entrene bien y funcione a su potencial.

Paso 1 - Importar bibliotecas necesarias

importar numpy como np importar pandas como pd importar matplotlib.pyplot como plt

Paso 2 - Importar el conjunto de datos

conjunto de datos = pd.read_csv ()

Luego, dividimos el conjunto de datos en variables independientes y dependientes. Las variables independientes serán los datos de entrada y la variable dependiente los datos de salida.

X = dataset.iloc []. Valores y = dataset.iloc []. Valores

Paso 3 - Manejar datos faltantes

El conjunto de datos puede contener valores en blanco o nulos, lo que puede provocar errores en nuestros resultados. Por tanto, debemos ocuparnos de esas entradas. Una práctica común es reemplazar los valores nulos con un valor común, como la media o el valor más frecuente en esa columna.

cómo convertir un número a binario en Python
from sklearn.preprocessing import Imputer imputer = Imputer (missing_values ​​= 'NaN', estrategia = 'mean', axis = 0) imputer = imputer.fit (X []) X [] = imputer.transform (X [])

Etapa 4 - Convertir variables categóricas en variables numéricas

from sklearn.preprocessing import LabelEncoder le_X = LabelEncoder () X [] = le_X.fit_transform (X []) labelencoder_y = LabelEncoder () y = labelencoder_y.fit_transform (y)

Ahora, después de la codificación, puede suceder que la máquina asuma los datos numéricos como una clasificación para las columnas codificadas. Por lo tanto, para proporcionar el mismo peso, tenemos que convertir los números en vectores one-hot, usando la clase OneHotEncoder.

desde sklearn.preprocessing import OneHotEncoder oneHE = OneHotEncoder (categorical_features = []) X = oneHE.fit_transform (X) .toarray ()

Paso 5 - Realizar escalado

Este paso es para tratar las discrepancias que surgen de escalas no coincidentes de las variables. Por lo tanto, los escalamos todos al mismo rango, de modo que reciban el mismo peso mientras se ingresan al modelo. Usamos un objeto de la clase StandardScaler para este propósito.

de sklearn.preprocessing import StandardScaler sc_X = StandardScaler () X = sc_X.fit_transform (X)

Paso 6 - Divida el conjunto de datos en datos de entrenamiento y prueba

Como último paso del preprocesamiento, el conjunto de datos debe dividirse en un conjunto de entrenamiento y un conjunto de prueba. La relación estándar de la división de prueba de tren es 75% -25%. Podemos modificar según los requisitos. La función train_test_split () puede hacer esto por nosotros.

from sklearn.model_selection import train_test_split X_train, X_test, y_train, y_test = train_test_split (X, y, test_size = 0.25)

Construcción del modelo: Este paso es bastante sencillo. Una vez que decidamos qué modelo aplicar en los datos, podemos crear un objeto de su clase correspondiente y ajustar el objeto en nuestro conjunto de entrenamiento, considerando X_train como la entrada y y_train como la salida.

de sklearn. import clasificador = () clasificador.fit (X_train, y_train)

El modelo ahora está entrenado y listo. Ahora podemos aplicar nuestro modelo al conjunto de prueba y encontrar la salida prevista.

y_pred = classifier.predict(X_test)

Visualización de resultados: El rendimiento de un clasificador se puede evaluar mediante los parámetros de exactitud, precisión, recuperación y puntuación f1. Estos valores se pueden ver usando un método conocido como class_report (). También se puede ver como una matriz de confusión que nos ayuda a saber cuántos de qué categoría de datos se han clasificado correctamente.

de sklearn.metrics importar confusion_matrix cm = confusion_matrix (y_test, y_pred) imprimir (cm) de sklearn.metrics importar clasificacion_report target_names = [] print (class_report (y_test, y_pred, target_names = target_names))

Problema del clasificador de aprendizaje automático

Usaremos el conjunto de datos Iris muy popular y simple, que contiene dimensiones de flores en 3 categorías: Iris-setosa, Iris-versicolor e Iris-virginica. Hay 150 entradas en el conjunto de datos.

# Importando las bibliotecas import numpy as np import matplotlib.pyplot as plt import pandas as pd # Importando el conjunto de datos dataset = pd.read_csv ('iris.csv')

Veamos el conjunto de datos ahora.

dataset.head ()

Tenemos 4 variables independientes (excluyendo el Id), a saber, los números de columna 1-4, y la columna 5 es la variable dependiente. Entonces podemos separarlos.

X = dataset.iloc [:, 1: 5] .values ​​y = dataset.iloc [:, 5] .values

Ahora podemos dividir el conjunto de datos en entrenamiento y prueba.

# Dividir el conjunto de datos en el conjunto de entrenamiento y el conjunto de prueba de sklearn.model_selection import train_test_split X_train, X_test, y_train, y_test = train_test_split (X, y, test_size = 0.25)

Ahora aplicaremos un clasificador de regresión logística al conjunto de datos.

# Construyendo y entrenando el modelo a partir de sklearn.linear_model import LogisticRegression classifier = LogisticRegression () classifier.fit (X_train, y_train) # Predicción de los resultados del conjunto de prueba y_pred = classifier.predict (X_test)

El último paso será analizar el desempeño del modelo entrenado.

# Realización de la matriz de confusión de sklearn.metrics import confusion_matrix cm = confusion_matrix (y_test, y_pred) print (cm)

cómo usar la energía en java

Esto nos muestra que el modelo predice correctamente 13 entradas de la primera categoría, 11 de la segunda y 9 de la tercera categoría.

# Generación de exactitud, precisión, recuperación y puntuación f1 a partir de sklearn.metrics. )

El informe muestra los valores de precisión, recuperación, puntuación f1 y exactitud del modelo en nuestro conjunto de prueba, que consta de 38 entradas (25% del conjunto de datos).

¡Felicitaciones, ha creado e implementado con éxito su primer clasificador de aprendizaje automático en Python! Para obtener un conocimiento profundo sobre junto con sus diversas aplicaciones, puede inscribirse para la capacitación en línea de Python en vivo con soporte 24/7 y acceso de por vida.