¿Qué es Scikit-Learn (Sklearn)?

Autor

Bryan Clark

Senior Technology Advocate

¿Qué es scikit-learn (sklearn)?

Scikit-learn (a menudo escrito como scikit-learn o sklearn) es una biblioteca de machine learning de código abierto ampliamente utilizada para Python.

Scikit-learn es una de las bibliotecas de machine learning (ML) más utilizadas en la actualidad. Escrito en Python, este conjunto de herramientas de ciencia de datos optimiza la inteligencia artificial (IA) y el modelado estadístico con ML y una interfaz coherente. Incluye módulos esenciales para clasificación, regresión, agrupación en clústeres y reducción de dimensionalidad, todo construido sobre las bibliotecas NumPy, SciPy y Matplotlib. Implementar algoritmos de machine learning desde cero en Python puede ser una tarea computacionalmente intensiva y propensa a errores, que requiere experiencia en álgebra lineal, cálculo y optimización. Scikit-learn puede ser un recurso valioso para mitigar estos problemas.

Al aprovechar el sólido conjunto de redes neuronales previamente entrenadas y algoritmos de machine learning de scikit-learn, los recién llegados al campo pueden preprocesar conjuntos de datos de forma rápida y eficaz para aplicaciones de aprendizaje supervisado, como la regresión o la clasificación. Este paso se puede lograr sin necesidad de una comprensión profunda de conceptos matemáticos complejos, como álgebra lineal, cálculo o cardinalidad. Además, estas herramientas facilitan los procesos de aprendizaje no supervisados, incluida la agrupación en clúster y la reducción de la dimensionalidad. Estas herramientas permiten a los usuarios centrarse en insights de mayor nivel y en la creación de valor empresarial.

flujo de trabajo de scikit-learn
Diagrama de flujo de trabajo de scikit-learn

Componentes de scikit-learn

Numpy: una de las bibliotecas de Python cruciales para la computación científica. Proporciona un objeto de matriz y varios otros tipos de conjuntos de datos, junto con numerosas funciones para operaciones eficientes en matrices mientras se usa scikit-learn.

Scipy: un esfuerzo impulsado por la comunidad destinado a crear y difundir software de código abierto para fines de ciencia de datos en Python. Específicamente, su misión se centra en desarrollar y mantener el paquete Scipy, que está disponible gratuitamente bajo una licencia de código abierto (como una licencia de Berkeley Software Distribution, también conocida como BSD) y accesible públicamente a través de los repositorios de GitHub dentro de la organización Scipy.

Matplotlib: una biblioteca de trazado amplia y flexible para Python que permite a los científicos de datos transformar su conjunto de datos en gráficos informativos, tablas y otras visualizaciones. Al proporcionar un conjunto completo de herramientas y características, Matplotlib facilita el análisis, la exploración y la comunicación de datos.

Cython: amplía las capacidades de Python al permitir llamadas directas a funciones C y la declaración explícita de tipos de conjuntos de datos C en variables y atributos de clase. Esta capacidad facilita la generación de código C altamente optimizado a partir del código fuente de Cython para su uso dentro de sklearn.

Las últimas noticias tecnológicas, respaldadas por los insights de expertos

Manténgase al día sobre las tendencias más importantes e intrigantes de la industria sobre IA, automatización, datos y más con el boletín Think. Consulte la Declaración de privacidad de IBM.

¡Gracias! Ya está suscrito.

Su suscripción se entregará en inglés. En cada boletín, encontrará un enlace para darse de baja. Puede gestionar sus suscripciones o darse de baja aquí. Consulte nuestra Declaración de privacidad de IBM para obtener más información.

Preprocesamiento

Al trabajar con scikit-learn, es esencial asegurarse de que los datos de entrenamiento estén preparados y formateados correctamente antes de la entrada en el modelo de machine learning. Este proceso se conoce como preprocesamiento, y scikit-learn proporciona una gama de herramientas para ayudar a organizar el conjunto de datos. Una tarea común durante esta etapa en el preprocesamiento de scikit-learn es la normalización, donde las características numéricas se escalan para tener magnitudes similares mediante el uso de técnicas como MinMax Scaler o Standard Scaler. Si el conjunto de datos debe codificarse a partir de variables categóricas en representaciones numéricas, One-Hot Encoding (OHE) o LabelEncoder (LE) pueden hacerlos compatibles con el flujo de trabajo del modelo. OHE transforma los valores de datos categóricos en vectores binarios, lo que da como resultado una nueva columna para cada categoría con un 1 o 0 que indica la presencia o ausencia de la categoría. LE se utiliza en machine learning donde se asignan etiquetas numéricas a categories o clases. A diferencia de One-Hot Encoder, no crea nuevas columnas, sino que reemplaza los valores categóricos con valores enteros. Puede dar lugar a problemas, como la suposición de ordinalidad, y es menos común que OHE en las prácticas modernas de machine learning debido a sus limitaciones.

El preprocesamiento también puede implicar la selección de características, donde se puede elegir un subconjunto de características relevantes de scikit-learn para el entrenamiento del modelo. Este paso se puede realizar eliminando columnas irrelevantes o utilizando técnicas como la eliminación recursiva de características (RFE) o la información mutua (MI). La eliminación recursiva de características es una técnica utilizada para seleccionar las características más importantes de un conjunto de datos mediante la eliminación y el reentrenamiento iterativos de un modelo con un conjunto de características reducido, identificando en última instancia las características de mayor rendimiento. La información mutua mide la cantidad de información que contiene una variable aleatoria sobre otra, lo que le permite identificar qué características están altamente correlacionadas o son relevantes para un resultado objetivo. Este método es útil para seleccionar variables informativas. Además, manejar los valores faltantes es crucial y scikit-learn ofrece varios métodos para imputar estas brechas, como la imputación de media/mediana, relleno hacia adelante/relleno hacia atrás u otros enfoques más sofisticados.

Para realizar estas tareas, scikit-learn contiene una suite completa de herramientas de preprocesamiento. Las clases StandardScaler y MinMaxScaler son opciones populares para escalar características numéricas, mientras que OneHotEncoder es ideal para variables categóricas. Para la imputación de valores faltantes, la clase SimpleImputer proporciona una variedad de métodos para elegir. Al combinar estas herramientas de manera creativa, se puede crear un pipeline de preprocesamiento sólido para garantizar un mayor machine learning, rendimiento y precisión.

Por ejemplo, StandardScaler se puede utilizar para estandarizar las características numéricas de los datos, seguido de OneHotEncoder para transformar variables categóricas en representaciones numéricas. Para cada categoría única en una variable categórica, se crea una nueva característica binaria (0 o 1). Si una observación tiene la categoría "X", entonces para la característica correspondiente a "X", el valor se establece en 1 y todas las demás características se establecen en 0. Este proceso también puede denominarse extracción de características. Al encadenar estas operaciones, se puede preparar un conjunto de datos unificado que esté listo para el entrenamiento del modelo de machine learning.

AI Academy

Conviértase en un experto en IA

Obtenga el conocimiento para priorizar las inversiones en IA que impulsan el crecimiento del negocio. Comience hoy mismo con nuestra AI Academy gratuita y lidere el futuro de la IA en su organización.

Métricas

Scikit-learn proporciona una matriz de métricas integradas para problemas de clasificación y regresión, lo que ayuda en el proceso de toma de decisiones con respecto a la optimización o selección de modelos. En el contexto de machine learning y específicamente con scikit-learn, un modelo de regresión es un tipo de modelo predictivo que estima resultados continuos basados en características de entrada. A diferencia de los modelos de clasificación que predicen etiquetas discretas o categorías, los modelos de regresión se utilizan cuando se desea predecir una cantidad.

Para las tareas de clasificación, las métricas incluyen exactitud, precisión, recuperación, puntuación F1 y área bajo la curva ROC (AUC-ROC).

  • Precisión: mide la proporción de predicciones correctas del total de predicciones.

  • Precisión: se centra en las predicciones positivas, cuantificando cuántos elementos seleccionados son relevantes.

  • Recuperación: también conocida como sensibilidad, la recuperación evalúa la capacidad del modelo para encontrar todas las instancias relevantes.

  • Puntuación F1: la media armónica de precisión y recuperación, que proporciona un equilibrio entre estas dos métricas.

  • AUC-ROC: una métrica para evaluar el rendimiento de un modelo de clasificación donde el resultado es una probabilidad. Representa visualmente el equilibrio entre la tasa de verdaderos positivos (TPR) y la tasa de falsos positivos (FPR).

Para las tareas de regresión, las métricas de evaluación comunes en scikit-learn incluyen el error absoluto medio (MAE), el error cuadrático medio (RMSE), la puntuación R^2 y el error cuadrático medio (MSE).

  • MAE: mide la magnitud promedio de los errores sin considerar su dirección.

  • RMSE: la raíz cuadrada de la media de los errores al cuadrado, dando más peso a los errores más grandes.

  • PuntuaciónR2: también conocida como coeficiente de determinación, esta puntuación representa la proporción de la varianza en la variable dependiente que es predecible a partir de las variables independientes.

  • MSE: calcula la diferencia cuadrática promedio entre los valores predichos y reales, ofreciendo una medida de qué tan cerca están los ajustes a los puntos de datos.

Por ejemplo, en un escenario de evaluación de riesgo crediticio que utiliza scikit-learn, la métrica del área bajo la curva característica operativa del receptor (AUC-ROC) es crucial para evaluar el rendimiento del modelo. Esta métrica mide la capacidad del modelo para distinguir entre los prestatarios que incumplieron los préstamos y los que no, en función de características que incluyen ingresos, relación deuda-ingresos e historial laboral. Los valores de AUC-ROC más cercanos a 1 significan mejores modelos con mayores capacidades de diferenciación, lo que ayuda a los gerentes bancarios a determinar la idoneidad del modelo para las decisiones de préstamo o identificar áreas de mejora.

Las métricas de Scikit-learn permiten una evaluación exhaustiva de los modelos de machine learning en diferentes tareas y escenarios. Comprender estas métricas ayuda a interpretar el rendimiento del modelo, identificar posibles áreas de mejora y, en última instancia, seleccionar u optimizar el modelo de mejor rendimiento para un problema específico.

Casos de uso de Scikit-learn

Detección de correo electrónico no deseado: los algoritmos de clasificación de Scikit-learn, incluida la regresión logística o las máquinas de vectores de soporte (SVM), ayudan a filtrar los correos electrónicos no deseados clasificándolos como spam o no. Sklearn también tiene la capacidad de validación cruzada mediante el uso de cross_val_score para evaluar qué tan bien el clasificador Naïve Bayes puede distinguir entre correos electrónicos no deseados y no deseados. Sklearn utiliza la validación cruzada para entrenar y probar el modelo en 5 divisiones diferentes de sus datos. Esto proporciona una métrica de rendimiento promedio que le da una mejor idea de cómo podría funcionar el modelo en correos electrónicos nuevos y no vistos.

Predicción de los precios de la vivienda: Scikit-learn se puede utilizar para técnicas de regresión, como la regresión lineal, para estimar los precios de la vivienda en función de características como la ubicación, el tamaño y las comodidades, lo que ayuda a los compradores a tomar decisiones informadas. Scikit-learn se integra perfectamente con bibliotecas de visualización de datos como Plotly y Matplotlib. Esto permite las visualizaciones que mejoran la comprensión y la interpretación de los resultados de la regresión, lo que facilita una toma de decisiones mejor informada en un caso de uso como este.

Detección de la enfermedad de la hoja de haya: el algoritmo de árbol de decisión de scikit-Learn se puede utilizar en los bosques del este de EE. UU. para detectar la enfermedad de la hoja de haya (BLD). Al analizar factores como la edad del árbol, la ubicación y el estado de las hojas, el modelo puede identificar hayas en riesgo de BLD. Mediante el uso de machine learning y enfoques basados en datos, se pueden identificar los árboles más vulnerables y se pueden desplegar Estrategias para protegerlos.

Detección de anomalías: en ciberseguridad, el clúster k-means de scikit-learn se puede emplear para detectar patrones o comportamientos inusuales que podrían indicar posibles violaciones de seguridad. Al agrupar puntos de datos similares, k-means ayuda a identificar valores atípicos, puntos de datos que se desvían significativamente de los clústers establecidos, como posibles anomalías. Estas anomalías pueden indicar intentos de acceso no autorizados, actividades de malware u otras acciones maliciosas. La detección oportuna de tales anomalías, mediante sklearn, permite a los equipos de ciberseguridad investigar y mitigar las amenazas rápidamente, mejorando la postura de seguridad general de una organización.

Evaluación del riesgo crediticio: las instituciones financieras utilizan el algoritmo Random Forests de scikit-Learn para identificar las características más importantes, como el historial crediticio, los ingresos y la relación deuda-ingreso, al evaluar el riesgo crediticio para los prestatarios potenciales. Al clasificar la importancia de las variables con Random Forests, los prestamistas pueden tomar decisiones más informadas sobre a quién aprobar préstamos y a qué tasas de interés.

Investigación genómica: sklearn puede aplicar técnicas, incluido el análisis de componentes principales (PCA), para reducir la complejidad de los datos genéticos, lo que facilita la identificación de patrones significativos sin verse abrumado por el ruido.

Análisis de texto: cuando se trata de documentos o conjuntos de datos de gran tamaño, la reducción de la dimensionalidad ayuda a resumir y visualizar temas o temas clave de manera eficiente, lo cual es crucial para áreas como el análisis de sentimientos o los sistemas de recomendación de contenido.

Integración de LLM en scikit-learn

Scikit-learn se centra principalmente en algoritmos de machine learning, pero puede ampliarse para incorporar modelos de lenguaje de gran tamaño (LLM). Aunque originalmente se centró en modelos tradicionales, como árboles de decisión, máquinas de vectores de soporte y algoritmos de agrupamiento, el ecosistema flexible de scikit-learn permite la integración con LLM a través de configuraciones de interfaz de programación de aplicaciones (API). Esto incluye aprovechar modelos como la serie GPT de OpenAI y otras opciones aportadas por la comunidad, como los modelos Anthropic o AzureChatOpenAI.

El proceso de integración se agiliza de manera similar a proyectos como Auto-GPT, lo que lo hace accesible para desarrolladores familiarizados con el flujo de trabajo de scikit-learn. Scikit-learn proporciona recursos en su sitio de GitHub, incluyendo tutoriales que guían a los usuarios en la exploración de LLM de código abierto. Esta configuración facilita el despliegue del modelo LLM elegido a través de credenciales de API, lo que permite que scikit-learn se beneficie de capacidades de procesamiento de lenguaje natural mejoradas.

Requisitos

Una comprensión funcional de los entornos de Python, NumPy, SciPy, Pandas y Matplotlib es esencial para utilizar la eficiencia de scikit-learn, ya que forman la base del preprocesamiento de datos, la ingeniería de características y la visualización en los pipelines de aprendizaje automático. Estas bibliotecas proporcionan la base para el preprocesamiento de datos, la ingeniería de características y la visualización en pipelines de machine learning. Lafamiliaridad con sus capacidades permite el manejo eficiente de conjuntos de datos, la selección de características relevantes y la visualización de resultados, lo que en última instancia conduce a un mejor rendimiento del modelo.

Entorno de Python

 

Una instalación autónoma de Python y sus dependencias, que le permite aislar los requisitos de su proyecto y garantizar la coherencia entre diferentes proyectos. Se puede crear utilizando herramientas como conda o virtualenv.

Numpy

 

Una biblioteca que proporciona soporte para matrices y matrices grandes y multidimensionales, junto con una amplia gama de funciones matemáticas de alto rendimiento para manipularlas. Es un paquete fundamental para la computación científica en Python.

Scipy

 

Una biblioteca que se basa en NumPy y proporciona funciones para aplicaciones científicas y de ingeniería, como procesamiento de señales, álgebra lineal, optimización y estadísticas. Se utiliza ampliamente en campos como la física, la ingeniería y el análisis de datos.

Pandas

 

Una biblioteca que proporciona estructuras de datos y funciones para manejar de manera eficiente datos estructurados, incluidos datos tabulares, como hojas de cálculo y tablas SQL. Es particularmente útil para limpiar, filtrar, agrupar y fusionar datos.

Matplotlib

 

Una biblioteca de trazado que proporciona una amplia gama de herramientas de visualización, lo que le permite crear trazados, cuadros y gráficos 2D y 3D de alta calidad. A menudo se utiliza junto con NumPy y Pandas para visualizar datos científicos.

Desarrollos futuros

A medida que scikit-learn continúa evolucionando, se están realizando esfuerzos para ampliar sus capacidades con técnicas avanzadas de conjunto y enfoques de metaaprendizaje. Al aprovechar el poder de las redes neuronales junto con los algoritmos tradicionales, scikit-learn tiene como objetivo proporcionar un kit de herramientas que atiende a una gama cada vez mayor de desafíos de machine learning. Estos desarrollos prometen hacerlo aún más accesible para los profesionales que buscan aprovechar las tecnologías de punta en su trabajo.

Soluciones relacionadas
IBM® watsonx.ai

Entrene, valide, ajuste y despliegue IA generativa, modelos fundacionales y capacidades de machine learning con IBM watsonx.ai, un estudio empresarial de próxima generación para creadores de IA. Diseñe aplicaciones de IA en menos tiempo y con menos datos.

Explore watsonx.ai
Soluciones de inteligencia artificial

Ponga a trabajar la IA en su negocio con la experiencia en IA líder del sector y la cartera de soluciones de IBM a su lado.

Explore las soluciones de IA
Consultoría y servicios de inteligencia artificial (IA)

Los servicios de IA de IBM Consulting ayudan a reinventar la forma en que las empresas trabajan con IA para la transformación.

Explore los servicios de IA
Dé el siguiente paso

Con la IA, IBM Concert muestra insights cruciales sobre operaciones y proporciona recomendaciones de mejora específicas de las aplicaciones. Descubra cómo Concert puede hacer avanzar su negocio.

Explore Concert Explore las soluciones de automatización de procesos de negocio