
¿De qué va a ir este curso? Aplicaciones Web para exponer los resultados o permitir al usuario interactuar con los datos generados por Un experto en Big Data, Data Scientist o Ingeniero de Machine Learning.
Soy David Manero, Ingeniero de Telecomunicaciones, Máster en Innovación, emprendedor, nerd reconocido, lindy hoper y Data Scientist profesional desde 2010.
Me gano la vida con la Ciencia de los Datos, y me encanta formar a otros profesionales.
Creo que la clave en la ciencia de los datos está en la curiosidad. Si eres un ser curioso, tienes la mitad del camino hecho para ser Héroe del Dato.
Los objetivos de este curso. Básicamente, convertirte en un Héroe del Dato profesional que pueda comunicar sus resultados de una manera rápida y profesional.
R es un lenguaje de programación ampliamente utilizado en Data Science. y RStudio es el mejor IDE para R.
Veremos como instalar R y RStudio. Los vídeos están grabados con Mac. En Windows en el archivo adjunto.
Instalación de R y RStudio en Windows.
Shiny es una librería especial desarrollada por los creadores de RStudio y que permite realizar aplicaciones web con base en R de una manera sencilla y rápida.
Comenzamos a familiarizarnos con RStudio y las primeras nociones de R. Donde están las cosas, para qué sirven los botones, etc...
Comenzamos también a manejarnos con las variables y su asignación en R.
Las operaciones más básicas con las variables numéricas y las alfanuméricas.
También veremos las diferencias entre introducir comandos por consola, por fichero y ejecutándolo desde el editor de RStudio.
Comenzamos a realizar operaciones con variables en R.
Operaciones aritméticas y también operaciones lógicas, así como comandos condicionales para comprobar el uso de las operaciones lógicas.
El primer objeto que veremos en esta sección son los vectores.
Veremos cómo asignarlos, y aprenderemos a operar con ellos. Operaciones aritméticas sobre vectores y cómo actúa R con vectores de distintos tamaños.
También con operaciones y comandos especiales para ellos, como sum, max, min, prod, etc...
El objeto más importa para un científico de datos es el dataframe, que es la forma que tendrán nuestros datasets.
Un dataframe es una matriz en la que las filas son las distintas observaciones y las columnas son las variables que hay de cada observación.
Crearemos un dataframe y cómo hacer subsets del dataframe original, aprenderemos a acceder a cada uno de los datos, cómo hacer subsets del dataframe original y aprenderemos a acceder a cada uno de los datos.
Las listas son un tipo especial de objeto que tiene una mejor performance en el uso dentro de R.
Permite guardar los datos de una forma más ordenada, y nos recuerda a formatos como JSON.
En la lección aprenderemos a generarlas en R y a operar con ellas.
El último objeto que veremos en este curso son las Series de Tiempo. Aunque no las utilicemos más adelante, conviene conocerlas, ya que son muy importantes para análisis de datos, por ejemplo, en el mundo del e-commerce, o para procesos en los que el tiempo es un factor muy importante.
Un poco de "teoría" de cómo funcionan los bucles en R,
Comenzamos viendo los bucles en acción en R. FOR y FOR anidados y WHILE.
También el bucle REPEAT y los comandos BREAK y NEXT. Y también alguna consideración sobre cuando conviene hacer bucles y cuando no.
En este apartado vamos a ver cómo se utilizan las funciones en R y aprenderemos a hacer algunas.
En este vídeo, procedente de mi primer curso de Data Scientist, aprenderemos a utilizar las funciones más básicas de la visualización en R.
A través de 3 ejemplos, vemos las partes principales de Shiny, la UI o interfaz de usuario, el servidor o SERVER y el lanzador de la aplicación, el comando ShinyApp().
Los tres ejemplos base de Shiny los veremos en profundidad, localizando esas 3 partes.
Arremángate y vamos a construir nuestra primera aplicación en Shiny. Utilizando datasets estándar de R, veremos cómo se visualizan los valores en la UI a través del SERVER.
Shiny nos ofrece múltiples opciones para lanzar una App. El objetivo no es que nuestra App se quede en nuestro ordenador local, sino que se pueda colocar en un servidor y ser lanzada desde cualquier ordenador del mundo. veamos las formas más importante de lanzar una aplicación.
A veces una de las cosas más complicadas es saber cómo pedir ayuda. En esta clase hacemos un repaso por las formas de encontrar ayuda en la propia aplicación (RStudio) o en internet. Existen varios métodos, según cómo sea el tipo de pregunta.
En la chuleta de Shiny tienes un completo compendio de las principales características de Shiny.
En esta clase (más teórica) podrás ver las principales características de Shiny, su estructura, y veremos los tres primeros ejemplos del Shiny. También se explica pormenorizadamente los principales comandos que se utilizan en el primer ejemplo.
Shiny tiene una estructura sencilla, pero estricta. El interfaz de Usuarios (UI) que contiene todos los elementos de presentación y maquetación de la aplicación y el servidor (SERVER) que contiene toda la lógica y los comportamientos de la aplicación.
El interfaz de Usuario es el elemento gráfico de relación con el usuario de la aplicación. En esta clase aprenderás sus principales elementos y características.
Los widgets son elementos "pre-fabricados" que se utilizan para que el usuario pueda introducir sus datos. En la clase verás los principales widgets de inputs de Shiny.
Una práctica para que construyas tu primer UI con una combo y un slider.
El resultado de la práctica con la UI.
¿Cómo funcionan las Salidas Reactivas? Son outputs que reaccionan a los cambios de los inputs de la Aplicación. Cuando el usuario cambia un input, el output reacciona y modifica sus valores adecuadamente.
Practicamos, esta vez, las salidas reactivas.
Comentamos el resultado de la práctica, y empezamos a ver el funcionamiento de la App Visualización del Censo. Utilizamos unos scripts que realizan el cálculo y la visualización en el mapa de EE.UU.
En la clase anterior hemos hecho los ejemplos de la visualización, y yo he hecho el primero de los comandos Render que generan la respuesta a los input. Te toca realizar el resto.
Explicamos el resto de Renders de la App de Visualización del Censo de los EE.UU.
Vamos a analizar más a fondo cómo funcionan las variables y las expresiones reactivas.
Vamos a realizar una práctica para ver si ya dominamos los conceptos de las Expresiones Reactivas con la App de Google Finance.
Terminamos la App de Google Finance resolviendo la Práctica.
En este vídeo vamos a ver de dónde surge la idea de la aplicación que vamos a realizar en esta sección del curso. Conoceremos también la web del Proyecto Gütenberg, fuente de los libros en formato texto que utilizaremos en la aplicación.
Haremos, fuera de Shiny, las principales funcionalidades de la aplicación.
Comenzamos a construir la aplicación y ponemos en práctica el código realizado en la clase anterior.
Observamos un problema con las palabras en inglés, vamos a tratar de resolverlo.
El resultado para el problema de las palabras en inglés en el texto obtenido de la web Project Gutenberg.
Vemos, a través de una serie de ejemplos, como funcionan las pestañas en Shiny.
Añadimos una nueva pestaña a nuestra Aplicación de Libros. Es la pestaña de Modificación y nos permitirá seleccionar la línea de inicio y final del texto del libro.
Las DataTables son una forma de presentar tablas con ciertas funcionalidades muy interesantes. DataTables es una librería JavaScript que hace transparente al programador cosas como los filtros, paginación, o ordenar columnas.
Añadimos más funcionalidades a la pestaña de modificación: El uso de DataTables.
Los Diálogos Modales son mensajes que nos permite generar Shiny y que se muestran en pantalla en tiempo real. Aprenderemos cómo lanzarlos y configurarlos.
Mejoramos la pestaña de Modificación con la inserción de Diálogos Modales (mensajes pop-ups).
La Interfaz de Usuario se puede generar de forma dinámica, por programación en el server. Aprende a realizarlo.
Para cuando queramos añadir nuevos libros en la aplicación, simplemente los descargamos de la web del Proyecto Guteberg en formato txt. Pero necesitamos una nueva pestaña donde gestionar este nuevo elemento.
Shiny permite actualizar los valores de los inputs de forma dinámica, en el servidor. Muy útil para cambiar labels o iconos en los botones.
Añadimos más funcionalidades a la pestaña Nuevo Libro. Incluímos la actualización de los inputs.
Continuamos con las mejoras de la pestaña Nuevo Libro.
ShinyDashboard es otra librería de R, como Shiny, pero que complementa a esta segunda. Shinydashboard nos permite realizar Dashboards (cuadros de control) de forma integrada con Shiny. Utilizando sistemas similares a los widgets de Shiny, con Shinydashboards puedes dar un aspecto mucho más profesional.
Ahora que hemos aprendido a usar ShinyDashboard, vamos a aplicarlo a nuestra aplicación.
Vamos a generar el resto de elementos ValueBox de la aplicación.
Resultado de la práctica planteada.
Finalizamos la aplicación con los últimos retoques.
Ya hemos terminado la Aplicación, pero seguro que se te ocurren varias ideas. Yo propongo alguna, pero, ¿te apetece compartir en el foro alguna mejora que se te ocurra? ¿Y si la intentas realizar y nos muestras el resultado?
Presentación de la sección y de la App MNIST que crearemos
Instalación de las librerías y presentación de los archivos.
En este enlace encontrarás todos los archivos necesarios para el desarrollo de la aplicación:
https://www.dropbox.com/sh/nyve76amvncmr52/AADyV4lxJRBJ8BWmqUyrzzDna?dl=0
En esta primera parte, montamos la estructura de la Aplicación en Shiny, usando también ShinyDashboards, una librería que nos permite montar dashboards de una manera rápida y sencilla.
También realizamos el cuadrado de dibujo donde el usuario podrá escribir el número.
En este apartado, sustituiremos el dibujo a mano alzada por una representación de la matriz de predictores que terminaremos utilizando en los diferentes modelos.
En esta clase guardaremos los 4 modelos calculados durante el curso de Iniciación a Computer Visión con Machine y Deep Learning en R y los cargaremos en la aplicación.
También transformaremos la matriz en un vector de predictores como los objetos de MNIST.
En esta clase guardaremos los 4 modelos calculados durante el curso y los cargaremos en la aplicación.
También transformaremos la matriz en un vector de predictores como los objetos de MNIST.
Utilizando la eficiencia calculada para cada uno de los métodos, vamos a crear un algoritmo que genere una predicción general basada en la poderación de los diferentes modelos. Básicamente sumaremos las eficiencias de las distintas posibles predicciones de cada modelo, y seleccionaremos aquella que tenga mayor valor. También calcularemos la fiabilidad que le proporcionamos a este resultado.
Por último, arreglamos un par de aspectos menores, y generamos el botón de limpiar que nos permitirá reiniciar el proceso para predecir nuevos números.
Un resumen por todos los contenidos del curso.
Ya has termiando, ok, ¿y ahora?
Te describo varias opciones para que puedas continuar aprendiendo cosas de esta maravillosa herramienta, Shiny.
Todo llega a su fin. Muchas gracias por llegar hasta el final, y ¡enohrabuena, ya eres un Héroe del Dato con superpoderes de visualización de datos!
El mundo del Big Data y de la Ciencia de los Datos tiene un apartado fundamental que a veces queda disuelto por el desarrollo o la arquitectura de software.
La Visualización de Resultados y el desarrollo de Aplicaciones para acceder a la información obtenida del Big Data Science es fundamental para un buen especialista en Big Data, un Científico de Datos o un Ingeniero de Machine Learning.
Shiny es una librería de R desarrollada por los creadores de RStudio, el IDE más importante del lenguaje de programación R. Shiny proporciona una manera sencilla y rápida de crear aplicaciones en el lenguaje nativo de R con ayuda de la tecnología javascript y css, pero de forma transparente para el usuario. Es decir, sin saber ni un comando de Javascript o sin conocer HTML5 ni CSS, se pueden desarrollar aplicaciones espectaculares.
Durante el curso, se explicarán todos los comandos utilizados, así como el código de R utilizado. De esta forma, aunque no tengas experiencia en este lenguaje, podrás seguir las explicaciones. Desde luego, es conveniente conocer R. Aprovecha el resto de mis cursos para introducirte en estos lenguajes.
Como ejercicio de fin de curso, realizaremos una aplicación completa de la galería de ejemplos de Shiny.
¡Descubre todas las capacidades escondidas en Shiny y realiza las mejores aplicaciones!