Reducción de Dimensionalidad y Regresión Logística con Python
Clase 10 de 37 • Curso Profesional de Machine Learning con scikit-learn
Resumen
¿Cómo comienza el proceso de codificación?
Damos inicio a la codificación al importar las librerías necesarias. Comenzamos con pandas
, utilizando el alias pd
para simplificar su referencia en el código. A continuación, importamos Scikit-learn
(sklearn
) que es esencial para la implementación de algoritmos de aprendizaje automático. Para la visualización de gráficos, se emplea matplotlib.pyplot
con el alias plt
. Estas herramientas son fundamentales para manejar y procesar datos de manera eficiente.
¿Qué módulos de Scikit-learn son esenciales?
Dentro de scikit-learn
, utilizamos módulos específicos para descomposición y clasificación. Del módulo de descomposición, importamos el algoritmo PCA y su variación incremental IncrementalPCA
. Estos módulos son vitales para efectuar reducciones de dimensionalidad, optimizando el rendimiento de nuestros modelos sin perder información relevante. Además, implementamos un algoritmo de clasificación sencillo, la regresión logística, proveniente del submódulo linear_model
.
- PCA e IncrementalPCA: Permiten comparar la eficacia de estas dos técnicas, garantizando resultados casi idénticos.
- Regresión logística: Aunque confusa por su nombre, actúa como un clasificador, no como un modelo de regresión.
Además, preparamos los datos importando otros dos módulos: uno para normalizar los datos, asegurando que se encuentren en una escala común, y otro para dividir estos datos en conjuntos de prueba y entrenamiento.
¿Cómo identificar el script principal?
Para asegurar la ejecución correcta de scripts, especialmente cuando trabajamos con múltiples archivos, utilizamos la directiva:
if __name__ == '__main__':
# Código a ejecutar
Esta línea de código es crucial. Indica que el script actual es el principal, responsable de coordinar la ejecución del flujo total. Si este script llama a otros, estos no tendrán esta variable asignada, lo que previene la ejecución inadecuada de scripts secundarios al ser importados.
¿Cómo cargar y preparar los datos?
Una vez listas nuestras librerías, el siguiente paso es cargar los datos en un DataFrame de pandas. Se recomienda guardar los datos en una carpeta específica, como 'data', facilitando su identificación y manipulación.
Cargando los datos:
Usamos la función read_csv
para cargar archivos .csv
, asegurando que la ruta al archivo se especifica correctamente.
df = pd.read_csv('./data/heart.csv')
print(df.head())
Estos comandos cargan los datos y verifican su correcta lectura imprimiendo las primeras filas del DataFrame.
¿Cómo se transforman y dividen los datos?
Con los datos cargados, es esencial prepararlos antes del entrenamiento del modelo. Esto implica la normalización y la división en conjuntos de entrenamiento y prueba.
Normalización:
El módulo StandardScaler
de Scikit-learn normaliza los datos.
from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
features_scaled = scaler.fit_transform(features)
División de datos:
Una vez normalizados, los datos se dividen utilizando train_test_split
. Esta función esencial garantiza una repartición balanceada y aleatoria de los datos.
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(features_scaled, target, test_size=0.3, random_state=42)
Aquí, especificamos que el 30% de los datos sean destinados a pruebas, mientras que el 70% restante se usará para entrenamiento. El uso de random_state
asegura replicabilidad en experimentos futuros.
Al seguir estos pasos, los datos están listos para aplicar PCA
y eventualmente ejecutar la regresión logística, lo que facilitará una correcta clasificación y análisis de las variables involucradas. ¡Continúa aprendiendo y perfeccionando tus habilidades en ciencia de datos!