Introducción a Scikit-Learn: la herramienta esencial de aprendizaje automático en Python

En el ámbito de aprendizaje automático usando PitónScikit-Learn es una herramienta indispensable. Como biblioteca líder para el aprendizaje automático en Python, Scikit-Learn ofrece un conjunto completo de algoritmos y herramientas para abordar una amplia gama de problemas. Desde la clasificación y la regresión hasta la agrupación y la reducción de la dimensionalidad, Scikit-Learn permite a los científicos de datos crear modelos de datos robustos y eficientes. modelos de aprendizaje automáticoYa sea que sea un principiante que da sus primeros pasos en el mundo del aprendizaje automático o un profesional experimentado que busca ampliar su conjunto de herramientas, este artículo sirve como una introducción concisa e informativa a Scikit-Learn.

Contenido esconder

¿Qué es Scikit-Learn?

Descripción general de Scikit-Learn

Scikit-Learn es una biblioteca de aprendizaje automático potente y popular en Python. Proporciona una amplia gama de algoritmos y herramientas para el análisis de datos y el entrenamiento de modelos. Con su interfaz fácil de usar y eficiente, Scikit-Learn es ampliamente utilizado tanto por principiantes como por científicos de datos experimentados para resolver problemas complejos de aprendizaje automático.

Características principales

Scikit-Learn ofrece varias características clave que lo convierten en una herramienta esencial para el aprendizaje automático en Python:

  • Eficiente y escalable:Scikit-Learn está diseñado para ser eficiente en términos computacionales y puede manejar grandes conjuntos de datos con facilidad. Aprovecha el poder de bibliotecas numéricas como NumPy y SciPy para garantizar una ejecución eficiente.
  • Amplia gama de algoritmos:Scikit-Learn ofrece un conjunto completo de algoritmos de aprendizaje automático, incluidos métodos de aprendizaje supervisados y no supervisados. Estos algoritmos abarcan desde métodos clásicos como la regresión lineal y la regresión logística hasta técnicas más avanzadas como los bosques aleatorios y las máquinas de vectores de soporte.
  • Preprocesamiento de datos e ingeniería de características:Scikit-Learn ofrece una variedad de herramientas para el preprocesamiento de datos y la ingeniería de características. Proporciona funciones para manejar datos faltantes, escalar características, codificar variables categóricas y dividir datos en conjuntos de prueba y entrenamiento.
  • Selección y evaluación de modelos:Scikit-Learn ofrece herramientas sólidas para la selección y evaluación de modelos, incluidas la validación cruzada y la búsqueda en cuadrícula. Estas técnicas ayudan a encontrar los mejores hiperparámetros para un modelo determinado y a evaluar su rendimiento mediante diversas métricas de evaluación.
  • Integración con otras bibliotecas:Scikit-Learn se integra perfectamente con otras bibliotecas populares de Python, como NumPy, Pandas y Matplotlib. Esto permite a los usuarios aprovechar la rica funcionalidad de estas bibliotecas junto con Scikit-Learn para la manipulación de datos, la visualización y la evaluación de modelos.

Algoritmos soportados

Scikit-Learn admite una amplia gama de algoritmos de aprendizaje automático para tareas de aprendizaje supervisadas y no supervisadas. Algunos de los algoritmos populares compatibles con Scikit-Learn incluyen:

  • Regresión lineal:Un algoritmo simple pero poderoso para el análisis de regresión, que modela la relación entre la variable dependiente y una o más variables independientes.
  • Regresión logística:Un algoritmo de clasificación que modela la probabilidad de un resultado binario o multiclase basado en una combinación lineal de características de entrada.
  • Árboles de decisión:Un algoritmo versátil que construye un modelo tipo árbol para tomar decisiones basadas en un conjunto de condiciones o reglas.
  • Máquinas de vectores de soporte (SVM):Un algoritmo poderoso que realiza la clasificación al encontrar el mejor hiperplano para separar diferentes clases en el espacio de características.
  • Bayes ingenuo:Un algoritmo probabilístico basado en el teorema de Bayes, comúnmente utilizado para la clasificación de texto y el filtrado de spam.
LEER  Una falla en Windows Update expone los sistemas a exploits zombi

Además de estos algoritmos, Scikit-Learn también admite varios algoritmos de agrupamiento, técnicas de reducción de dimensionalidad y métodos de conjunto, como bosques aleatorios y potenciación de gradiente.

Instalación y configuración

Requisitos del sistema

Antes de instalar Scikit-Learn, asegúrese de que su sistema cumpla con los siguientes requisitos:

  • Python 3.x (Scikit-Learn no es compatible con Python 2.x)
  • NumPy y SciPy (Scikit-Learn depende de estas bibliotecas para realizar cálculos numéricos eficientes)
  • Matplotlib (opcional, para visualización de datos)

Instalación de Scikit-Learn

Para instalar Scikit-Learn, puede utilizar el administrador de paquetes de Python, pip. Abra su terminal o símbolo del sistema y ejecute el siguiente comando:

pip instala scikit-learn

Si prefiere utilizar Anaconda, puede instalar Scikit-Learn utilizando el administrador de paquetes conda:

Conda instala scikit-learn

Scikit-Learn ahora está listo para usarse en su entorno Python.

Importación de Scikit-Learn

Para comenzar a utilizar Scikit-Learn, debe importar los módulos necesarios. En Python, puede importar Scikit-Learn mediante la siguiente instrucción:

importar sklearn

Una vez importado, puede acceder a las distintas clases y funciones proporcionadas por Scikit-Learn para realizar tareas de aprendizaje automático.

Representación de datos en Scikit-Learn

Características y variables objetivo

En Scikit-Learn, los datos se representan normalmente como una matriz o arreglo bidimensional, donde cada fila representa una muestra u observación individual, y cada columna representa una característica o atributo de esa muestra. La variable objetivo, que pretendemos predecir, suele representarse como un arreglo o vector unidimensional independiente.

Matrices Numpy y DataFrames de Pandas

Scikit-Learn puede trabajar con matrices NumPy y Pandas DataFrames como entrada. Las matrices NumPy son eficientes y se utilizan ampliamente para cálculos numéricos, mientras que los Pandas DataFrames ofrecen funciones adicionales para la manipulación y el análisis de datos.

Para convertir un Pandas DataFrame en una matriz NumPy, puede utilizar el valores atributo:

importar pandas como pd importar numpy como np

Crear un DataFrame

df = pd.DataFrame({'característica1': [1, 2, 3], 'característica2': [4, 5, 6], 'objetivo': [0, 1, 0]})

Convertir DataFrame en una matriz NumPy

datos = df.valores

Características independientes y variables objetivo

X = datos[:, :-1] # Características y = datos[:, -1] # Objetivo

Manejo de datos faltantes

Los conjuntos de datos del mundo real suelen contener valores faltantes, lo que puede afectar negativamente el rendimiento de los modelos de aprendizaje automático. Scikit-Learn ofrece varias estrategias para gestionar los datos faltantes, incluidas la imputación y la eliminación.

Un método popular es la imputación de media, donde los valores faltantes se reemplazan con la media de los valores disponibles para esa característica. Scikit-Learn proporciona la SimpleImputadora clase para imputar valores faltantes:

desde sklearn.impute importar SimpleImputer

Crear un objeto imputador

imputador = SimpleImputer(estrategia='media')

Ajuste el imputador a los datos

imputador.fit(X)

Imputar valores faltantes

X_imputado = imputado.transform(X)

Manejo de variables categóricas

Las variables categóricas, que pueden adoptar una cantidad limitada de valores, deben codificarse en un formato numérico antes de poder usarse en algoritmos de aprendizaje automático. Scikit-Learn ofrece varias técnicas para codificar variables categóricas, como la codificación one-hot y la codificación de etiquetas.

La codificación one-hot crea características binarias para cada categoría, lo que representa la ausencia o presencia de esa categoría. Scikit-Learn proporciona Codificador OneHot clase para codificación one-hot:

desde sklearn.preprocessing importar OneHotEncoder

Crear un objeto codificador

codificador = OneHotEncoder()

Ajuste el codificador a los datos

codificador.fit(X)

Codificar variables categóricas

X_encoded = codificador.transform(X)

La codificación de etiquetas asigna una etiqueta numérica única a cada categoría. Scikit-Learn proporciona la Codificador de etiquetas clase para codificación de etiquetas:

desde sklearn.preprocessing importar LabelEncoder

Crear un objeto codificador

codificador = LabelEncoder()

Ajuste el codificador a los datos

codificador.fit(y)

Codificar variable categórica

y_encoded = codificador.transform(y)

Preprocesamiento de datos

Limpieza de datos

La limpieza de datos implica eliminar o corregir errores, inconsistencias o valores atípicos en el conjunto de datos. Esto puede mejorar la calidad y la confiabilidad de las predicciones del modelo.

Scikit-Learn ofrece varias técnicas para la limpieza de datos, como el manejo de datos faltantes (como se explicó anteriormente), la detección de valores atípicos y la reducción de ruido. Estas técnicas se pueden aplicar antes o después del escalado de características, según los requisitos específicos del problema.

Escalado de datos

El escalado de características es un paso crucial en muchos algoritmos de aprendizaje automático, ya que garantiza que todas las características tengan una escala similar. Esto puede evitar que algunas características dominen sobre otras y mejorar el rendimiento y la convergencia del modelo.

Scikit-Learn ofrece varios métodos para escalar características, entre ellos la estandarización y la normalización. La estandarización escala cada característica de modo que tenga una media de 0 y una desviación estándar de 1, mientras que la normalización escala cada característica a un rango específico, generalmente entre 0 y 1.

desde sklearn.preprocessing importar StandardScaler, MinMaxScaler

Crear un objeto escalador

escalador = StandardScaler()

Ajuste el escalador a los datos

escalador.fit(X)

Escalar las funciones

X_scaled = escalador.transform(X)

Codificación de características

Además de manejar variables categóricas, la codificación de características también puede implicar la transformación y combinación de características existentes para crear nuevas características informativas. Este proceso se conoce a menudo como ingeniería de características y es crucial para mejorar el rendimiento y la interpretabilidad de los modelos de aprendizaje automático.

Scikit-Learn ofrece varias técnicas para la codificación de características, como características polinómicas, términos de interacción y transformaciones de Fourier. Estas técnicas se pueden utilizar para crear relaciones no lineales y capturar interacciones de orden superior entre características.

División de datos para entrenamiento y pruebas

Para evaluar el rendimiento de un modelo de aprendizaje automático, es esencial contar con conjuntos de datos separados para el entrenamiento y las pruebas. Scikit-Learn proporciona prueba_del_entrenamiento_división función para dividir los datos en un conjunto de entrenamiento y un conjunto de prueba.

desde sklearn.model_selection importar train_test_split

Dividir los datos en conjuntos de entrenamiento y prueba

X_train, X_test, y_train, y_test = tren_prueba_división(X, y, tamaño_prueba=0.2, estado_aleatorio=42)

El tamaño de prueba El parámetro especifica la proporción de los datos que se utilizarán para la prueba y la estado aleatorio El parámetro garantiza la reproducibilidad fijando la semilla aleatoria.

LEER  Las mejores cámaras de seguridad inalámbricas para exteriores

Aprendizaje supervisado

Descripción general del aprendizaje supervisado

El aprendizaje supervisado es un tipo de aprendizaje automático en el que el modelo aprende a partir de datos de entrenamiento etiquetados para realizar predicciones o tomar decisiones. Implica proporcionar características de entrada y sus valores objetivo correspondientes al modelo, lo que le permite aprender la relación entre las características y el objetivo.

Scikit-Learn ofrece una amplia gama de algoritmos de aprendizaje supervisado para tareas de regresión y clasificación. Estos algoritmos utilizan diferentes técnicas matemáticas y estadísticas para aprender los patrones y relaciones subyacentes en los datos.

Regresión lineal

La regresión lineal es un algoritmo simple pero potente para el análisis de regresión, cuyo objetivo es predecir una variable objetivo continua en función de una o más características de entrada. Supone una relación lineal entre las características y la variable objetivo.

Scikit-Learn proporciona la Regresión lineal clase para regresión lineal:

desde sklearn.linear_model importar LinearRegression

Crear un objeto de regresión lineal

modelo = Regresión lineal()

Ajustar el modelo a los datos de entrenamiento

modelo.fit(tren_X, tren_Y)

Hacer predicciones sobre nuevos datos

y_pred = modelo.predict(X_test)

Regresión logística

La regresión logística es un algoritmo de clasificación que modela la probabilidad de un resultado binario o multiclase en función de una combinación lineal de características de entrada. Se utiliza ampliamente para problemas de clasificación binaria, como la detección de correo basura o el diagnóstico de enfermedades.

Scikit-Learn proporciona la Regresión logística clase para regresión logística:

desde sklearn.linear_model importar LogisticRegression

Crear un objeto de regresión logística

modelo = Regresión logística()

Ajustar el modelo a los datos de entrenamiento

modelo.fit(tren_X, tren_Y)

Hacer predicciones sobre nuevos datos

y_pred = modelo.predict(X_test)

Árboles de decisión

Los árboles de decisión son algoritmos versátiles que construyen un modelo similar a un árbol para tomar decisiones basadas en un conjunto de condiciones o reglas. Se utilizan comúnmente tanto para tareas de regresión como de clasificación y pueden manejar variables tanto numéricas como categóricas.

Scikit-Learn proporciona la Regresor del árbol de decisiones clase para la regresión del árbol de decisión y la Clasificador de árbol de decisiones Clase para la clasificación del árbol de decisión:

desde sklearn.tree importar DecisionTreeRegressor, DecisionTreeClassifier

Crear un objeto de árbol de decisión

modelo = DecisionTreeRegressor() # Para regresión

o

modelo = DecisionTreeClassifier() # Para clasificación

Ajustar el modelo a los datos de entrenamiento

modelo.fit(tren_X, tren_Y)

Hacer predicciones sobre nuevos datos

y_pred = modelo.predict(X_test)

Máquinas de vectores de soporte

Las máquinas de vectores de soporte (SVM) son algoritmos potentes que realizan la clasificación al encontrar el mejor hiperplano para separar las diferentes clases en el espacio de características. Pueden manejar problemas de clasificación tanto lineales como no lineales y son particularmente eficaces en espacios de alta dimensión.

Scikit-Learn proporciona la CVS clase para clasificación de vectores de soporte:

Desde sklearn.svm importar SVC

Crear un objeto clasificador de vectores de soporte

modelo = SVC()

Ajustar el modelo a los datos de entrenamiento

modelo.fit(tren_X, tren_Y)

Hacer predicciones sobre nuevos datos

y_pred = modelo.predict(X_test)

Bayes ingenuo

Naive Bayes es un algoritmo probabilístico basado en el teorema de Bayes y se utiliza habitualmente para la clasificación de texto y el filtrado de spam. Supone que todas las características son condicionalmente independientes dada la etiqueta de clase y estima la probabilidad de cada clase en función de las características observadas.

Scikit-Learn proporciona varios clasificadores Bayesianos ingenuos, incluidos GaussianoNB para funciones continuas y MultinomialNB Para características discretas:

desde sklearn.naive_bayes importar GaussianNB, MultinomialNB

Crear un objeto clasificador Bayes ingenuo

modelo = GaussianNB() # Para características continuas

o

modelo = MultinomialNB() # Para características discretas

Ajustar el modelo a los datos de entrenamiento

modelo.fit(tren_X, tren_Y)

Hacer predicciones sobre nuevos datos

y_pred = modelo.predict(X_test)

Aprendizaje no supervisado

Descripción general del aprendizaje no supervisado

El aprendizaje no supervisado es un tipo de aprendizaje automático en el que el modelo aprende a partir de datos no etiquetados para descubrir patrones o estructuras ocultas. Implica proporcionar características de entrada sin ningún valor objetivo correspondiente, lo que permite que el modelo aprenda la distribución subyacente de los datos.

Scikit-Learn ofrece una amplia gama de algoritmos de aprendizaje no supervisado para tareas como agrupamiento, reducción de dimensionalidad y detección de anomalías. Estos algoritmos utilizan diferentes técnicas, como mediciones de distancia y modelado probabilístico, para extraer información significativa de los datos.

Análisis de componentes principales (PCA)

El análisis de componentes principales (PCA) es una técnica de reducción de dimensionalidad que tiene como objetivo proyectar los datos en un espacio de menor dimensión, conservando la mayor cantidad posible de información original. Esto se logra al encontrar las direcciones (componentes principales) a lo largo de las cuales los datos varían más.

Scikit-Learn proporciona la PCA Clase para PCA:

Desde sklearn.decomposition importar PCA

Crear un objeto PCA

pca = PCA(n_componentes=2)

Ajuste el modelo PCA a los datos

pca.ajuste(X)

Transformar los datos al espacio de menor dimensión

X_transformado = pca.transform(X)

Agrupamiento de k-medias

El agrupamiento k-Means es un algoritmo popular para dividir los datos en k grupos, donde cada muestra pertenece al centro del grupo más cercano. Su objetivo es minimizar la suma de cuadrados dentro del grupo, agrupando de manera eficaz las muestras similares.

Scikit-Learn proporciona la KMeans Clase para agrupamiento k-medias:

desde sklearn.cluster importar KMeans

Crear un objeto de agrupamiento k-Means

kmeans = KMeans(n_clústeres=3)

Ajuste el modelo k-Means a los datos

kmeans.fit(X)

Predecir las etiquetas de los clústeres para los datos

etiquetas = kmeans.predict(X)

Agrupamiento jerárquico

La agrupación jerárquica es un algoritmo aglomerativo que comienza con cada muestra como un grupo individual y fusiona sucesivamente los grupos más similares hasta que se cumple una condición de terminación. El resultado es una jerarquía de grupos, que se puede visualizar como una estructura en forma de árbol denominada dendrograma.

Scikit-Learn proporciona la Aglomeración aglomerativa clase para agrupamiento jerárquico:

desde sklearn.cluster importar AgglomerativeClustering

Crear un objeto de agrupamiento aglomerativo

jerárquico = Aglomeración aglomerativa (n_clusters=3)

Ajuste el modelo de agrupamiento aglomerativo a los datos

ajuste jerárquico(X)

Predecir las etiquetas de los clústeres para los datos

etiquetas = etiquetas.jerárquicas_

Selección y evaluación de modelos

Validación cruzada

La validación cruzada es una técnica ampliamente utilizada para estimar el rendimiento de un modelo de aprendizaje automático con datos no vistos. Implica dividir los datos disponibles en múltiples subconjuntos o pliegues, entrenar el modelo en un subconjunto de los pliegues y evaluar su rendimiento en el pliegue restante.

Scikit-Learn proporciona la puntuación de val_cruzado Función para realizar la validación cruzada:

desde sklearn.model_selection importar cross_val_score

Realizar una validación cruzada en un modelo

puntuaciones = cross_val_score(modelo, X, y, cv=5)

El currículum vitae El parámetro especifica la cantidad de pliegues que se utilizarán para la validación cruzada. La función devuelve una matriz de puntuaciones, una para cada pliegue.

Búsqueda en cuadrícula

La búsqueda en cuadrícula es una técnica para ajustar hiperparámetros, en la que se define una cuadrícula de valores de hiperparámetros y se entrena y evalúa el modelo para cada combinación de hiperparámetros. Ayuda a encontrar el conjunto óptimo de hiperparámetros que maximiza el rendimiento del modelo.

LEER  Perspectivas de ciberseguridad para proteger sus datos personales y profesionales

Scikit-Learn proporciona la Búsqueda de cuadrícula de CV Clase para realizar búsquedas en cuadrícula:

desde sklearn.model_selection importar GridSearchCV

Definir una cuadrícula de hiperparámetros para buscar

param_grid = {'C': [1, 10, 100], 'gamma': [0,1, 0,01, 0,001]}

Realizar una búsqueda de cuadrícula en un modelo

grid_search = GridSearchCV(modelo, param_grid, cv=5)

Ajuste el modelo de búsqueda de cuadrícula a los datos

grid_search.fit(tren_X, tren_Y)

Obtenga los mejores hiperparámetros y el rendimiento correspondiente

mejores_parámetros = búsqueda_cuadrícula.mejores_parámetros_ mejor_puntuación = búsqueda_cuadrícula.mejor_puntuación_

Métricas de evaluación

Las métricas de evaluación se utilizan para medir el rendimiento de un modelo de aprendizaje automático. Scikit-Learn ofrece una amplia gama de métricas de evaluación para tareas de regresión, clasificación y agrupamiento. Estas métricas ayudan a evaluar la precisión, exactitud, recuperación y otros aspectos del rendimiento del modelo.

Algunas métricas de evaluación comúnmente utilizadas en Scikit-Learn incluyen el error cuadrático medio (MSE), la precisión, la exactitud, la recuperación, la puntuación F1 y la puntuación de silueta.

Métodos de conjunto

Harpillera

Bagging, abreviatura de bootstrap gregating, es un método de conjunto que combina varios modelos entrenando cada modelo en un subconjunto de datos de entrenamiento muestreado aleatoriamente. Ayuda a reducir el sobreajuste y a mejorar la estabilidad y la solidez de las predicciones.

Scikit-Learn proporciona la Regresor de embolsado y Clasificador de bolsas clases para embolsado:

de sklearn.ensemble importar BaggingRegressor, BaggingClassifier

Crear un objeto regresor de bagging

embolsado = BaggingRegressor(estimador_base=modelo, n_estimadores=10)

Crear un objeto clasificador de ensacado

ensacado = BaggingClassifier(estimador_base=modelo, n_estimadores=10)

Impulsando

El boosting es otro método de conjunto que combina varios modelos débiles en un modelo fuerte mediante el ajuste iterativo de los pesos de las muestras de entrenamiento en función del rendimiento de los modelos anteriores. Se centra en las muestras que son difíciles de clasificar y mejora gradualmente el rendimiento del modelo.

Scikit-Learn proporciona la Regresor AdaBoost y Clasificador AdaBoost Clases para potenciar:

desde sklearn.ensemble importar AdaBoostRegressor, AdaBoostClassifier

Crear un objeto regresor AdaBoost

Impulso = AdaBoostRegressor(estimador_base=modelo, n_estimadores=10)

Crear un objeto clasificador AdaBoost

potenciación = AdaBoostClassifier(estimador_base=modelo, n_estimadores=10)

Bosques aleatorios

Random Forests es un método de conjunto que combina múltiples árboles de decisión, donde cada árbol se entrena con un subconjunto de características seleccionado aleatoriamente. Reduce el sobreajuste y mejora la precisión y la solidez de las predicciones.

Scikit-Learn proporciona la Regresor de bosque aleatorio y Clasificador aleatorio de bosques clases para bosques aleatorios:

desde sklearn.ensemble importar RandomForestRegressor, RandomForestClassifier

Crear un objeto regresor de bosque aleatorio

bosque = RandomForestRegressor(n_estimators=10)

Crear un objeto clasificador de bosque aleatorio

bosque = RandomForestClassifier(n_estimators=10)

Aumento de gradiente

El aumento de gradiente es un método de conjunto que combina varios modelos débiles, como árboles de decisión, en un modelo sólido minimizando iterativamente una función de pérdida. Construye el modelo por etapas, donde cada nuevo modelo corrige los errores de los modelos anteriores.

Scikit-Learn proporciona la Regresor potenciador de gradiente y Clasificador de refuerzo de gradiente Clases para potenciar gradientes:

desde sklearn.ensemble importar GradientBoostingRegressor, GradientBoostingClassifier

Crear un objeto regresor potenciador de gradiente

Impulso = GradientBoostingRegressor(n_estimators=10)

Crear un objeto clasificador potenciador de gradiente

Impulso = GradientBoostingClassifier(n_estimators=10)

Reducción de dimensionalidad

Análisis discriminante lineal (LDA)

El análisis discriminante lineal (LDA) es una técnica de reducción de dimensionalidad que tiene como objetivo encontrar un espacio de menor dimensión que maximice la separación entre diferentes clases. Esto se logra proyectando los datos sobre un conjunto de vectores discriminantes lineales.

Scikit-Learn proporciona la Análisis discriminante lineal clase para LDA:

de sklearn.discriminant_analysis importar LinearDiscriminantAnalysis

Crear un objeto LDA

lda = Análisis discriminante lineal (n_componentes=2)

Ajuste el modelo LDA a los datos

lda.fit(X, y)

Transformar los datos al espacio de menor dimensión

X_transformado = lda.transform(X)

Integración de vecinos estocásticos distribuidos en t (t-SNE)

La incrustación estocástica de vecinos distribuida en t (t-SNE) es una técnica de reducción de dimensionalidad que tiene como objetivo preservar la estructura local y global de los datos en un espacio de menor dimensión. Esto se logra modelando la distribución de probabilidad de similitudes por pares entre puntos de datos.

Scikit-Learn proporciona la Encefalopatía traumática transmisible Clase para t-SNE:

desde sklearn.manifold importar TSNE

Crear un objeto t-SNE

tsne = TSNE(n_componentes=2)

Ajuste el modelo t-SNE a los datos

tsne.fit(X)

Transformar los datos al espacio de menor dimensión

X_transformado = tsne.transform(X)

Guardar y cargar modelos

Serialización y deserialización

La serialización es el proceso de convertir un modelo a un formato serializado que se puede almacenar en un archivo o transferir a través de una red. La deserialización es el proceso inverso de reconstrucción del modelo a partir del formato serializado.

Scikit-Learn proporciona la conservar en vinagre Módulo para serialización y deserialización:

pepinillos de importación

Serializar el modelo en un archivo

con open('model.pkl', 'wb') como archivo: pickle.dump(model, file)

Deserializar el modelo desde un archivo

con open('model.pkl', 'rb') como archivo: model = pickle.load(file)

Pickle y Joblib

Pickle es un módulo integrado en Python que puede serializar y deserializar objetos, incluidos los modelos de Scikit-Learn. Sin embargo, puede que no sea la opción más eficiente para modelos o conjuntos de datos grandes.

Scikit-Learn también proporciona la biblioteca de trabajos módulo, que es una alternativa más eficiente a pickle para serialización y deserialización:

desde sklearn.externals importar joblib

Serializar el modelo en un archivo

joblib.dump(modelo, 'modelo.pkl')

Deserializar el modelo desde un archivo

modelo = joblib.load('modelo.pkl')

El biblioteca de trabajos El módulo admite el paralelismo y proporciona un mejor rendimiento para grandes tareas de computación científica.

Guardar y cargar modelos

Una vez que se entrena y evalúa un modelo, suele ser necesario guardarlo para usarlo o implementarlo en el futuro. Scikit-Learn ofrece varias opciones para guardar y cargar modelos, incluidas la serialización y deserialización mediante pickle o joblib.

Al guardar el modelo, puede evitar la necesidad de volver a entrenarlo cada vez que desee usarlo. Esto resulta especialmente útil cuando se trabaja con grandes conjuntos de datos o modelos computacionalmente costosos.

Para guardar un modelo entrenado, puede utilizar el ahorrar método proporcionado por el objeto modelo:

modelo.save(“modelo.h5”)

Para cargar un modelo guardado, puede utilizar el modelo de carga función de la biblioteca correspondiente:

desde tensorflow.keras.models importar load_model

modelo = cargar_modelo(“modelo.h5”)

Asegúrese de importar la biblioteca adecuada y especificar la ruta de archivo correcta al guardar y cargar modelos.

En conclusión, Scikit-Learn es una biblioteca de aprendizaje automático completa y potente en Python que ofrece una amplia gama de algoritmos y herramientas para el análisis de datos y el entrenamiento de modelos. Con su interfaz fácil de usar, implementación eficiente y amplia documentación, Scikit-Learn es la opción ideal tanto para principiantes como para científicos de datos experimentados. Si sigue las instrucciones de instalación y configuración, comprende la representación de datos, las técnicas de preprocesamiento, los algoritmos de aprendizaje supervisado y no supervisado, los métodos de selección y evaluación de modelos, los métodos de conjunto, las técnicas de reducción de dimensionalidad y los procesos de serialización y deserialización, estará bien equipado para abordar diversas tareas de aprendizaje automático utilizando Scikit-Learn.

es_ESEspañol