FACETS Google para dataset de aprendizaje automático

0

Una herramienta de código abierto de Google para aprender fácilmente patrones de grandes cantidades de datos

Más datos con algoritmos inteligentes. , pero mejores datos superan más datos: Peter Norwig

Ha habido mucho alboroto en cuanto a cómo una gran cantidad de datos de entrenamiento puede tener un impacto tremendo en los resultados de un modelo de aprendizaje automático. Sin embargo, junto con la cantidad de datos, también es la calidad lo que es fundamental para construir un sistema ML poderoso y robusto.

Después de todo, “GARBAGE IN: GARBAGE OUT”, es decir, lo que obtiene del sistema será una representación de lo que alimenta en el sistema.

Un conjunto de datos de Machine Learning consiste a veces en puntos de datos que van desde miles hasta millones, que a su vez pueden contener Cientos o miles de características. Además, los datos del mundo real son confusos y comprenden valores faltantes, datos no balanceados, valores atípicos, etc.

Por lo tanto, es imperativo que limpiemos los datos antes de continuar con la construcción del modelo. La visualización de los datos puede ayudar a localizar estas irregularidades y señalar los lugares donde los datos realmente necesitan limpieza.

La visualización de datos ofrece una visión general de todos los datos independientemente de su cantidad y ayuda a realizar EDA de manera rápida y precisa.

FACETS

El significado del diccionario de facetas se reduce a un aspecto particular o característica de algo. De la misma manera, la herramienta FACETS ayuda a comprender las diversas características de los datos y los explora sin tener que codificarlos explícitamente.

Facets es una herramienta de visualización de código abierto lanzada por Google bajo el PAREJA (People + AI Research) iniciativa. Esta herramienta nos ayuda a comprender y analizar los conjuntos de datos de Machine Learning.

Las facetas constan de dos visualizaciones, las cuales ayudan a desglosar los datos y proporcionan una gran información sin mucho trabajo al final del usuario.

  • Descripción general de las facetas

Como su nombre indica, esta visualización ofrece una visión general de todo el conjunto de datos y da una idea de la forma de cada característica de los datos. Facets Overview resume las estadísticas de cada función y compara los conjuntos de datos de entrenamiento y prueba.

  • Facetas Dive

Esta función ayuda al usuario a profundizar en la función / observación individual de los datos para obtener más información. Ayuda a explorar de forma interactiva grandes cantidades de puntos de datos a la vez.

Estas visualizaciones se implementan como Polímero componentes web, respaldados por Typescript y se pueden incrustar fácilmente en cuadernos Jupyter o páginas web.

Uso e instalación

Hay dos maneras en que FACETS se puede usar con datos:

Aplicación web

Se puede usar directamente desde su página de demostración cuyo enlace se encuentra incrustado a continuación. Facetas: visualizaciones para conjuntos de datos de ML

Este sitio web permite que cualquiera pueda visualizar sus propios conjuntos de datos directamente en el navegador sin necesidad de instalar o configurar ningún software, sin que los datos salgan de su computadora.

Dentro de Jupyter Notebooks / Colaboratory

También es posible utilizar FACETS dentro de Jupyter Notebook / Colaboratoty. Esto proporciona más flexibilidad ya que todo el EDA y el modelado se pueden realizar en una sola notebook. Consulte su Github Repository para obtener detalles completos sobre la instalación. Sin embargo, más adelante en el artículo, veremos cómo comenzar con FACETS en colab.

Datos

Aunque puede trabajar con los datos proporcionados en la página de demostración, trabajaré con otro conjunto de datos. Haré EDA con FACETS en Cargar conjunto de datos de predicción . La declaración del problema es predecir si un solicitante al que una empresa le ha otorgado un préstamo, lo reembolsará o no. Es un ejemplo bastante conocido en la comunidad ML.

Se puede acceder al conjunto de datos que ya se ha dividido en conjunto de entrenamiento y pruebas desde aquí . Carguemos nuestros datos en el Colab.

 importemos los pandas como pd 
 train = pd.read_csv ('train.csv') 
 test = pd.read_csv ('test .csv')

Ahora nos permite comprender cómo podemos usar la Descripción general de facetas con estos datos.

Descripción general de los FACETS

La Descripción general brinda una rápida comprensión de la distribución de valores entre las diversas características de los datos. . La distribución también se puede comparar de forma instantánea a través de los conjuntos de datos de entrenamiento y pruebas. Si existe alguna anomalía en los datos, simplemente se elimina de los datos allí y entonces.

Parte de la información a la que se puede acceder fácilmente a través de esta función es:
  • Estadísticas como media, mediana y desviación estándar
  • Valores mínimos y máximos de una columna
  • Datos faltantes
  • Valores que tienen valores cero
  • Ya que es posible ver las distribuciones en todos los conjuntos de datos de prueba, podemos confirmar fácilmente si los datos de entrenamiento y prueba siguen las mismas distribuciones .

Se podría argumentar que podemos lograr estas tareas fácilmente con Pandas y por qué deberíamos invertir en otra herramienta. Esto es cierto y tal vez no sea necesario cuando tenemos pocos puntos de datos con características mínimas. Sin embargo, el escenario cambia cuando estamos hablando de un gran conjunto de datos donde resulta difícil analizar cada punto de datos en varias columnas.

Google Colaboaratory hace que sea muy fácil de trabajar ya que no necesitamos instalar cosas adicionales . Al escribir unas líneas de código, nuestro trabajo se realiza.

 # ¡Clone las facetas del repositorio de github para obtener acceso al código de generación de estadísticas de características de python 
! Git clone  https://github.com/pair- code / facets.git 

Para calcular las estadísticas de características, necesitamos usar la función GenericFeatureStatisticsGenerator () que se encuentra en un script de Python.

 
 # Agrega la ruta al código de generación de estadísticas de características. 
 import sys 
 sys.path.insert (0, ' / content / facets / facets_overview / python / ')
 # Crea las estadísticas de las características de los conjuntos de datos y lo ajusta. 
 import base64 
 de generic_feature_statistics_generator import GenericFeatureStatisticsGenerator
 gfsg = GenericFeatureStatisticsGenerator () [)Parpetrol039;tabla':tren}
 {' nombre ';: 'prueba ' ;, ' tabla ' ;: prueba}]) 
 protostr = base64.b64encode (proto.SerializeToString ()). Decode ("utf-8")

Ahora, con las siguientes líneas de código, podemos mostrar fácilmente la visualización en nuestro cuaderno.

 # Mostrar la visualización de la vista general de facetas para estos datos 
 de IPython.core.display visualización de importación, HTML
 HTML_TEMPLATE = "" "<link rel =" import "href ="  https://raw.githubusercontent.com /PAIR-code/facets/master/facets-dist/facets-jupyter.html "> 
        
        
           document.querySelector (" # elem "). ProtoInput =" {protostr} "; 
        " "" 
 html = HTML_TEMPLATE.format (protostr = protostr) 
 display (HTML (html))

Tan pronto como escribe Shift + Enter, esta agradable visualización interactiva:

Aquí, vea la Vista general de las facetas de las cinco características numéricas del conjunto de datos Predicción de préstamos. Las características están ordenadas por no uniformidad, con la característica con la distribución más uniforme en la parte superior. Los números en rojo indican posibles puntos problemáticos, en este caso, las funciones numéricas con un alto porcentaje de valores establecidos en 0. Los histogramas de la derecha le permiten comparar las distribuciones entre los datos de entrenamiento (azul) y los datos de prueba (naranja). [19659055] La visualización anterior muestra una de las ocho características categóricas del conjunto de datos. Las características están ordenadas por distancia de distribución, con la característica con el mayor sesgo entre los conjuntos de datos de entrenamiento (azul) y de prueba (naranja) en la parte superior.

FACETS Dive

Facets Dive proporciona una fácil – para personalizar, una interfaz intuitiva para explorar la relación entre los puntos de datos a través de las diferentes características de un conjunto de datos. Con Facets Dive, usted controla la posición, el color y la representación visual de cada punto de datos en función de sus valores de características. Si los puntos de datos tienen imágenes asociadas, las imágenes se pueden usar como representaciones visuales.

Para usar la visualización Dive, los datos deben transformarse en formato JSON.

 # Mostrar la visualización Dive para el entrenamiento 
 de IPython.core.display pantalla de importación, HTML
  jsonstr = train.to_json (orient = 'registros') 
 HTML_TEMPLATE = "" "<link rel = "import" href = " https://raw.githubusercontent.com/PAIR-code/facets/master/facets-dist/facets-jupyter.html "> 
        
        
           var data = {jsonstr} ; 
 document.querySelector ("# elem"). Data = data; 
         "" "
 html = HTML_TEMPLATE.format (jsonstr = jsonstr) 
 display (HTML (html))

Después de ejecutar el código, debería poder ver esto:

Visualización de la inmersión en las facetas

Ahora podemos realizar fácilmente el Análisis Univariado y Bivariado y veamos algunos de los resultados obtenidos:

Análisis Univariado

Él Veremos la variable objetivo, es decir, Estado_de_Estado y otras características categóricas como género, estado civil, estado laboral e historial de crédito, de forma independiente. Del mismo modo, puede jugar con otras características también.

Inferencias:

  • La mayoría de los solicitantes en el conjunto de datos son hombres.
  • Una vez más, la mayoría de los solicitantes están casados ​​y han pagado sus deudas. 19659037] Además, la mayoría de los solicitantes no tienen dependientes y son graduados de áreas semiurbanas.

Ahora vamos a visualizar las variables ordinales, es decir, Dependientes, Área de educación y propiedad.

Se pueden hacer las siguientes inferencias a partir de las parcelas de barras anteriores :

  • La mayoría de los solicitantes no tienen dependientes.
  • La ​​mayoría de los solicitantes son graduados.
  • La ​​mayoría de los solicitantes son del área de Semiurban.

Ahora puede continuar su análisis con los datos numéricos .

Análisis bivariado

Encontraremos la relación entre la variable objetivo y las variables categóricas independientes.

Se puede inferir de los gráficos de barras anteriores que:

  • La proporción de solicitantes casados ​​es mayor para la aprobación
  • La ​​distribución de solicitantes con 1 o 3 dependientes es similar en ambas categorías de Loan_Status.
  • Parece que las personas con historial de crédito como 1 tienen más probabilidades de obtener la aprobación de sus préstamos.
  • La ​​proporción de La aprobación de préstamos en el área semiurbana es mayor en comparación con la de las áreas rurales o urbanas.

Conclusión

FACETS proporciona un entorno fácil e intuitivo para realizar EDA para conjuntos de datos y nos ayuda a obtener resultados significativos. El único inconveniente es que actualmente solo funciona con Chrome .

Antes de finalizar este artículo, veamos también un dato curioso que resalta cómo un pequeño error de etiquetado humano en CIFAR-10 conjunto de datos fue capturado utilizando el buceo FACETS. Al analizar el conjunto de datos, se dio cuenta de que una imagen de una rana se había etiquetado incorrectamente como un gato. Bueno, esto es realmente un logro, ya que sería una tarea imposible para un ojo humano.

Fuente


Visualización de conjuntos de datos de aprendizaje a máquina con FACETS de Google. fue publicado originalmente en Hacia la ciencia de datos en Medium, donde las personas continúan la conversación resaltando y respondiendo a esta historia.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *