Análisis con Python uso Biblioteca Scikit-learn en el Apredizaje Automatico
Uso Biblioteca Scikit-learn en el Apredizaje Automatico.ipynb
Análisis con Python uso Biblioteca Scikit-learn en
el Apredizaje Automatico
Paso 1:
Instalación de Scikit-learn
Primero, necesitas tener instalado
scikit-learn. Si aún no lo tienes, puedes instalarlo usando pip:
pip install -U scikit-learn
RESULTADO:
Requirement already satisfied: scikit-learn in
/usr/local/lib/python3.10/dist-packages (1.2.2)
Collecting scikit-learn
Downloading
scikit_learn-1.3.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
(10.8 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 10.8/10.8 MB 40.7 MB/s eta 0:00:00
Requirement already satisfied:
numpy<2.0,>=1.17.3 in /usr/local/lib/python3.10/dist-packages (from
scikit-learn) (1.23.5)
Requirement already satisfied: scipy>=1.5.0 in
/usr/local/lib/python3.10/dist-packages (from scikit-learn) (1.11.4)
Requirement already satisfied: joblib>=1.1.1 in
/usr/local/lib/python3.10/dist-packages (from scikit-learn) (1.3.2)
Requirement already satisfied:
threadpoolctl>=2.0.0 in /usr/local/lib/python3.10/dist-packages (from
scikit-learn) (3.2.0)
Installing collected packages: scikit-learn
Attempting
uninstall: scikit-learn
Found
existing installation: scikit-learn 1.2.2
Uninstalling
scikit-learn-1.2.2:
Successfully uninstalled scikit-learn-1.2.2
Successfully installed scikit-learn-1.3.2
Paso 2: Importar
las Librerías Necesarias
Importamos las librerías necesarias
para nuestro proyecto: Scikit-learn
import numpy as np
import pandas as pd
from
sklearn.model_selection import
train_test_split
from sklearn.linear_model
import
LinearRegression
from
sklearn.metrics import
mean_squared_error
Paso 3: Creación
del Dataset Ficticio
Vamos a crear un conjunto de datos
ficticio. Imaginemos que estamos tratando de predecir el rendimiento académico
de estudiantes basado en horas de estudio y asistencia a clases.
# Crear datos ficticios
np.random.seed(0)
horas_estudio = np.random.normal(5, 2, 100)
asistencia = np.random.normal(8, 2, 100)
rendimiento = horas_estudio * 2 + asistencia * 1.5 + np.random.normal(0, 2, 100)
# Crear DataFrame
df = pd.DataFrame({'Horas de Estudio': horas_estudio, 'Asistencia': asistencia, 'Rendimiento': rendimiento})
Paso 4: Dividir
los Datos en Entrenamiento y Prueba
Dividimos el dataset en un conjunto
de entrenamiento y otro de prueba:
X = df[['Horas de
Estudio', 'Asistencia']]
y = df['Rendimiento']
X_train, X_test, y_train, y_test =
train_test_split(X, y, test_size=0.2,
random_state=42)
Paso 5: Entrenar
un Modelo
Utilizaremos un modelo de regresión
lineal:
RESULTADO:
LinearRegression
LinearRegression()Paso 7: Uso
del Modelo
Podemos usar el modelo para
realizar predicciones con nuevos datos.
Descarga del Dataset y el Script
Voy a generar un archivo CSV con
los datos ficticios y el script de Python para que puedas descargarlos.
Primero, crearé y guardaré el
dataset en un archivo CSV.
El dataset ficticio está listo.
Puedes descargarlo haciendo clic en el siguiente enlace:
Paso 6: Evaluar el
Modelo
Evaluamos el modelo usando el
conjunto de prueba:
predicciones = modelo.predict(X_test)
mse = mean_squared_error(y_test, predicciones)
print(f"Error cuadrático medio: {mse}")
RESULTADO:
Error
cuadrático medio: 3.961581859387936
Paso 7: Uso del
Modelo
Podemos usar el modelo para
realizar predicciones con nuevos datos.
Descarga del Dataset y el Script
Voy a generar un archivo CSV con
los datos ficticios y el script de Python para que puedas descargarlos.
Primero, crearé y guardaré el
dataset en un archivo CSV.
El dataset ficticio está listo.
Puedes descargarlo haciendo clic en el siguiente enlace:
Descargar Dataset Ficticio
Ahora, voy a proporcionarte el
script de Python que puedes usar para trabajar con este dataset. Puedes copiar
y pegar este código en tu entorno de desarrollo Python:
import pandas as pd
from
sklearn.model_selection import
train_test_split
from
sklearn.linear_model import
LinearRegression
from
sklearn.metrics import
mean_squared_error
# Cargar datos
df = pd.read_csv('/dataset_ficticio_estudiantes.csv') #
Cambia esto por la ruta donde guardaste el archivo
# Dividir los datos en entrenamiento y prueba
X = df[['Horas de
Estudio', 'Asistencia']]
y = df['Rendimiento']
X_train, X_test, y_train, y_test =
train_test_split(X, y, test_size=0.2,
random_state=42)
# Entrenar un modelo
modelo = LinearRegression()
modelo.fit(X_train, y_train)
# Evaluar el modelo
predicciones = modelo.predict(X_test)
mse = mean_squared_error(y_test, predicciones)
print(f"Error cuadrático medio: {mse}")
RESULTADO:
Error
cuadrático medio: 3.961581859387936
Este script incluye todo lo
necesario para cargar el dataset, dividirlo en conjuntos de entrenamiento y
prueba, entrenar un modelo de regresión lineal y evaluar su rendimiento.
Conclusión
Scikit-learn es una herramienta
fundamental en el aprendizaje automático, especialmente para aquellos que se
inician en este campo o para proyectos que no requieren de procesamiento a gran
escala. Su simplicidad, junto con su poderosa funcionalidad, la hacen una
elección excelente para la educación, la investigación y el desarrollo de
prototipos en machine learning. Sin embargo, es importante tener en cuenta sus
limitaciones en términos de escalabilidad y manejo de grandes volúmenes de
datos en entornos de producción.
Reflexiones
Facilidad de Uso
Intuitiva y
Accesible:
Scikit-learn es notable por su facilidad de uso y su interfaz intuitiva.
Permite a los usuarios, incluso a aquellos con menos experiencia en
programación, desarrollar modelos de aprendizaje automático eficientes.
Documentación
Amplia:
La librería cuenta con una documentación extensa y ejemplos prácticos que
facilitan el aprendizaje y la aplicación de técnicas de machine learning.
Versatilidad y
Variedad de Herramientas
Amplia Gama de
Modelos:
Desde modelos lineales hasta algoritmos de clustering, pasando por reducción de
dimensionalidad, scikit-learn ofrece una amplia variedad de algoritmos.
Preprocesamiento y
Selección de Características: La librería incluye numerosas funciones
para el preprocesamiento de datos y la selección de características, lo cual es
crucial para mejorar el rendimiento de los modelos.
Comunidad y
Soporte
Fuerte Comunidad: Al ser una de las
librerías más populares, cuenta con una gran comunidad de usuarios y
desarrolladores. Esto se traduce en un soporte constante y una evolución
continua de la herramienta.
Colaboración y
Mejora Continua:
La naturaleza de código abierto de scikit-learn permite que investigadores y
desarrolladores colaboren en su mejora, asegurando que la librería se mantenga
al día con los avances más recientes en el campo del aprendizaje automático.
Rendimiento y
Escalabilidad
Eficiencia en
Datasets de Tamaño Moderado: Scikit-learn es muy eficiente para
trabajar con datasets de tamaño pequeño a moderado.
Limitaciones en
Escalabilidad y Grandes Datos: Aunque es una herramienta potente, puede
presentar limitaciones al manejar conjuntos de datos de gran tamaño o al
requerir procesamiento en tiempo real a gran escala.
Aplicabilidad en
Educación e Investigación
Ideal para Fines
Educativos y Experimentación: Dada su simplicidad y el amplio rango de
algoritmos que ofrece, es ideal para fines educativos y para la investigación
científica, como en tu caso para la elaboración de una tesis de maestría en
educación superior.
Promueve la
Comprensión del Aprendizaje Automático: Al trabajar con scikit-learn, se fomenta
la comprensión profunda de los fundamentos del aprendizaje automático, ya que
permite experimentar con distintos modelos y técnicas de una manera accesible.