10 asombrosas visualizaciones de aprendizaje automático que debe conocer en 2023

Yellowbrick para crear gráficos de aprendizaje automático con menos código

Foto por david pisnoy on Unsplash

La visualización de datos juega un papel importante en el aprendizaje automático.

Los casos de uso de visualización de datos en el aprendizaje automático incluyen:

  • Ajuste de hiperparámetros
  • Evaluación del desempeño del modelo
  • Validación de los supuestos del modelo
  • Encontrar valores atípicos
  • Selección de las características más importantes
  • Identificar patrones y correlaciones entre características

Las visualizaciones que están directamente relacionadas con las cosas clave anteriores en el aprendizaje automático se denominan visualizaciones de aprendizaje automático.

La creación de visualizaciones de aprendizaje automático a veces es un proceso complicado, ya que requiere una gran cantidad de código para escribir, incluso en Python. Pero, gracias al código abierto de Python ladrillo amarillo biblioteca, incluso se pueden crear visualizaciones complejas de aprendizaje automático con menos código. Esa biblioteca amplía la API de Scikit-learn y proporciona funciones de alto nivel para diagnósticos visuales que Scikit-learn no proporciona.

Hoy, analizaré en detalle los siguientes tipos de visualizaciones de aprendizaje automático, sus casos de uso y la implementación de Yellowbrick.

Visualizaciones de aprendizaje automático de Yellowbrick
-----------------------------
01. Trama del componente principal
02. Curva de validación
03. Curva de aprendizaje
04. Gráfico de codo
05. Trama de silueta
06. Trama de desequilibrio de clases
07. Parcela de residuos
08. Gráfico de error de predicción
09. Trama de distancia de Cook
10. Trama de importancia de características

Instalación

La instalación de Yellowbrick se puede realizar ejecutando uno de los siguientes comandos.

  • pepita paquete de instalación:
pip instalar ladrillo amarillo
  • Conda paquete de instalación:
instalación conda -c distritodatalabs ladrillo amarillo

usando ladrillo amarillo

Los visualizadores Yellowbrick tienen una sintaxis similar a Scikit-learn. Un visualizador es un objeto que aprende de los datos para producir una visualización. A menudo se usa con un estimador Scikit-learn. Para entrenar un visualizador, llamamos a su método fit().

Guardando la trama

Para guardar un gráfico creado con un visualizador Yellowbrick, llamamos al método show() de la siguiente manera. Esto guardará la trama como un archivo PNG en el disco.

visualizador.show(outpath="nombre_de_la_trama.png")

Uso

El gráfico de componentes principales visualiza datos de alta dimensión en un gráfico de dispersión 2D o 3D. Por lo tanto, esta gráfica es extremadamente útil para identificar patrones importantes en datos de alta dimensión.

Implementación de ladrillo amarillo

Crear esta trama con el método tradicional es complejo y requiere mucho tiempo. Primero debemos aplicar PCA al conjunto de datos y luego usar la biblioteca matplotlib para crear el diagrama de dispersión.

En su lugar, podemos usar la clase de visualizador PCA de Yellowbrick para lograr la misma funcionalidad. ¡Utiliza el método de análisis de componentes principales, reduce la dimensionalidad del conjunto de datos y crea el diagrama de dispersión con 2 o 3 líneas de código! Todo lo que necesitamos hacer es especificar algunos argumentos de palabras clave en la clase PCA().

Tomemos un ejemplo para comprender mejor esto. Aquí, usamos el cáncer de mama conjunto de datos (ver Citación al final) que tiene 30 funciones y 569 muestras de dos clases (Maligno y Benigno). Debido a la alta dimensionalidad (30 características) de los datos, es imposible trazar los datos originales en un diagrama de dispersión 2D o 3D a menos que apliquemos PCA al conjunto de datos.

El siguiente código explica cómo podemos utilizar el visualizador PCA de Yellowbrick para crear un diagrama de dispersión 2D de un conjunto de datos de 30 dimensiones.

(Código por autor)
Trama del componente principal: 2D (Imagen del autor)

También podemos crear un diagrama de dispersión 3D configurando projection=3en la clase PCA().

(Código por autor)
Trama del componente principal: 3D (Imagen del autor)

Los parámetros más importantes del visualizador PCA incluyen:

  • escala: booleano, por defecto True. Esto indica si los datos deben escalarse o no. Deberíamos escalar los datos antes de ejecutar PCA. Aprender más acerca de esta página.
  • proyección: int, el valor predeterminado es 2. Cuando projection=2, se crea un gráfico de dispersión 2D. Cuando projection=3, se crea un diagrama de dispersión 3D.
  • clases: lista, por defecto None. Esto indica las etiquetas de clase para cada clase en y. Los nombres de las clases serán las etiquetas de la leyenda.

Uso

La curva de validación traza la influencia de un soltero Hiperparámetro en el tren y conjunto de validación. Al observar la curva, podemos determinar las condiciones de ajuste excesivo, ajuste insuficiente y justo del modelo para los valores especificados del hiperparámetro dado. Cuando hay varios hiperparámetros para ajustar a la vez, no se puede usar la curva de validación. Instalado, puede usar la búsqueda en cuadrícula o la búsqueda aleatoria.

Implementación de ladrillo amarillo

Crear una curva de validación con el método tradicional es complejo y requiere mucho tiempo. En su lugar, podemos usar el visualizador ValidationCurve de Yellowbrick.

Para trazar una curva de validación en Yellowbirck, construiremos un clasificador de bosque aleatorio usando el mismo cáncer de mama conjunto de datos (ver Citación al final). Trazaremos la influencia de la máxima profundidad hiperparámetro en el modelo de bosque aleatorio.

El siguiente código explica cómo podemos utilizar el visualizador ValidationCurve de Yellowbrick para crear una curva de validación usando el cáncer de mama conjunto de datos

(Código por autor)
Curva de validación (Imagen del autor)

El modelo comienza a sobreajustarse después de la máxima profundidad valor de 6. Cuando max_depth=6, el modelo se ajusta muy bien a los datos de entrenamiento y también generaliza bien los nuevos datos no vistos.

Los parámetros más importantes del visualizador ValidationCurve incluyen:

  • estimador: Puede ser cualquier modelo de aprendizaje automático de Scikit-learn, como un árbol de decisiones, un bosque aleatorio, una máquina de vectores de soporte, etc.
  • nombre_parámetro: Este es el nombre del hiperparámetro que queremos monitorear.
  • rango_param: Esto incluye los valores posibles para nombre_parámetro.
  • CV: int, define el número de pliegues para la validación cruzada.
  • puntuación: cuerda, contiene el método de puntuación del modelo. Para la clasificación, la exactitud se prefiere.

Uso

La curva de aprendizaje traza los errores o precisiones de entrenamiento y validación contra el número de épocas o el número de instancias de entrenamiento. Puede pensar que tanto la curva de aprendizaje como la de validación parecen iguales, pero el número de iteraciones se representa en el eje x de la curva de aprendizaje, mientras que los valores del hiperparámetro se representan en el eje x de la curva de validación.

Los usos de la curva de aprendizaje incluyen:

  • La curva de aprendizaje se utiliza para detectar desajuste, sobreajuste y solo bien condiciones del modelo.
  • La curva de aprendizaje se utiliza para identificar sbaja convergencia, oscilante, oscilante con divergencia y convergencia adecuada escenarios al encontrar la tasa de aprendizaje óptima de una red neuronal o modelo ML.
  • La curva de aprendizaje se usa para ver cuánto se beneficia nuestro modelo al agregar más datos de entrenamiento. Cuando se usa de esta manera, el eje x muestra el número de instancias de entrenamiento.

Implementación de ladrillo amarillo

Crear la curva de aprendizaje con el método tradicional es complejo y requiere mucho tiempo. En su lugar, podemos usar el visualizador LearningCurve de Yellowbrick.

Para trazar una curva de aprendizaje en Yellowbirck, construiremos un clasificador de vector de soporte usando el mismo cáncer de mama conjunto de datos (ver Citación al final).

El siguiente código explica cómo podemos utilizar el visualizador LearningCurve de Yellowbrick para crear una curva de validación usando el cáncer de mama conjunto de datos

(Código por autor)
Curva de aprendizaje (Imagen del autor)

El modelo no se beneficiará de agregar más instancias de entrenamiento. El modelo ya ha sido entrenado con 569 instancias de entrenamiento. La precisión de la validación no mejora después de 175 instancias de entrenamiento.

Los parámetros más importantes del visualizador LearningCurve incluyen:

  • estimador: Puede ser cualquier modelo de aprendizaje automático de Scikit-learn, como un árbol de decisiones, un bosque aleatorio, una máquina de vectores de soporte, etc.
  • CV: int, define el número de pliegues para la validación cruzada.
  • puntuación: cuerda, contiene el método de puntuación del modelo. Para la clasificación, la exactitud se prefiere.

Uso

El gráfico Elbow se utiliza para seleccionar el número óptimo de conglomerados en el agrupamiento de K-Means. El modelo se ajusta mejor en el punto donde se produce el codo en el gráfico de líneas. El codo es el punto de inflexión en el gráfico.

Implementación de ladrillo amarillo

Crear el diagrama de codo con el método tradicional es complejo y lleva mucho tiempo. En su lugar, podemos usar KElbowVisualizer de Yellowbrick.

Para trazar una curva de aprendizaje en Yellowbirck, construiremos un modelo de agrupamiento de K-Means usando el iris conjunto de datos (ver Citación al final).

El siguiente código explica cómo podemos utilizar KElbowVisualizer de Yellowbrick para crear un diagrama de codo usando el iris conjunto de datos

(Código por autor)
Gráfico de codo (Imagen del autor)

La codo ocurre en k=4 (anotado con una línea discontinua). El gráfico indica que el número óptimo de conglomerados para el modelo es 4. En otras palabras, el modelo se ajusta bien con 4 conglomerados.

Los parámetros más importantes del KElbowVisualizer incluyen:

  • estimador: Instancia del modelo K-Means
  • k: int o tupla. Si es un número entero, calculará las puntuaciones de los grupos en el rango de (2, k). Si es una tupla, calculará puntuaciones para los grupos en el rango dado, por ejemplo, (3, 11).

Uso

El gráfico de silueta se utiliza para seleccionar el número óptimo de conglomerados en el agrupamiento de K-Means y también para detectar el desequilibrio de conglomerados. Este gráfico proporciona resultados muy precisos que el gráfico Elbow.

Implementación de ladrillo amarillo

Crear el gráfico de silueta con el método tradicional es complejo y requiere mucho tiempo. En su lugar, podemos usar SilhouetteVisualizer de Yellowbrick.

Para crear un diagrama de silueta en Yellowbirck, construiremos un modelo de agrupamiento de K-Means usando el iris conjunto de datos (ver Citación al final).

Los siguientes bloques de código explican cómo podemos utilizar SilhouetteVisualizer de Yellowbrick para crear gráficos de silueta usando el iris conjunto de datos con diferentes valores de k (número de grupos).

k = 2

(Código por autor)
Gráfico de silueta con 2 grupos (k=2), (Imagen del autor)

Al cambiar la cantidad de grupos en la clase KMeans(), podemos ejecutar el código anterior en diferentes momentos para crear gráficos de silueta cuando k=3, k=4 y k=5.

k = 3

Gráfico de silueta con 3 grupos (k=3), (Imagen del autor)

k = 4

Gráfico de silueta con 4 grupos (k=4), (Imagen del autor)

k = 5

Gráfico de silueta con 4 grupos (k=5), (Imagen del autor)

El diagrama de silueta contiene una forma de cuchillo por grupo. Cada forma de cuchillo está creada por barras que representan todos los puntos de datos en el grupo. Entonces, el ancho de la forma de un cuchillo representa el número de todas las instancias en el clúster. La longitud de la barra representa el coeficiente de silueta para cada instancia. La línea discontinua indica la puntuación de la silueta. Fuente: Agrupación práctica de K-Means (escrito por mi).

Una gráfica con anchos aproximadamente iguales de formas de cuchillas nos dice que los clústeres están bien equilibrados y tienen aproximadamente la misma cantidad de instancias dentro de cada clúster, una de las suposiciones más importantes en el agrupamiento de K-Means.

Cuando las barras en forma de cuchillo se extienden por la línea discontinua, los grupos están bien separados, otra suposición importante en el agrupamiento de K-Means.

Cuando k=3, los grupos están bien equilibrados y bien separados. Entonces, el número óptimo de clústeres en nuestro ejemplo es 3.

Los parámetros más importantes de SilhouetteVisualizer incluyen:

  • estimador: Instancia del modelo K-Means
  • colores: cuerda, una colección de colores utilizados para cada forma de cuchillo. 'yellowbrick' o una de las cadenas de mapas de colores de Matplotlib, como 'Accent', 'Set1', etc.

Uso

El gráfico de desequilibrio de clases detecta el desequilibrio de clases en la columna de destino en los conjuntos de datos de clasificación.

El desequilibrio de clases ocurre cuando una clase tiene muchas más instancias que la otra clase. Por ejemplo, un conjunto de datos relacionado con la detección de correo electrónico no deseado tiene 9900 instancias para la categoría "No es spam" y solo 100 instancias para la categoría "Spam". El modelo no logrará captar la clase minoritaria (la Correos no deseados categoría). Como resultado de esto, el modelo no será preciso para predecir la clase minoritaria cuando se produzca un desequilibrio de clases. Fuente: Los 20 principales errores de aprendizaje automático y aprendizaje profundo que ocurren en secreto detrás de escena (escrito por mi).

Implementación de ladrillo amarillo

Crear el gráfico de desequilibrio de clases con el método tradicional es complejo y requiere mucho tiempo. En su lugar, podemos usar el visualizador ClassBalance de Yellowbrick.

Para trazar un diagrama de desequilibrio de clases en Yellowbirck, usaremos el cáncer de mama conjunto de datos (conjunto de datos de clasificación, ver Citación al final).

El siguiente código explica cómo podemos utilizar el visualizador ClassBalance de Yellowbrick para crear un diagrama de desequilibrio de clase usando el cáncer de mama conjunto de datos

(Código por autor)
Trama de desequilibrio de clases (Imagen del autor)

Hay más de 200 instancias en el Maligno clase y más de 350 instancias en el Benigno clase. Por lo tanto, no podemos ver mucho desequilibrio de clases aquí, aunque las instancias no se distribuyen por igual entre las dos clases.

Los parámetros más importantes del visualizador ClassBalance incluyen:

  • etiquetas: lista, los nombres de las clases únicas en la columna de destino.

Uso

La gráfica de residuos en la regresión lineal se usa para determinar si los residuos (valores observados-valores pronosticados) no están correlacionados (independientes) mediante el análisis de la varianza de los errores en un modelo de regresión.

La gráfica de residuos se crea trazando los residuos contra las predicciones. Si existe algún tipo de patrón entre las predicciones y los residuos, se confirma que el modelo de regresión ajustado no es perfecto. Si los puntos están dispersos aleatoriamente alrededor del eje x, el modelo de regresión se ajusta bien a los datos.

Implementación de ladrillo amarillo

Crear la gráfica de residuos con el método tradicional es complejo y requiere mucho tiempo. En su lugar, podemos usar el visualizador ResidualsPlot de Yellowbrick.

Para trazar un diagrama de residuos en Yellowbirck, usaremos el Publicidad (Publicidad.csv, consulte nuestra página, Citación al final) conjunto de datos.

El siguiente código explica cómo podemos utilizar el visualizador ResidualsPlot de Yellowbrick para crear un gráfico de residuos usando el Publicidad conjunto de datos

(Código por autor)
Parcela de residuos (Imagen del autor)

Podemos ver claramente algún tipo de patrón no lineal entre las predicciones y los residuos en el gráfico de residuos. El modelo de regresión ajustado no es perfecto, pero es lo suficientemente bueno.

Los parámetros más importantes del visualizador ResidualsPlot incluyen:

  • estimador: Puede ser cualquier regresor de Scikit-learn.
  • historia: booleano, por defecto True. Ya sea para graficar el histograma de residuos, que se usa para verificar otra suposición: los residuos tienen una distribución aproximadamente normal con la media 0 y una desviación estándar fija.

Uso

La gráfica de error de predicción en la regresión lineal es un método gráfico que se utiliza para evaluar un modelo de regresión.

El gráfico de error de predicción se crea trazando las predicciones contra los valores objetivo reales.

Si el modelo hace predicciones muy precisas, los puntos deben estar en la línea de 45 grados. De lo contrario, los puntos se dispersan alrededor de esa línea.

Implementación de ladrillo amarillo

Crear el gráfico de error de predicción con el método tradicional es complejo y requiere mucho tiempo. En su lugar, podemos usar el visualizador PredictionError de Yellowbrick.

Para trazar un gráfico de error de predicción en Yellowbirck, usaremos el Publicidad (Publicidad.csv, consulte nuestra página, Citación al final) conjunto de datos.

El siguiente código explica cómo podemos utilizar el visualizador PredictionError de Yellowbrick para crear una gráfica de residuos usando el Publicidad conjunto de datos

(Código por autor)
Gráfico de error de predicción (Imagen del autor)

Los puntos no están exactamente en la línea de 45 grados, pero el modelo es lo suficientemente bueno.

Los parámetros más importantes del visualizador PredictionError incluyen:

  • estimador: Puede ser cualquier regresor de Scikit-learn.
  • identidad: booleano, por defecto True. Ya sea para dibujar la línea de 45 grados.

Uso

La distancia de Cook mide el impacto de las instancias en la regresión lineal. Las instancias con grandes impactos se consideran valores atípicos. Un conjunto de datos con una gran cantidad de valores atípicos no es adecuado para la regresión lineal sin preprocesamiento. Simplemente, la gráfica de distancia de Cook se utiliza para detectar valores atípicos en el conjunto de datos.

Implementación de ladrillo amarillo

Crear la gráfica de distancia de Cook con el método tradicional es complejo y requiere mucho tiempo. En su lugar, podemos usar el visualizador CooksDistance de Yellowbrick.

Para trazar un diagrama de distancia de Cook en Yellowbirck, usaremos el Publicidad (Publicidad.csv, consulte nuestra página, Citación al final) conjunto de datos.

El siguiente código explica cómo podemos utilizar el visualizador CooksDistance de Yellowbrick para crear un diagrama de distancia de Cook usando el Publicidad conjunto de datos

(Código por autor)
Trama de distancia de Cook (Imagen del autor)

Hay algunas observaciones que extienden la línea del umbral (roja horizontal). Son valores atípicos. Entonces, debemos preparar los datos antes de hacer cualquier modelo de regresión.

Los parámetros más importantes del visualizador CooksDistance incluyen:

  • dibujar_umbral: booleano, por defecto True. Ya sea para dibujar la línea de umbral.

Uso

El gráfico de importancia de características se utiliza para seleccionar las características importantes mínimas requeridas para producir un modelo ML. Dado que no todas las funciones contribuyen de la misma manera al modelo, podemos eliminar las funciones menos importantes del modelo. Eso reducirá la complejidad del modelo. Los modelos simples son fáciles de entrenar e interpretar.

El gráfico de importancia de características visualiza las importancias relativas de cada característica.

Implementación de ladrillo amarillo

Crear el gráfico de importancia de las características con el método tradicional es complejo y requiere mucho tiempo. En su lugar, podemos usar el visualizador FeatureImportances de Yellowbrick.

Para trazar un gráfico de importancia de características en Yellowbirck, usaremos el cáncer de mama conjunto de datos (ver Citación al final) que contiene 30 características.

El siguiente código explica cómo podemos utilizar el visualizador FeatureImportances de Yellowbrick para crear un gráfico de importancia de las características usando el cáncer de mama conjunto de datos

(Código por autor)
Trama de importancia de características (Imagen del autor)

No todas las 30 características en el conjunto de datos contribuyen mucho al modelo. Podemos eliminar las características con barras pequeñas del conjunto de datos y reajustar el modelo con las características seleccionadas.

Los parámetros más importantes del visualizador FeatureImportances incluyen:

  • estimador: Alquiler y venta Estimador Scikit-learn que admite feature_importances_ atributo o coef_ atributo.
  • relativo: booleano, por defecto True. Si trazar la importancia relativa como un porcentaje. Si False, se muestra la puntuación numérica sin procesar de la importancia de la característica.
  • absoluto: booleano, por defecto False. Si considerar solo la magnitud de los coeficientes evitando los signos negativos.
  1. Gráfico de componentes principales: ACP(), Uso: visualiza datos de alta dimensión en un gráfico de dispersión 2D o 3D que se puede usar para identificar patrones importantes en datos de alta dimensión.
  2. Curva de Validación: Curva de validación(), Uso — Traza la influencia de un soltero Hiperparámetro en el tren y conjunto de validación.
  3. Curva de aprendizaje: Curva de aprendizaje(), Uso — Detecta desajuste, sobreajuste y solo bien condiciones de un modelo, Identifica sbaja convergencia, oscilante, oscilante con divergencia y convergencia adecuada escenarios al encontrar la tasa de aprendizaje óptima de una red neuronal, muestra cuánto se beneficia nuestro modelo al agregar más datos de entrenamiento.
  4. Diagrama de codo: KElbowVisualizador(), Uso: selecciona el número óptimo de clústeres en el agrupamiento de K-Means.
  5. Parcela de silueta: Visualizador de silueta(), Uso: selecciona el número óptimo de clústeres en el agrupamiento de K-Means. Detecta el desequilibrio del clúster en el agrupamiento de K-Means.
  6. Diagrama de desequilibrio de clases: SaldoClase(), Uso: detecta el desequilibrio de las clases en la columna de destino en los conjuntos de datos de clasificación.
  7. Gráfica de residuos: Gráficoderesiduales(), Uso: determina si los residuos (valores observados-valores pronosticados) no están correlacionados (independientes) mediante el análisis de la varianza de los errores en un modelo de regresión.
  8. Gráfico de error de predicción: PredicciónError(), Uso: un método gráfico que se utiliza para evaluar un modelo de regresión.
  9. Gráfico de distancia de Cook: CocinerosDistancia(), Uso: detecta valores atípicos en el conjunto de datos en función de las distancias de las instancias de Cook.
  10. Gráfico de importancia de las características: CaracterísticasImportancias(), Uso: selecciona las funciones importantes mínimas requeridas en función de la importancia relativa de cada función para producir un modelo de ML.

Este es el final del post de hoy.

Por favor, hágamelo saber si tiene alguna pregunta o comentario.

Leer siguiente (Recomendado)

  • Yellowbrick para visualizar la importancia de las funciones utilizando una sola línea de código
  • Explicación de la curva de validación: trazar la influencia de un único hiperparámetro
  • Trazar la curva de aprendizaje para analizar el rendimiento del entrenamiento de una red neuronal
  • Agrupación práctica de K-Means

Apóyame como escritor

Espero que hayas disfrutado leyendo este artículo. Si desea apoyarme como escritor, por favor considere registrarse para una membresía para obtener acceso ilimitado a Medium. Solo cuesta $5 por mes y recibiré una parte de tu cuota de membresía.

¡Muchas gracias por su continuo apoyo! Nos vemos en el próximo artículo. ¡Feliz aprendizaje para todos!

Información del conjunto de datos de cáncer de mama

  • Cita: Dua, D. y Graff, C. (2019). Repositorio de aprendizaje automático de la UCI [http://archive.ics.uci.edu/ml]. Irvine, CA: Universidad de California, Facultad de Información y Ciencias de la Computación.
  • Fuente: https://archive.ics.uci.edu/ml/datasets/breast+cancer+wisconsin+(diagnostic)
  • Licencia: Dr. William H. Wolberg (Departamento de Cirugía General.
    Universidad de Wisconsin), Calle W. Nick (Departamento de Ciencias de la Computación.
    Universidad de Wisconsin) y Olvi L. Mangasarian (Departamento de Ciencias de la Computación de la Universidad de Wisconsin) posee los derechos de autor de este conjunto de datos. Nick Street donó este conjunto de datos al público bajo el Licencia de Creative Commons Atribución Internacional (CC BY 4.0). Puede obtener más información sobre los diferentes tipos de licencias de conjuntos de datos esta página.

Información del conjunto de datos de iris

  • Cita: Dua, D. y Graff, C. (2019). Repositorio de aprendizaje automático de la UCI [http://archive.ics.uci.edu/ml]. Irvine, CA: Universidad de California, Facultad de Información y Ciencias de la Computación.
  • Fuente: https://archive.ics.uci.edu/ml/datasets/iris
  • Licencia: ra pescador posee los derechos de autor de este conjunto de datos. Michael Marshall donó este conjunto de datos al público bajo el Licencia de dedicación de dominio público de Creative Commons (CC0). Puede obtener más información sobre los diferentes tipos de licencias de conjuntos de datos esta página.

Información del conjunto de datos publicitarios

Referencias

Diez visualizaciones asombrosas de aprendizaje automático que deberías conocer en 10 Publicado nuevamente desde la fuente https://towardsdatascience.com/2023-amazing-machine-learning-visualizations-you-should-know-in-10-2023?source=rss—-528282940582f7cf60c5620— 9 a través de https://towardsdatascience.com/feed

<!–

->

Sello de tiempo:

Mas de Consultores Blockchain