Análisis de datos con Python 3 - Javier Gamboa Cruzado - E-Book

Análisis de datos con Python 3 E-Book

Javier Gamboa Cruzado

0,0
15,99 €

-100%
Sammeln Sie Punkte in unserem Gutscheinprogramm und kaufen Sie E-Books und Hörbücher mit bis zu 100% Rabatt.
Mehr erfahren.
Beschreibung

Descubra cómo el análisis de datos le puede llevar al éxito en cualquier ámbito empresarial y en los medios de comunicación En el mundo actual, el análisis de datos es fundamental para tomar decisiones, trazar objetivos e identificar oportunidades en cualquier sector. Este libro emerge como una herramienta esencial, accesible tanto para principiantes como para profesionales, con la que podrá adentrarse en el emocionante universo de la ciencia de datos con resultados satisfactorios. Análisis de datos con Python 3 despliega el poder del lenguaje de programación Python con un enfoque práctico y didáctico. Gracias a esta lectura, conocerá conceptos y herramientas fundamentales como Big Data, SciPy y Pandas. Pero eso no es todo: también explorará territorios como el procesamiento de lenguaje natural, la robótica, el machine learning y el web scraping, entre otros. Asimismo, adquirirá una comprensión completa de los conceptos y técnicas que están modelando el futuro digital. Este libro aborda los conceptos básicos sobre criptografía, la red Tor, Tails y la tecnología empleada en el desarrollo de las criptomonedas. Diseñado para estudiantes y profesionales de la informática, programadores y cualquier persona con interés en el análisis de datos, es una lectura obligatoria para quien busque comprender y dominar las herramientas que definen la era digital actual. No se quede atrás: aproveche la información precisa y los ejercicios prácticos del libro para estar al corriente de las ventajas que le ofrece la ciencia moderna. CONTENIDO "Big Data "Introducción al análisis de datos "Pandas "Procesamiento de lenguaje natural "Robótica "Inteligencia artificial Data Science "Web scraping "Procesamiento de imágenes "Criptografía "Deep web y redes Tor "Tails "Blockchain

Das E-Book können Sie in Legimi-Apps oder einer beliebigen App lesen, die das folgende Format unterstützen:

EPUB
MOBI

Seitenzahl: 236

Bewertungen
0,0
0
0
0
0
0
Mehr Informationen
Mehr Informationen
Legimi prüft nicht, ob Rezensionen von Nutzern stammen, die den betreffenden Titel tatsächlich gekauft oder gelesen/gehört haben. Wir entfernen aber gefälschte Rezensionen.



Análisis de datos con Python 3

© Jorge Santiago Nolasco Valenzuela, Javier Arturo Gamboa Cruzado, Luz Elena Nolasco Valenzuela y Jymmy Stuwart Dextre Alarcón

Derechos reservados © Empresa Editora Macro EIRL, Lima – PerúPrimera edición: Empresa Editora Macro EIRL, Lima – Perú, julio de 2023

Primera edición: MARCOMBO, S.L. 2024

© 2024 MARCOMBO, S.L.www.marcombo.com

Cualquier forma de reproducción, distribución, comunicación pública o transformación de esta obra solo puede ser realizada con la autorización de sus titulares, salvo excepción prevista por la ley. Diríjase a CEDRO (Centro Español de Derechos Reprográficos, www.cedro.org) si necesita fotocopiar o escanear algún fragmento de esta obra

ISBN del libro en papel: 978-84-267-3770-0ISBN del libro electrónico: 978-84-267-3784-7Producción del ePub: booqlab

JORGE NOLASCO VALENZUELA

Doctorando en Administración de Empresas con mención en Dirección Estratégica por la Universidad San Ignacio de Loyola. Cuenta con grado de magíster en Gestión de Tecnología de Información y es ingeniero de Sistemas y Computación por la Universidad Inca Garcilaso de la Vega. Además, posee conocimientos y dominio de las TIC y de las herramientas Open Source. Es autor de los siguientes libros: Desarrollo de aplicaciones móviles con Android, Python Aplicaciones prácticas, Java y Android Studio y Android y J2ME.

En la actualidad, ejerce la docencia en diversas universidades. Entre sus principales ámbitos de investigación se encuentran la informática y las nuevas tecnologías. Colabora frecuentemente en proyectos empresariales en organizaciones relacionadas con el mercado de valores, mineras y constructoras.

JAVIER ARTURO GAMBOA CRUZADO

Profesor Investigador RENACYT-Nivel I. Es doctor en Administración de Empresas por la Universidad Nacional Mayor de San Marcos, doctor en Ingeniería de Sistemas por la Universidad Nacional Federico Villarreal, magíster en Gestión de la Información y del Conocimiento por la Universidad Montpellier III Francia-Universidad Nacional Mayor de San Marcos, magíster en Ingeniería de Sistemas por la Universidad Nacional de Ingeniería (UNI) e ingeniero de sistemas. Además, tiene un diplomado en Business Analytics (Certificación Green Belt-Six Sigma por la North Carolina State University). Es especialista en Ciencia de Datos.

Cuenta con experiencia en la cátedra universitaria a nivel de pregrado y posgrado en distintas universidades de Lima y provincias. Ha realizado publicaciones de artículos científicos en revistas indexadas de gran prestigio.

A nivel profesional, ha desempeñado diversos cargos empresariales y realiza múltiples consultorías a empresas públicas y privadas de distintos sectores empresariales. Actualmente es docente en la Universidad Nacional Mayor de San Marcos y consultor asociado en Heedcom del Perú, Business Analytics Consultant en Business and Technology Services VIP, LLC (EE. UU.) desde el año 2012 en los ámbitos de Data Science (Business Intelligence, Business Analytics, Web Mining, Text Analytics y Big Data), así como en lo referente a la mejora de procesos (BPM y Six Sigma).

LUZ ELENA NOLASCO VALENZUELA

Docente universitaria y magíster en Derecho otorgado por York University, Osgoode Hall Law School en Toronto (Canadá). Actualmente, cursa estudios de maestría en Educación con mención en Informática y Tecnología Educativa. Graduada con honores como licenciada en Humanidades en las especialidades de Criminología, Derecho y Sociedad otorgada por York University. Además, es licenciada en Educación y Ciencias Humanas, Educación Secundaria con especialidades en Matemática y Física por la Universidad Nacional Federico Villarreal. Actualmente, es candidata en la segunda maestría en Derecho Civil y Comercial por la Universidad Nacional Federico Villarreal.

Cuenta con más de diez años de experiencia en la docencia a nivel superior y secundario en diversas instituciones educativas tanto nacionales como internacionales. Tiene un dominio nativo del idioma inglés y español, y conocimientos del idioma italiano.

Sus áreas de investigación están focalizadas en la educación y en el derecho. En el ámbito educativo, está interesada en los temas de planeamiento estratégico de tecnologías de información, en cómo aplicar las tecnologías en diversos contextos, así como en la intersección entre las matemáticas y las tecnologías y la aplicación de las tecnologías en el aprendizaje de las matemáticas. En el ámbito jurídico, se interesa por temas como el arbitraje internacional, el derecho internacional privado, la minería a nivel global, el derecho laboral, el derecho empresarial y la cultura y la sociedad.

JYMMY STUWART DEXTRE ALARCÓN

Consultor en Tecnologías de Información. Especialista en herramientas tecnológicas para el uso de ventas y marketing digital. Docente universitario en gestión de proyectos, tecnologías y servicios de sistemas. Docente investigador universitario en la línea de desarrollo de software y servicios. Especialista en innovación y métodos ágiles. Experiencia en el sector privado y el Estado.

Dedicado a quienes no cesan en su afán de superación y cambio. El cambio, lo único constante.

Índice

Introducción

Big data

1.1 Información

1.2 Qué es big data

1.3 Otros conceptos de big data

1.4 Generación de datos en Internet en tiempo real

1.5 Tipos de datos

1.6 Fuentes del big data

1.7 Las V en big data

1.8 Las V a lo largo del tiempo

1.9 Aplicaciones del big data en general

1.10 Patrones de arquitectura de software

1.10.1 Algunas afirmaciones importantes

1.10.2 Conclusiones

1.11 Tipos de aplicaciones

1.11.1 Aplicaciones monolíticas

1.11.2 Aplicaciones cliente-servidor

1.11.3 Aplicaciones web

1.11.4 Aplicaciones peer-to-peer

1.11.5 Aplicaciones de data compartida

1.11.6 Aplicaciones MapReduce

1.11.7 Aplicaciones heterogéneas

1.12 Aplicaciones del big data en el Perú y el mundo

1.13 Seguridad y big data

1.13.1 Retos de seguridad en el big data

1.13.2 Medidas de seguridad básicas

1.13.3 Uso del big data en la ciberseguridad

1.14 Hadoop

1.14.1 Características básicas

1.14.2 ¿Por qué Hadoop?

1.14.3 ¿Cómo surge Hadoop?

1.14.4 Historia de Hadoop

1.15 ¿Qué atributos tiene Hadoop?

1.15.1 HDFS

1.15.2 YARN

1.15.3 MapReduce

Introducción al análisis de datos

2.1 SciPy

2.1.1 Creando arreglos

2.1.2 Operaciones básicas

2.1.3 Arreglos

2.1.4 Barras, histogramas y gráficos

2.1.5 Diagrama de dispersión

2.1.6 Gráficos circulares

Pandas

3.1 Pandas y NumPy

3.2 Primer ejemplo

3.3 Segundo ejemplo

3.4 Análisis del bitcoin

3.5 Análisis coronavirus 1

3.6 Análisis coronavirus 2

Procesamiento de lenguaje natural

4.1 NLP

4.1.1 NLP, NLU y NLG

4.1.2 Evolución del NLP

4.1.3 Aplicaciones del NLP

4.1.4 Problemas de ambigüedades

4.1.5 Instalando TextBlob y NLTK en Anaconda

4.1.6 Tokenización

4.1.7 Lematización

4.1.8 Stop words

4.1.9 ¿Cuándo se deben eliminar las stop words?

4.1.10 Algunos puntos que tener en cuenta

4.1.11 Ejemplo de análisis de texto

4.1.12 Ejemplo de traducción de texto

4.1.13 Ejemplo de análisis de sentimiento

4.1.14 Stanza

4.1.15 Modelos ocultos de Markov para etiquetar texto

4.1.16 Modelos markovianos de máxima entropía

Robótica

5.1 Historia de la robótica

5.2 ¿Qué es un robot?

5.3 Tipos de robot

5.3.1 Manipuladores

5.3.2 Móviles

5.4 Arduino

5.5 ¿Cómo funciona Arduino, el cerebro digital?

5.6 Entradas y salidas del Arduino

5.7 Diferentes placas de Arduino

5.8 Alimentación de energía al Arduino

5.9 Chip ATmega328

5.10 Tipos de chip ATmega328

5.11 Descargando el intérprete de Arduino

5.12 Primeros pasos

5.13 Constantes

5.13.1 Definiendo el nivel del pin: HIGH y LOW

5.13.2 Definiendo el modo de los pines digitales: INPUT, INPUT_PULLUP y OUTPUT

5.14 Lectura y escritura de señales digitales

5.15 Lectura y escritura de señales analógicas (analogRead)

5.16 Lectura y escritura de señales analógicas (analogWrite)

5.17 Utilizar Python en Arduino

5.17.1 PySerial

5.17.2 Firmata

5.17.3 pyFirmata

5.17.4 Arduino-Python

Inteligencia artificial Data Science

6.1 Machine learning

6.1.1 Librerías utilizadas

6.1.2 Algoritmos de machine learning

6.1.3 Aprendizaje supervisado

6.1.4 Caso Iris

6.1.5 Clasificación y regresión

6.1.6 Máquina de soporte vectorial

6.1.7 TensorFlow

6.1.8 Aprendizaje no supervisado

6.1.9 Aprendizaje por refuerzo

6.1.10 Aprendizaje evolutivo

6.2 Deep learning

6.2.1 Historia de deep learning

6.2.2 Redes neuronales artificiales

6.2.3 Aplicaciones de redes neuronales

6.2.4 Perceptrón

6.2.5 Tipos de arquitecturas de deep learning

6.2.6 Implementación del primer modelo

6.2.7 Implementación del segundo modelo

6.2.8 Implementación del tercer modelo

Web scraping

7.1 Web scraping

7.2 Obteniendo el contenido de una página web

7.3 Obteniendo una imagen de una web

7.4 Obteniendo páginas

7.5 Obteniendo caracteres

Procesamiento de imágenes

8.1 OpenCV

8.2 Funciones importantes

8.2.1 imread

8.2.2 imshow

8.3 Leer imágenes

8.4 Escribir imágenes

8.5 Cambiando el formato de una imagen

8.6 Modelo de color YUV

8.7 Modelo de color YUV (división de colores)

8.8 Traslación de imágenes

8.9 Rotación de imágenes

8.10 Utilizando la cámara

8.11 Histograma de imagen

8.12 Ecualización de histogramas

8.13 Convolución de imágenes

8.14 Detección de rostros usando Haar Cascades

8.15 Detección de Haar-Cascade en OpenCV

Criptografía

9.1 Criptografía

9.2 Cronología de la criptología

9.3 Cifrado Julio César

9.4 Algoritmos disponibles

9.4.1 MD5

9.4.2 SHA1

9.4.3 SHA512

9.4.4 Diferentes algoritmos

9.5 Cifrado homomórfico

9.5.1 Lista archivos

9.5.2 Plataforma (platform)

9.5.3 Socket

9.5.4 Obtener la dirección IP

9.5.5 Listar direcciones IP

9.5.6 Búsqueda e indexación

9.5.7 Recolección de información

Deep web y redes Tor

10.1 Redes Tor

10.2 Utilidad de las redes Tor

10.3 Deep Web

10.4 Mantenerse anónimo

10.5 El futuro de Tor

10.6 Tor Browser

10.6.1 Instalación

10.6.2 Uso

10.6.3 Recomendaciones de uso de la red Tor

10.6.4 Comprobación de la privacidad

10.7 Control de una instancia local Tor

10.8 Información de repetidores disponibles

10.9 Información de autoridades de directorio

Tails

11.1 Tails

11.2 Requerimientos

11.3 Aplicación de anonimato

11.4 Usuario base

11.5 Méritos técnicos y reconocimiento

11.6 Relación entre Tor y Tails

11.7 Confiabilidad de Tails

11.8 Software libre y escrutinio público

11.9 Confiando en Debian GNU/Linux

11.10 Confiando en Tor

11.11 Confiando en Tails

11.12 Instalación de Tails

11.13 ¿Qué es el spoofing de direcciones MAC?

11.14 Circuitos Onion

11.15 Listado de códigos de países

11.16 Observando los Onion Circuits

11.17 Anonimización en el mundo

11.18 Posibilidad de romper TOR

11.19 Mejores buscadores en Tor

11.19.1 DuckDuckGo

11.19.2 Wayback Machine

11.19.3 SurfWax

11.19.4 Torch

11.20 Tráfico de la red Tor

11.21 Electrum Bitcoin Wallet

Blockchain

12.1 Blockchain

12.2 Evolución de blockchain

12.3 Arquitectura de blockchain

12.4 Características de blockchain

12.5 Tipos de blockchain

12.5.1 Blockchain pública

12.5.2 Blockchain privada

12.5.3 Consorcio o blockchain federada

12.5.4 Blockchain as a Service (BaaS)

12.6 Componentes de blockchain

12.7 Aplicaciones de blockchain

12.7.1 Seguridad de la información

12.7.2 Prueba concluyente de autoría o conocimiento (texto, audio o vídeo)

12.7.3 Fin de los notarios

12.7.4 Títulos y certificados

12.7.5 Firma digital e identidad

12.7.6 Transparencia gubernamental

12.7.7 Mercado de capitales

12.7.8 Compras y licitaciones

12.7.9 Trámite y sellado digital

12.8 Tecnología del Libro Mayor

12.9 Criptomonedas

12.9.1 Historia

12.9.2 Características del valor de las criptomonedas

12.9.3 Satoshi Nakamoto, creador de bitcoin

12.9.4 El crecimiento de bitcoin

12.10 Construcción de una cadena de bloques

12.11 Futuro de blockchain

Anexo

1 Instalación de Python en Windows

2 Entornos de trabajo

2.1 Anaconda

2.2 Jupyter

Introducción

Python es un lenguaje de programación muy popular de propósito general creado en los 90 por Guido van Rossum, quien trabajó en Google y Dropbox.

El creador de Python nombró así a este lenguaje en honor al cómic y programa de televisión Monty Python.

Este lenguaje de programación posee una amplia comunidad de desarrolladores que buscan aportar, compartir y construir software escalable en comunidad. Además, tiene un ecosistema muy amplio que atrae a programadores, investigadores y profesionales de otras áreas que buscan mejorar su rendimiento laboral haciendo uso de código.

Asimismo, cuenta con una sintaxis muy limpia y legible. Posee tipado dinámico, es decir, que una variable puede poseer datos de varios tipos. Además, por su naturaleza interpretada, este lenguaje es fácil de aprender. Python es un lenguaje interpretado; por lo tanto, no se necesita compilar el código fuente para poder ejecutarlo. Esto ofrece ventajas como la rapidez de desarrollo.

Python está escrito en el lenguaje C. Por ello, se puede extender a través de su API en C o C++ y escribir nuevos tipos de datos, funciones, etc.

En la actualidad hay dos vertientes: las versiones 2.x y 3.x. Es muy probable que en algún momento ambas se integren. Es recomendable utilizar la última versión estable: 3.x.

El soporte a la versión 2.7 del lenguaje de programación Python concluyó de forma oficial el 1 de enero de 2020. La Python Software Foundation, liderada por el creador del lenguaje, Guido van Rossum, informó de que en el futuro dejaría de recibir actualizaciones de seguridad y correcciones de errores.

Antes de examinar el asunto, podría no parecer algo demasiado grave, ya que el lanzamiento de su sucesor, Python 3, tuvo lugar en 2006. De hecho, el soporte para Python 2.7 tendría que haber concluido en 2015. No obstante, la enorme popularidad de esta versión (continúa siendo la versión de Python por defecto en muchas distribuciones de Linux, por ejemplo) convenció a la fundación de la necesidad de apoyar ambas ramas de desarrollo y de posponer la fecha de la ”muerte” de Python 2.7.

Una de las características más importantes de Python es que es multiparadigma: programación estructurada, orientada a objetos y funcional.

En el desarrollo web de Python, se pueden utilizar los framework Django y Flask. Entre las empresas más conocidas que utilizan Python se encuentran la NASA, Dropbox e Instagram.

Existen otros proyectos realizados con Python:

• Pinterest

• Ubuntu Software Center

• Battlefield 2

• Pandas 3

• BitTorrent

• Google App Engine

Se encuentra información más detallada de otros proyectos con Python en el siguiente sitio web: https://unipython.com/13-grandes-proyectos-que-se-implementaron-utilizando-python/.

En data science y machine learning se cuenta con Pandas, scikit-learn y TensorFlow. Además, Python es multiplataforma: Linux, Windows, Mac OS, Solaris, etc.

Con Python se puede crear desde un sitio web hasta un programa o aplicación para realizar alguna tarea científica como calcular valores estadísticos o resolver matemática compleja. Asimismo, se puede desarrollar lo siguiente:

• Juegos

• Ciencia

• Web

• Automatización de diseño electrónico

• Gráficos y diseño

• Software

• Aplicaciones financieras

• Software dedicado a negocios

Además, Python permite ser implementado en diferentes lenguajes:

•CPython: Python tradicional escrito en C

•Jython: Python para la JVM

•IronPython: Python para .NET

•PyPy: Python más rápido con compilador JIT

•Stackless Python: Branch de CPython con soporte para microthreads

Actualmente Python es uno de los lenguajes de programación más populares y extendidos, así lo demuestra el índice TIOBE.

Fuente: https://www.tiobe.com/tiobe-index/

Por otro lado, el índice PYPL (PopularitY of Programming Language) considera también a Python como el lenguaje más popular y el que ha experimentado un mayor crecimiento en estos últimos años.

Fuente: http://pypl.github.io/PYPL.html

A continuación, estas son las fortalezas de Python:

• Fácil de aprender

• Fácil de enseñar

• Fácil de usar

• Fácil de entender

• Fácil de obtener, instalar e implementar

Este libro lo introduce de manera fácil en los conceptos y las características básicas del lenguaje de programación Python. De ahí que sea bueno tener un intérprete de Python a mano para experimentar.

Actualmente, la popularidad de Python se ha expandido fuera del círculo inicial de desarrolladores. Algunos predicen que pronto se convertirá en el lenguaje de programación más popular del mundo, ya que continúa agregando nuevos usuarios más rápido que cualquier otro lenguaje. Millones de personas usan Python cada día, con un crecimiento exponencial en los usuarios que muestra pocas señales de disminuir.

Python es utilizado para tareas grandes y pequeñas por desarrolladores profesionales y aficionados; y es particularmente popular entre desarrolladores web, científicos de datos y administradores de sistemas. Fue Python el que ayudó a unir las primeras imágenes de un agujero negro a unos 500 000 000 000 000 000 000 km de distancia (https://www.youtube.com/watch?v=BIvezCVcsYs). Python es el que impulsa innumerables scripts pirateados en ordenadores de escritorio en todo el mundo.

Además, desempeña un papel fundamental en algunas de las organizaciones más conocidas del globo. Por ejemplo, ayuda a Netflix a transmitir vídeos a más de 100 000 000 de hogares en todo el mundo, potencia el fenómeno de compartir fotos en Instagram y ayuda a la NASA en la exploración espacial.

Anaconda, la edición individual (distribución) de código abierto con más de 25 000 000 de usuarios en todo el mundo, es la forma más fácil de realizar ciencia de datos Python/R y aprendizaje automático. Es el conjunto de herramientas que lo equipa para trabajar con miles de paquetes y bibliotecas de código abierto.

“El problema fundamental de la comunicación es el de la reproducción exacta o aproximada en un determinado punto de un mensaje elegido en otro punto. Con frecuencia los mensajes tienen significados”.

Claude Shannon (1948)

1.1 Información

Según Idalberto Chiavenato,

”La información es un conjunto de datos con un significado, que reduce la incertidumbre o que aumenta el conocimiento de algo. En verdad, la información es un mensaje con significado en un determinado contexto, disponible para uso inmediato y que proporciona orientación a las acciones por el hecho de reducir el margen de incertidumbre con respecto a nuestras decisiones”.

Para Ferrell y Hirt,

”La información comprende los datos y conocimientos que se usan en la toma de decisiones”.

Según Czinkota y Kotabe,

”La información consiste en datos seleccionados y ordenados con un propósito específico”.

Alvin y Heidi Toffler, en su libro La revolución de la riqueza, quienes nos brindan la diferencia (muy entendible) entre lo que son los datos y lo que es información, nos dicen lo siguiente:

”Los datos suelen ser descritos como elementos discretos, huérfanos de contexto: por ejemplo, ‘300 acciones’. Cuando los datos son contextualizados, se convierten en información: por ejemplo, ‘tenemos 300 acciones de la empresa farmacéutica X’”.

Según Wikipedia,

“La información es un conjunto organizado de datos procesados que constituyen un mensaje sobre un determinado ente o fenómeno”.

Según Irma Wassall (1943),

“Por todo el continente negro suenan los tambores que nunca callan: base de toda música, foco de toda danza; tambores parlantes, radiotelégrafo de la jungla inexplorada”.

Desde hace más de quinientos años, los pobladores del África subsahariana contaban con una tecnología de información que sería la envidia de cualquier gobernante europeo. Eran los tambores. Sus rítmicas melodías constituían en realidad un código tonal capaz de transmitir información detallada sobre distintos aspectos de una manera amplia, rápida y eficiente.

1.2 Qué es big data

En esta infografía, se indica que en la actualidad solo se aprovechan los datos estructurados, que representan solo el 20 %, respecto al 80 % de los datos no estructurados.

• Big data es un campo del conocimiento dedicado al análisis, procesamiento y almacenamiento de grandes colecciones de datos que con frecuencia se originan en fuentes dispares.

• El término big data proviene originalmente del ámbito de las ciencias de la computación y ha sido típicamente empleado para referirse a sets de datos cuyo tamaño excede al que pueden manejar el software y hardware estándares disponibles para capturarlos, almacenarlos y analizarlos.

• Big data es el conjunto de tecnologías, técnicas y herramientas que posibilitan la recogida, el procesamiento y el análisis de volúmenes masivos de datos, y también la visualización de los resultados. El propósito es convertir la información hallada en esos grandes conjuntos de datos en algo útil, como estadísticas, patrones de comportamiento, análisis de rendimiento, etc.

• Big data es información de alto volumen, alta velocidad y/o alta variedad de activos que demandan formas innovadoras y rentables de procesamiento de información que permitan una mejor comprensión, toma de decisiones y automatización de procesos.

• Herramientas y técnicas de información de alto volumen, alta velocidad y/o alta variedad de activos, que permitirán capturar datos, almacenar, analizar, y obtener estadísticas, patrones de comportamiento y análisis de rendimiento, que permitirán una mejor comprensión, toma de decisiones y automatización de procesos.

1.3 Otros conceptos de big data

• “Big data es un término general para colecciones de datos tan grandes y complejas que son difíciles de procesar con el uso de herramientas de procesamiento de datos tradicionales” (Wikipedia, 2009).

• “Big data es un término cada vez más utilizado para describir el proceso de aplicación de alta potencia de cómputo, machine learning y de inteligencia artificial a información masiva y a menudo de gran complejidad” (Microsoft, 2012).

• “Big data se refiere a nuestra capacidad creciente de hacer cálculos a vastas colecciones de información, analizarla instantáneamente y sacar conclusiones profundas de ellas” (Mayer-Schönberger y Cukier, 2013).

• “Big data está siendo generado por todo lo que nos rodea en cada momento. Cada proceso digital e intercambio de medios sociales lo produce. Sistemas, sensores y dispositivos móviles lo transmiten. Big data está llegando desde múltiples fuentes a una velocidad, volumen y variedad” (IBM, 2014).

1.4 Generación de datos en Internet en tiempo real

En esta infografía, se indica qué está ocurriendo en Internet en tiempo real. Mientras el lector se encuentre leyendo esta infografía, en la red están aconteciendo multitud de cosas. Internet ha revolucionado la información y el acceso a la tecnología, y ha interconectado a todos.

1.5 Tipos de datos

Es frecuente indicar la siguiente clasificación de los tipos de datos: estructurados (datos tradicionales) y no estructurados (datos big data). Sin embargo, las nuevas herramientas de manipulación de big data han originado nuevas categorías dentro de los tipos de datos no estructurados: datos semiestructurados y datos no estructurados propiamente dichos, que a continuación definimos.

•Datos estructurados (structured data): Datos que tienen bien definidos su longitud y su formato, como las fechas, los números o las cadenas de caracteres. Se almacenan en tablas. Un ejemplo son las bases de datos relacionales y las hojas de cálculo.

•Datos no estructurados (unstructured data): Datos en el formato tal y como fueron recolectados; carecen de un formato específico. No se pueden almacenar dentro de una tabla, ya que su información no se puede desgranar a tipos básicos de datos. Algunos ejemplos son los PDF, documentos multimedia, e-mails o documentos de texto.

•Datos semiestructurados (semistructured data): Datos que no se limitan a campos determinados y que contienen marcadores para separar los diferentes elementos.

1.6 Fuentes del big data

Hay una enorme cantidad de datos de los que queremos procesar y extraer información, los cuales, según la imagen, no se vienen aprovechando.

1.7 Las V en big data

Las características más importantes del big data perfectamente se pueden clasificar en muchas magnitudes conocidas como las V del big data. Estas se muestran a continuación y más adelante se detallarán sus características.

Big data 10V

Volumen

• Se refiere a la cantidad masiva de datos que se genera cada segundo, minuto, hora o cualquier otra cifra de tiempo estimada. Tienen que ser grandes cifras de datos para considerarse big data.

• Por ejemplo, YouTube almacena 18 000 segundos de vídeo por minuto de sus usuarios.

Velocidad

• Se refiere a la velocidad a la que se generan o actualizan los datos.

• Por ejemplo, Google procesa unas 40 000 consultas de búsquedas por segundo, lo que se traduce aproximadamente en más de 3 500 000 000 de búsquedas por día.

Variedad

• Se refiere a manejar datos estructurados y semiestructurados, pero principalmente no estructurados, como archivos de audio, imagen, vídeo, actualizaciones de redes sociales, archivos de registro, datos de clics, etc.

Variabilidad

• Se refiere al número de inconsistencias en los datos y a la multitud de dimensiones de datos.

• También se refiere a la velocidad inconsistente a la que se cargan grandes datos en las bases de datos.

Veracidad

• Se refiere a la procedencia o confiabilidad de la fuente de datos, su contexto y cuán significativo es para el análisis basado en ella.

• Cuando aumentan las propiedades, la veracidad disminuye.

Validez

• Se refiere a la limpieza que tienen los datos, a cuán precisos y correctos son para su uso.

• Se deben adoptar buenas prácticas de gobernanza de datos para garantizar una calidad de datos coherente, definiciones comunes y metadatos.

Vulnerabilidad

• Se refiere a la preocupación de seguridad con respecto a los datos.

• Han ocurrido muchos casos de hackeo y violación de la big data para actividades ilegales.

Volatilidad

• Se refiere al tiempo que deben conservarse los datos. Los datos antiguos generarían problemas de rendimiento en la base de datos.

• Se requiere de reglas para la disponibilidad, la vigencia de datos y la recuperación rápida de información.

Visualización

• Se refiere a solucionar la complejidad de visualizar la analítica del big data.

• Dentro de las diferentes formas de representarlos, se tiene la agrupación o el uso de mapas, las coordenadas, los diagramas, etc.

Valor

• Se refiere a solucionar la valoración de los datos y descartar los datos desfasados y no útiles.

• Se identifica el valor del dato si puede comprender mejor a los clientes, optimizar los procesos, mejorar el rendimiento, etc.

1.8 Las V a lo largo del tiempo

A continuación se muestra la evolución histórica del big data respecto a las V (magnitudes).

1.9 Aplicaciones del big data en general

El big data se aplica en muchos sectores y se puede obtener ventaja del empleo de sus técnicas de análisis y extracción de información relevante. En esta imagen, observará algunas aplicaciones del big data.

1.10 Patrones de arquitectura de software

“La arquitectura de software de un programa o sistema es la estructura o estructuras del sistema, lo cual incluye los elementos de software, las propiedades visibles externamente de esos elementos y las relaciones entre ellos”.

— Bass, Clement, Kazman: Software Architecture in Practice

1.10.1 Algunas afirmaciones importantes

• Los arquitectos de construcciones y los arquitectos de software se enfrentan a retos similares. Por lo mismo, es necesario que los arquitectos cuenten con una serie de conocimientos, habilidades y conocimientos especiales.

• Glenn Murcutt, arquitecto australiano famoso por ganar muchos premios y por ser presidente fundador de la Asociación de Arquitectura de Australia, afirmó: “Necesitamos soluciones para problemas reales y no inventar problemas para justificar malas soluciones”.

1.10.2 Conclusiones

• La arquitectura de software representa el estudio de alto nivel del sistema.

• Se representa a través de muchas vistas o estructuras del sistema.

• Cada vista se compone de elementos de software y de las relaciones entre ellos.

• Cada elemento de software tiene atributos visibles interna o externamente.

• Cada elemento debe estar claramente documentado para que se conozca su naturaleza.

• Forma parte de la disciplina de análisis y diseño.

1.11 Tipos de aplicaciones

1.11.1 Aplicaciones monolíticas

• Diseñadas para un usuario único en una sola máquina.

• Explotan la capacidad de la máquina al máximo.

• La seguridad no es una prioridad.

• Existe una dificultad para mejorar la aplicación porque igualmente se debe actualizar cada máquina.

• Aplicaciones tipo: editores de texto, hojas de cálculo, sistemas embebidos en máquinas especializadas, como calculadoras, máquinas expendedoras de bebidas y alimentos.

• Lenguajes de programación usados: C/C++.

1.11.2 Aplicaciones cliente-servidor

• El servidor fue diseñado para múltiples usuarios. Cada cliente representa a un usuario único.

• Es necesario tener un protocolo propietario para la comunicación entre el cliente y el servidor.

• La seguridad en estas aplicaciones es una prioridad.

• En sus versiones iniciales, el servidor era fácil de mejorar, pero el upgrade de un cliente no, debido a que cada máquina tenía que ser modernizada.

• Es necesaria la administración de una sesión de trabajo. El cliente es el responsable de administrar el inicio y fin de la sesión.

• Lenguajes de programación usados: C/C++/VB, SQL (stored procedures).

1.11.3 Aplicaciones web

• Tanto el cliente como el servidor fueron diseñados para múltiples usuarios.

• La seguridad es de alta prioridad.

• Se usa un protocolo estándar para la comunicación entre el cliente y el servidor.

• El manejo de la sesión es complejo porque afecta el desempeño del sistema. No se puede operar sobre muchos objetos al mismo tiempo y la administración de la sesión la hace el servidor con muy poca ayuda del cliente (que usa cookies).

• Se incrementa la importancia del middleware.

• Lenguajes de programación usados: HTML, JavaScript, VB.Net o Java y SQL para la comunicación con la base de datos.

1.11.4 Aplicaciones peer-to-peer

• Los componentes interactúan como peers y son todos “iguales”.

• Estilo arquitectural petición-respuesta sin asimetrías.

• Proveer una conexión bidireccional.

• Algunas arquitecturas pueden tener supernodos (indexar o rootear).

• Los peers pueden ser agregados o retirados sin gran impacto en el sistema en general. Por tanto, se logra escalabilidad.

• BitTorrent, Skype, VoIP.

1.11.5 Aplicaciones de data compartida

• Está conformado por múltiples data accesors y al menos un shared-data store.

• El acceso puede ser de lectura, escritura o ambos.

• Gestiona la concurrencia.

• Podría generar cuellos de botella y, de contarse con un solo shared-data store, suponer un riesgo en términos de alta disponibilidad.

• Restricción: los shared-data store no pueden interactuar directamente.

1.11.6 Aplicaciones MapReduce

Está compuesto de tres partes:

•Infraestructura: Donde se ʺdeployaʺ el map y se reducen las instancias. Puede ser un nodo o múltiples nodos en programación paralela.

•Map: Una función con múltiples instancias ʺdeployadaʺ en la infraestructura (extraer y transformar).

•Reduce: Función para procesar la porción de extraer-transformar-cargar.

1.11.7 Aplicaciones heterogéneas

1.12 Aplicaciones del big data en el Perú y el mundo

En el Perú se puede encontrar el siguiente caso:

El objetivo de Alicorp es potenciar el sector comercial para incrementar las ventas. Por ello, la compañía incluirá más plataformas que ayuden a los vendedores a identificar los productos que quieren los clientes. ʺA la fecha hemos implementado tres y tenemos cuatro más en producción. El próximo año apuntamos a que sean ocho y se vayan duplicando año a año. Más casos de uso permitirán una segmentación de clientes y puntos de venta más finos, lo que permite una oferta más agresiva basada en la información antes no disponibleʺ, indicó Pedro Malo, vicepresidente corporativo de estrategia y digital de la compañía, a Semana Económica.

Nuevas herramientas