Contenido del Curso
Procesamiento Previo de Datos
Procesamiento Previo de Datos
Realización
Ahora ya tiene una idea de lo que incluye la ingeniería de funciones. Pasemos a la aplicación práctica y veamos el proceso completo en acción.
En este ejemplo, mostraremos todas las canalizaciones en un programa para el preprocesamiento de datos utilizando el famoso conjunto de datos del iris. Prepararemos los datos, extraeremos características, seleccionaremos las características más relevantes, crearemos nuevas características, normalizaremos y estandarizaremos las características, fusionaremos las características, evaluaremos su calidad, realizaremos las características y las integraremos para su uso en un modelo de aprendizaje automático.
-
Preparación de los datos: utilizaremos el conjunto de datos del iris de la biblioteca
scikit-learn
, que ya está preprocesado y limpio. -
*2. Lectura de características: utilizaremos las siguientes características del conjunto de datos: Longitud del septum, Anchura del septum, Longitud del pétalo, Anchura del pétalo.
-
- Selección de características: utilizaremos el método SelectKBest de
scikit-learn
para seleccionar las 2 características más relevantes en función de su puntuación de información mutua.
- Selección de características: utilizaremos el método SelectKBest de
-
- Creación de características: crearemos una nueva característica llamada
'Sepal to Petal Ratio'
dividiendo la longitud del sépalo por la longitud del pétalo.
- Creación de características: crearemos una nueva característica llamada
-
- Estandarización: utilizaremos el método StandardScaler de
scikit-learn
para escalar las características seleccionadas.
- Estandarización: utilizaremos el método StandardScaler de
-
- Fusión de características: fusionaremos las características seleccionadas y las recién creadas en un array.
-
- Evaluación de características: evaluaremos la calidad de las características calculando sus coeficientes de correlación.
Las características con alta correlación son más linealmente dependientes y, por tanto, tienen casi el mismo efecto sobre la variable dependiente. Por tanto, cuando dos características tienen una correlación alta, podemos descartar una de ellas.
- Evaluación de características: evaluaremos la calidad de las características calculando sus coeficientes de correlación.
-
Integración y uso: por último, integraremos las características realizadas en un modelo de aprendizaje automático para la clasificación.
Hay que tener en cuenta que existe una diferencia entre la selección y la creación de características: la selección de características se refiere al proceso de seleccionar un subconjunto de las características disponibles en un conjunto de datos que sea más relevante o informativo para una determinada tarea de aprendizaje automático. La creación de características, por su parte, consiste en generar nuevas características a partir de las existentes para captar relaciones más complejas o abstractas entre ellas.
# Import libraries from sklearn.datasets import load_iris from sklearn.feature_selection import SelectKBest, mutual_info_classif from sklearn.preprocessing import StandardScaler import numpy as np # Load dataset iris = load_iris() # Read features X = iris.data sepal_length = X[:, 0] sepal_width = X[:, 1] petal_length = X[:, 2] petal_width = X[:, 3] # Create new features sepal_to_petal_ratio = sepal_length / petal_length sepal_to_petal_ratio = np.reshape(sepal_to_petal_ratio, (-1, 1)) sepal_area = sepal_length * sepal_width petal_area = petal_length * petal_width ratio_sepal = sepal_length / sepal_width ratio_petal = petal_length / petal_width # Feature selection kbest = SelectKBest(mutual_info_classif, k=2) X_new = kbest.fit_transform(X, iris.target) # Feature creation X_new = np.hstack((X_new, sepal_to_petal_ratio)) # Scaling scaler = StandardScaler() X_new = scaler.fit_transform(X_new) # Feature merging X_new = np.hstack((X_new, sepal_area.reshape(-1, 1))) X_new = np.hstack((X_new, petal_area.reshape(-1, 1))) X_new = np.hstack((X_new, ratio_sepal.reshape(-1, 1))) X_new = np.hstack((X_new, ratio_petal.reshape(-1, 1))) # Feature evaluation correlation_matrix = np.corrcoef(X_new.T) print('Correlation Matrix:') print(correlation_matrix) X_new = np.array(X_new, np.float32) # Integration and usage # The realized features can now be used in a machine learning model for classification
¡Gracias por tus comentarios!