La forma de los datos

Featured

Un dato aislado por si solo no puede transmitirnos información suficiente acerca de algún hecho, pero un conjunto de datos entorno al hecho si puede hacerlo.  Los datos agrupados y ordenados pueden representarse gráficamente y tomar diferentes formas, tales como curvas o histogramas, por ejemplo.  La información reflejada de esta manera puede mostrarnos patrones identificables a simple vista que van desde la identificación de lotes de productos defectuosos hasta el comportamiento de los ciclos de nuestro modelo de negocio.

Un conjunto suficientemente grande de datos tiende a estar normalmente distribuido siempre y cuando los datos medidos no presenten cambios muy dispersos.  La forma que adoptan estos datos es la de una curva de distribución normal.

Distribución normal

La forma que adoptan los datos nos ayuda a explorarlos, a orientar el análisis de estos y a conocer las características generales que presenta el fenómeno registrado.  Por ejemplo a primera vista la gráfica de distribución normal nos indica que los datos que se encuentran en los extremos son datos sobresalientes ya que nos pueden indicar comportamientos fuera de serie sobre el hecho que estamos revisando y volverse particularmente interesantes.  Así mismo los datos localizados bajo la parte central de la curva nos habla de cual es el comportamiento considerado normal, para un hecho dado, y las condiciones que deben prevalecer para que ocurra con frecuencia.

Existen otras formas que toman los datos y que nos dicen diferentes cosas acerca de los acontecimientos registrados como por ejemplo los diferentes tipos de histogramas:

Tipos de histogramas

Otro manera en la que la forma de los datos nos ayuda es, identificando patrones.  Por ejemplo en lo que se conoce como “patrones de computo en la nube” para identificar los tipos de carga de trabajo que ocurren en un modelo de negocio determinado para saber como utilizará sus recursos de computo en la nube.

Patrones de computo en la nube

Espero que esta reflexión acerca de la forma de los datos sirva como un primer acercamiento a los métodos estadísticos que nos son útiles cuando revisamos un conjunto de datos (de cualquier tamaño) de primera instancia y con el mínimo de información acerca de ellos.

Hasta la próxima y mientras tanto déjense guiar por los datos. 8)

Posted in Uncategorized

Herramientas para datos

Featured

Herramientas para datos

Se puede decir que las herramientas son el conjunto de instrumentos que se utilizan para desempeñar un oficio o trabajo determinado en donde los instrumentos pueden ser tangibles o intangibles. Así el termino herramientas puede referirse a utensilios físicos, programas, conceptos, etcétera. Las herramientas nos sirven para facilitar una tarea determinada y mejorar la forma en que se realiza una actividad. Existen herramientas muy específicas para distintos ámbitos y el caso de las personas que trabajan con datos no es la excepción.

Y para trabajar con los datos en sus diferentes formas, en cada parte de su ciclo, necesitamos herramientas de diferentes tipos, por ejemplo:

  • de extracción
  • de exploración
  • de transformación
  • de carga
  • de visualización
  • de presentación
  • de almacenamiento
  • de consulta
  • de clasificación
  • de análisis

Podemos organizar estos tipos de herramientas en las siguientes categorías:

  • Herramientas generales.
  • Herramientas de desarrollo, ambientes integrados de desarrollo (IDEs) y editores de código.
  • Herramientas de administración y movimiento de datos.
  • Herramientas de aprendizaje de máquina (Machine Learning).
  • Herramientas de conocimiento profundo (Deep Learning).
  • Herramientas de exploración, análisis y visualización de datos (Data Analytics)
  • Plataforma de macro datos (Big Data).

Durante el ciclo de vida de un proyecto de ciencia de datos, la cantidad de datos que se maneja hace necesario utilizar una combinación de herramientas que permiten el adecuado aprovechamiento de estos.

Data Science LifecycleFigura 1. Ciclo de vida de un proyecto de ciencia de datos

Las herramientas para datos que se suelen utilizar pueden ser de código abierto o código propietario. A continuación, muestro una lista parcial de algunas de estas herramientas:

Nombre Uso
Microsoft R Open Microsoft R Open, antes conocido como Revolution R Open (RRO), es la distribución mejorada de R de Microsoft Corporation. Es una plataforma completa de código abierto para el análisis estadístico y ciencia de datos.
Microsoft R Server Developer Edition Microsoft R Server es un servidor de clase empresarial para alojar y gestionar cargas de trabajo paralelas y distribuidas de procesos R en servidores y clusters
Anaconda distribución Python Es la plataforma abierta de ciencia de datos impulsada por Python
Jupyter notebook (con kernels R y Python) Es una aplicación web de código abierto que permite crear y compartir documentos que contienen código en vivo, ecuaciones, visualizaciones y texto explicativo.
R R es un lenguaje y un entorno para la computación estadística y los gráficos.
Python 2.7 & 3.5 Es un lenguaje de programación que permite el trabajo rápido y la integración de sistemas efectivamente.
Julia Un lenguaje de programación dinámico de alto nivel y alto rendimiento para la informática numérica.
PySpark Es la API Spark Python que expone el modelo de programación Spark a Python.
Sparkmagic Es un conjunto de herramientas para trabajar interactivamente con clústeres remotos de Spark a través de Livy, un servidor Spark REST, en los Jupyter notebooks.
SparkR Es un paquete de R que proporciona una interfaz ligera para usar Apache Spark de R.
Jupyter Hub Con JupyterHub puede crear un Hub multiusuario que genera, gestiona y delega múltiples instancias del servidor Jupyter notebook (IPython notebook) de un solo usuario.
Julia Pro Es la forma rápida y gratuita de instalar julia en tu computadora de escritorio o portátil y comenzar a usarla ahora mismo. Incluye compilador, depurador, profiler, entorno de desarrollo integrado, más de 100 paquetes revisados, visualización y trazado de datos.
Bases de datos relacionales Una base de datos es un medio de almacenar información de tal manera que la información puede ser recuperada de ella. (MS SQL Server, MySQL, Oracle, PostgreSQL, DB2, SQL Anywhere, Firebird, SQLite, MaxDB)
Herramientas de bases de datos Es un término colectivo para herramientas, utilidades y asistentes que se pueden utilizar para realizar tareas de administración de bases de datos. (SQL Server Management Studio, SQuirreL SQL, SQL Server Integration Services, bcp, sqlcmd, SQLPLUS, TOAD, SQL Developer, SQL Maestro, manejadores ODBC/JDBC)
Visual Studio Community Edition Un completo IDE extensible y gratuito para crear aplicaciones modernas para Windows, Android e iOS, además de aplicaciones web y servicios en la nube.
Visual Studio Code Editor de código multiplataforma de código abierto.
Git Git es un sistema de control de versión distribuido libre y de código abierto diseñado para manejar todo, desde proyectos pequeños a muy grandes con rapidez y eficiencia.
Git Bash Lenguaje de programación de consola para ejecutar Git desde la línea de comando
RStudio Desktop Es un entorno de desarrollo integrado (IDE) para R
RStudio Server Le permite proporcionar una interfaz basada en navegador para una versión de R que se ejecuta en un servidor Linux remoto
PyCharm Entorno integrado de desarrollo para desarrolladores profesionales de Python
Atom Editor de texto multiplataforma
Juno (Julia IDE) Entorno integrado de desarrollo para el lenguaje de programación Julia
Vim y Emacs Editores de texto de Unix
OpenJDK Es la versión libre de la plataforma de desarrollo Java bajo concepto de lenguaje orientado a objetos
Azure CLI Línea de comandos de Azure para administrar recursos de Azure. Puede usarla en el explorador con Azure Cloud Shell o puede instalarla en macOS, Linux y Windows y ejecutarla desde la línea de comandos
Azure Storage Explorer Es una aplicación autónoma de Microsoft que le permite trabajar fácilmente con datos de almacenamiento Azure en Windows, macOS y Linux.
Pentaho Soluciones completas de integración y análisis de datos que convierten la información en conocimientos.
Informatica Permite la administración integral de todos los datos, independientemente del tamaño, el formato o la plataforma.
MicrosoftML Paquete que proporciona algoritmos de aprendizaje rápidos y escalables de última generación y transformaciones para R
Vowpal Wabbit Sistema rápido de machine learning que soporta técnicas tales como en línea, hashing, allreduce, reducciones, learning2search, activo y aprendizaje interactivo.
XGBoost Herramienta que implementa rápida y adecuadamente un árbol potenciado (boosted tree)
Weka Software en Java para efectuar minería de datos visualmente y machine learning.
LightGBM Es un marco de impulso de gradiente que utiliza algoritmos de aprendizaje basado en árboles.
H2O Es una plataforma de aprendizaje profundo de código abierto muy utilizada.
Rattle (R Analytical Tool To Learn Easily) Herramienta que facilita el aprendizaje de analítica de datos y machine learning en R, utilizando una interfaz gráfica de usuario para la exploración de datos y modelado que genera código en R automáticamente.
Computational Network Toolkit (CNTK) Conjunto de herramientas de software para aprendizaje profundo de Microsoft Research
MXNet Es un marco de aprendizaje profundo diseñado tanto para la eficiencia como para la flexibilidad.
Tensorflow Es una biblioteca de software de código abierto para el cálculo numérico utilizando gráficos de flujo de datos.
Caffe & Caffe2 Es un marco de aprendizaje profundo ligero, modular y escalable
Torch Es un marco de computación científica con un amplio apoyo para los algoritmos de aprendizaje de la máquina que pone las GPU en primer lugar.
Theano Es una librería de Python que permite definir, optimizar y evaluar expresiones matemáticas que involucran arreglos multidimensionales de manera eficiente.
Keras Es una API de redes neuronales de alto nivel, escrita en Python y capaz de ejecutarse sobre TensorFlow, CNTK o Theano.
NVidia Digits Puede usarse para entrenar rápidamente la red neuronal profunda altamente precisa para tareas de clasificación de imágenes, segmentación y detección de objetos.
CUDA, CUDNN, Nvidia Driver Puede desarrollar, optimizar e implementar sus aplicaciones en sistemas embebidos acelerados por GPU, estaciones de trabajo de escritorio, centros de datos empresariales, plataformas basadas en la nube y supercomputadoras HPC
Tableau Ayuda a visualizar y entender los datos
Power BI Es un conjunto de herramientas de análisis de negocios para analizar datos y compartir conocimientos.
Excel 2016 o posterior Programa de hojas de cálculo, puede usar herramientas de análisis de datos, fórmulas, funciones, crear archivos XLS y más.
Apache Drill Motor de consultas SQL para Hadoop, NoSQL y almacenamiento en la nube.
ScaleR Paquete que proporciona un conjunto de más de cien funciones de análisis de datos portátiles, escalables y distribuidas.
Local Spark Standalone Es un motor en memoria rápido y general para el procesamiento de datos a gran escala
Local Hadoop (HDFS, YARN) Es un marco que permite el procesamiento distribuido de grandes conjuntos de datos a través de clústeres de computadoras usando modelos de programación sencillos

Se tienen varias opciones para tener estas herramientas a nuestra disposición, una de ellas es instalando cada una de acuerdo a nuestras necesidades de manera local, otra es utilizar una máquina virtual ya sea propia o como servicio en alguna nube, por ejemplo, Data Science virtual machine en Azure ya sea en Windows o en Linux. También podríamos generar una máquina virtual de este tipo por cuenta propia y de manera local utilizando Sandbox y alguna distribución de Linux (por ejemplo, Ubuntu). Sin importar por cual optemos siempre habrá que tener en cuenta la capacidad del hardware (incluso si es virtualizado) y el consumo de memoria.

Hasta la próxima y mientras tanto aprovechen sus datos. 8)

Posted in Uncategorized