Scikit-learn, a menudo llamado sklearn, es una potente biblioteca de código abierto de Python para el aprendizaje automático. Basada en NumPy, SciPy y Matplotlib, proporciona herramientas sencillas y eficientes para la minería de datos, el análisis de datos y el modelado. Tanto si eres principiante como experto, la intuitiva API de sklearn la hace ideal para construir modelos predictivos. Desde su lanzamiento en 2007, sklearn se ha convertido en una piedra angular del ecosistema de la ciencia de datos de Python, respaldado por una vibrante comunidad. Es compatible con el aprendizaje supervisado y no supervisado, lo que lo hace versátil para tareas como la clasificación, la regresión, la agrupación y la reducción dimensional.
¿Por qué elegir sklearn? Su interfaz consistente, extensa documentación y amplia gama de algoritmos -como regresión lineal, máquinas de vectores soporte y bosques aleatorios- permiten una rápida creación de prototipos e implementación. Esta guía se sumerge en las características principales de sklearn, aplicaciones prácticas y técnicas avanzadas para ayudarle a dominar el aprendizaje automático en Python.
Primeros pasos con Scikit-learn
Para empezar, instala sklearn usando pip:
bash pip install scikit-learn
Como alternativa, utilice conda:
bash conda install scikit-learn
Asegúrate de tener instalados NumPy, SciPy y Pandas, ya que son dependencias. Un entorno virtual (por ejemplo, a través de venv
o conda
) mantiene tus proyectos organizados. Verifique la instalación importando sklearn:
python importar sklearn print(sklearn.__version__)
Sklearn funciona perfectamente en Jupyter Notebooks, lo que facilita la experimentación. Descarga conjuntos de datos de muestra, como Iris o Boston Housing, directamente desde sklearn:
python from sklearn.datasets import load_iris iris = load_iris()
Conceptos básicos de Scikit-learn
La API de Sklearn gira en torno a tres conceptos clave: estimadores, predictores, y transformadores. Un estimador es cualquier objeto que aprende de los datos (por ejemplo, un clasificador). Los predictores proporcionan predicciones (por ejemplo, predecir()
), mientras que los transformadores preprocesan los datos (por ejemplo, escalando características). El flujo de trabajo sigue un patrón de ajuste-transformación-predicción:
python from sklearn.preprocessing import StandardScaler escalador = escaladorestándar() X_escalado = escalador.ajustar_transformación(X)
Preprocesamiento de datos es fundamental. Sklearn ofrece herramientas como Escalador estándar
para la normalización, OneHotEncoder
para variables categóricas, y SimpleImputer
para los valores que faltan. Utilice Tuberías
para encadenar los pasos de preprocesamiento y modelado:
python from sklearn.pipeline import Pipeline pipeline = Pipeline([('scaler', StandardScaler()), ('clf', LogisticRegression())])
Esto garantiza transformaciones coherentes durante la formación y las pruebas, reduciendo los errores.
Aprendizaje supervisado con sklearn
El aprendizaje supervisado implica datos etiquetados. Sklearn destaca en dos tipos: clasificación y regresión.
- Clasificación: Predecir categorías (por ejemplo, spam frente a no spam). Pruebe la regresión logística:
pitón
from sklearn.linear_model import LogisticRegression clf = LogisticRegression() clf.fit(X_entrenamiento, y_entrenamiento)
- y_pred = clf.predict(X_prueba)
- Otros algoritmos son las máquinas de vectores soporte (
VPC
) y Árboles de decisión (Clasificador DecisionTree
). Evalúe los modelos con métricas como la precisión o la puntuación F1: pitón
from sklearn.metrics import puntuación_precisión
print(puntuación_exactitud(y_prueba, y_pred))
- Regresión: Predecir valores continuos (por ejemplo, el precio de la vivienda). La regresión lineal es un elemento básico:
pitón
from sklearn.linear_model import LinearRegression reg = LinearRegression()
reg.fit(X_entrenamiento, y_entrenamiento)
- Opciones avanzadas como Ridge o Lasso gestionan la regularización. Mida el rendimiento con el error cuadrático medio (MSE):
pitón
from sklearn.metrics import error_medio_cuadrado
print(error_medio_cuadrado(y_prueba, y_pred))
Aprendizaje no supervisado con sklearn
El aprendizaje no supervisado encuentra patrones en datos no etiquetados. Sklearn permite la agrupación y la reducción dimensional.
- Agrupación: Agrupa puntos de datos similares. K-Means es popular:
pitón
from sklearn.cluster import KMeans kmeans = KMeans(n_clusters=3)
clusters = kmeans.fit_predict(X)
- DBSCAN maneja mejor los conglomerados no esféricos para conjuntos de datos complejos.
- Reducción de la dimensionalidad: Reducir las características conservando la información. El Análisis de Componentes Principales (ACP) es ampliamente utilizado:
pitón
from sklearn.decomposition import PCA pca = PCA(n_componentes=2)
X_reduced = pca.fit_transform(X)
- Visualice datos de alta dimensión con t-SNE para el análisis exploratorio.
Selección y evaluación de modelos
Para garantizar la solidez de los modelos, sklearn ofrece herramientas de validación y ajuste. Validación cruzada evalúa la generalización:
python from sklearn.model_selection import cross_val_score puntuaciones = puntuación_cruzada(clf, X, y, cv=5) print(puntuaciones.media())
Ajuste de hiperparámetros optimiza los modelos. Utiliza GridSearchCV:
python from sklearn.model_selection import GridSearchCV param_grid = {'C': [0.1, 1, 10]} grid = GridSearchCV(LogisticRegression(), param_grid, cv=5) grid.fit(X_entrenamiento, y_entrenamiento) print(rejilla.mejores_parámetros_)
La división de los datos en conjuntos de entrenamiento y prueba evita el sobreajuste:
python from sklearn.model_selection import dividir_prueba_entrenamiento X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
Funciones avanzadas y consejos
Los métodos de conjunto de Sklearn, como Random Forest y Gradient Boosting, combinan modelos para obtener un mejor rendimiento:
python from sklearn.ensemble import ClasificadorForestalAleatorio rf = ClasificadorForestalAleatorio(n_estimadores=100) rf.fit(X_entrenamiento, y_entrenamiento)
Manejar conjuntos de datos desequilibrados con técnicas como SMOTE (mediante desequilibrio-aprendizaje
) o pesos de clase. Guardar modelos para reutilizarlos:
python importar joblib joblib.dump(clf, 'modelo.pkl') clf = joblib.load('modelo.pkl')
Selección de características con SeleccioneKBest
o la eliminación recursiva de características (RFE
) mejora la eficacia.
Ejemplo real: Predicción del precio de la vivienda
Vamos a construir un modelo de regresión utilizando el conjunto de datos Boston Housing (o un conjunto de datos similar, ya que Boston está obsoleto). Cargar datos:
pitón
importar pandas como pd
from sklearn.datasets import fetch_california_housing
vivienda = fetch_california_vivienda()
X = pd.DataFrame(housing.data, columns=housing.feature_names)
y = vivienda.objetivo
Preprocesar y entrenar:
pitón
from sklearn.pipeline import Pipeline
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import Regresión_lineal
pipeline = Pipeline([('scaler', StandardScaler()), ('reg', LinearRegression())])
X_entrenamiento, X_prueba, y_entrenamiento, y_prueba = train_test_split(X, y, test_size=0,2)
pipeline.fit(X_entrenamiento, y_entrenamiento)
y_pred = pipeline.predict(X_test)
print(error_medio_cuadrado(y_prueba, y_pred))
Interprete los coeficientes para comprender la importancia de las características. Visualice las predicciones con Matplotlib.
Conclusión y recursos
Scikit-learn simplifica el aprendizaje automático con su API unificada y sus sólidas herramientas. Desde el preprocesamiento hasta el modelado avanzado, permite a los científicos de datos abordar problemas del mundo real de forma eficaz. Profundice más con documentación oficialo libros como Hands-On Machine Learning with Scikit-learn, Keras, and TensorFlow.
Carmatec ofrece un sistema robusto, escalable y de alto rendimiento Soluciones Python a medida para acelerar su transformación digital. Desde aplicaciones web hasta integraciones de IA, nuestros expertos Desarrolladores de Python crear soluciones inteligentes y preparadas para el futuro que impulsen el crecimiento empresarial.