Category: Big Data e Inteligencia Artificial

python que es para que sirve

Qué es Python

Se trata de un lenguaje de programación creado en 1991 por Guindo Van Rossum (1956, Holanda). Python es una opción interesante para realizar todo tipo de programas que se ejecuten en cualquier máquina. Está orientado a objetos y preparado para realizar cualquier tipo de programa, con este lenguaje podemos desarrollar software para app científicas, para comunicaciones de red, para app de escritorio con interfaz gráfica de usuario (GUI), para crear videojuegos, para smartphones, para inteligencia artificial, para automatización de tareas y por supuesto, para programación web.

Python es uno de los lenguajes de programación más utilizados, encargado de asegurarse de que la sintaxis haga posible que el código sea legible. Está considerado un lenguaje multiparadigma, al poder ser enfocado a varios estilos, y posee la ventaja de ser de código abierto, lo que permite que cualquiera pueda acceder a él. Desde que en 1991 se publicó el código, han ido evolucionando sus características, las cuales van siendo planteadas desde su filosofía de transparencia y legibilidad:

  • Python puede ser fácil de aprender si eres programador o si tienes experiencia con otros lenguajes programación.
  • Friendly & fácil de aprender. La comunidad organiza conferencias y reuniones, colabora en el código entre otras actividades.
  • Aplicaciones. El Índice de paquetes de Python (PyPI) alberga miles de módulos de terceros para Python. Tanto la biblioteca estándar de Python como los módulos aportados por la comunidad permiten infinitas posibilidades.
  • Open Source. Python se desarrolla bajo una licencia de código abierto aprobada por OSI, por lo que se puede usar y distribuir libremente, incluso para uso comercial. La licencia de Python es administrada por Python Software Foundation.

Para qué sirve

Uno de los principales objetivos del uso de Python es conseguir evitar complicaciones y ahorrar tiempo. Además, es muy útil para trabajar con grandes volúmenes de datos, ya que nos favorece los procesos de extracción y procesamiento de estos. Por este motivo, cuando se habla de Big Data también suele mencionarse Python. Algunos de los usos más comunes para los que sirve Python son:

  • Realizar cálculos científicos y de ingeniería.
  • Desarrollo web.
  • Programación de videojuegos.
  • Ejecutar programas gráficos.
  • Creación de efectos especiales.

Características y ventajas que ofrece Python:

  1. Sistema multiplataforma. No fuerza a los programadores a aprender un estilo especial sino que permite poder implementar varios estilos de programación enfocados a distintos aspectos. Entre dichos estilos podemos encontrar: programación imperativa, programación orientada a objetos y programación funcional.
  2. Orientado a objetos. Una de las características de un lenguaje de programación orientado a objetos es la capacidad de permitir a un programador crear nuevas clases que modelen los datos necesarios para resolver un problema. Con Python, nos encontramos ante un paradigma que propone modelar todo en función a clases y a objetos. Esto nos ofrece un uso de conceptos de cohesión, polimorfismo, abstracción y mucho más.
  3. Código abierto y libre. Posee una licencia de código abierto denominada Python Software Foundation Licence.  Toda la información relativa a este lenguaje de programación es libre por lo que, como hemos mencionado anteriormente, cualquier persona puede acceder a él.
  4. Frameworks. Python cuenta con frameworks de gran calibre para auxiliar el desarrollo web, el desarrollo de juegos o algoritmos avanzados.  Son estructuras o espacios de trabajo en base a las cuales se pueden organizar y desarrollar los softwares. Python posee algunos de los más poderosos (como son por ejemplo Django, Flask, Pyramid y Web2py), destacando todos ellos por su gran utilidad, puesto que facilitan en gran medida trabajo de los desarrolladores.
  5. Tipado dinámico. En Python, una misma variable puede tomar valores de distinto tipo en distintos momentos y en cualquier lugar de su código fuente.
  6. Calidad en la sintaxis. Esta es una de las ventajas de Python.  Este lenguaje de programación nos ofrece una sintaxis clara y limpia que facilita su aprendizaje y enseñanza. Se caracteriza por sustituir las delimitaciones y elementos de alto nivel por sangrías y tokens, componentes lexicográficos elementales que facilitan la escritura y lectura del código. También, otra de las funciones es la de reducir el uso de caracteres y escribir un formato que testee una secuencia determinada.

¿Quieres aprender Pyhton?

En la web se pueden encontrar diversos sites en los que se ofrece información y tutoriales detallados para aprender Python desde cero. Asimismo, el sitio pyhton.org cuenta con una guía para principiantes

JAVA

Actualmente, según el índice TIOBE (octubre 2018) es el lenguaje de programación más popular del mundo. Tanto es así que hay miles de softwares, apps y sitios web que no funcionarán a menos que tengan Java instalado. Este lenguaje de programación posee su propia estructura, reglas de sintaxis y paradigma de programación, como cualquier otro lenguaje. Se trata de una derivación del Lenguaje C, por lo que por lo que las reglas de sintaxis se parecen mucho a este lenguaje C. Java es un lenguaje de programación que desarrollado por James Gosling de Sun Microsystems en 1995.

PYTHON

Es uno de los lenguajes de programación más utilizados y el más adecuado para implementar algoritmos de productividad. Python es de código abierto y proporciona un enfoque más generalizado para la ciencia de datos (Data Science). Toda la información relativa a este lenguaje de programación es libre. Python fue creado por Guido Van Rossum en el año 1991 en los Países Bajos. Python posee este nombre por los seis humoristas británicos “Monty Python”, coloquialmente conocidos como “Los Pythons”.

El lenguaje Python es más apropiado para implementar algoritmos de productividad. A través de Python, se tiene acceso a un gran número de paquetes para desarrolladores que permiten crear un código general de manera rápida y vincular flujos de trabajos o componentes. Python permite programar en varios estilos: programación orientada a objetos, estructurada, funcional y orientada a aspectos.

Lenguaje R

El software R se puede utilizar como lenguaje de programación, pero esa no es su fortaleza. Principalmente este lenguaje se utiliza para el análisis estadístico, manipulación de grandes volúmenes de datos y representación gráfica de alta calidad. R apareció por primera vez en 1996, de la mano de los profesores de estadística Ross Ihaka y Robert Gentleman de la Universidad de Auckland en Nueva Zelanda. El nombre surgió de las iniciales de ambos y se inspiró en el lenguaje S de Bell Labs. El lenguaje R es fruto de un proyecto colaborativa que implica a miles de usuarios de todo el mundo. Se trata de un software que está permanentemente actualizado, con funciones nuevas y paquetes accesibles en tiempo real.

Actualmente posee uno de los ecosistemas más ricos para realizar análisis de datos, alrededor de 1.200 paquetes disponibles en Open Source disponible para los sistemas operativos Windows, MACOs, Unix y Linux. Gracias a R,  se puede decodificar lenguajes de programación y se puede acceder a la lectura de datos procesados en softwares como Excel, SPSS, etc.  Tal es su potencial que se trata del software predilecto de cualquier Data Scientist de la comunidad científica internacional. Además, posee un entorno gráfico con una amplia gama de herramientas estadísticas clásicas y avanzadas para el análisis y la representación gráfica de datos exportables  en diversos formatos: pdf, bitmap, png, jpeg, etc. permite generar gráficos con alta calidad, con sólo utilizar las funciones de graficación.

R posee una gran relevancia en áreas de Big Data, minería de datos, Inteligencia Artificial, análisis predictivos, matemáticas financieras, ingeniería industrial, …

 

En múltiples ocasiones hemos comentado que nos encontramos en un entorno empresarial en el que cada día se generan alrededor de 3 trillones de bytes de información. Esta gran cantidad de volumen de información ha crecido debido, en parte, a Internet y al continuo aumento tecnológico en las comunicaciones y recogida de datos. Tal cantidad de datos se generan y producen al día que se ha conseguido que las organizaciones puedan  analizar, descubrir y verificar esta enorme cantidad de información a través de tecnologías específicas para ello.

visualizacion de datos netopinion

Todo esto hace que nos lleguen cantidades ingentes de información desde múltiples fuentes y lo que sucede es que, en muchas ocasiones, no se dispone del tiempo suficiente para su correcta interpretación. En este punto entra en juego el ámbito de la visualización de grandes datos cuyo objetivo principal es mostrar, a través de gráficos y de forma sencilla, medible y comprensible,  la información recopilada en el análisis y modelización de los mismo. Aunque los gráficos llevan décadas siendo utilizados en el ámbito empresarial, las tecnologías de visualización de datos han evolucionado según las necesidades del nuevo paradigma empresarial en la que la analítica empresarial y sistemas de big data proliferan.

Por este motivo, exponemos en este post aquellos aspectos más relevantes a tener en cuenta para sacar el máximo provecho a la visualización de datos en nuestros proyectos profesionales:

1| Qué es lo que vamos a contar. Un error común a la hora de visualizar la información es intentar abarcar demasiado. Debemos saber qué queremos contar y ser precisos en la información que vamos a mostrar en la visualización.

2| A quién va dirigido (público objetivo o target). Debemos tener en cuenta qué tipo de público va a trabajar con los datos a mostrar en la visualización.  Pensar quién es el usuario que va a interpretar los gráficos (si es un especialista de datos, un “marketero” o un usuario sin especialización…) y en base a esto, decidir qué tipo de datos podemos mostrar para que el target cuando lo visualice, lo comprenda.

3| Cómo vamos a contarlo. Aquí entra el juego otro aspecto a tener en cuenta: el storytelling con datos, una nueva forma de presentar y analizar los datos. Os recomendamos el libro de Cole Nussbaumer, “Storytelling con datos“, en el que ofrece una guía práctica para utilizar los conceptos de storytelling -contar una historia con un comienzo, nudo y desenlace- para comunicar datos de forma visual y efectiva. Algunos conceptos ejemplificados que os mostramos en este post son extraídos tras la lectura de este libro tal como se observa en la  imagen del consejo número (5) donde se muestra un ejemplo de “contar una historia con los datos” (opción B).

4| Simplificar. Aunque ya lo hemos mencionado en el primer punto, debemos darle una especial importancia a la simplificación. Debemos ser concisos y sólo mostrar aquello que es relevante, descartar los datos que no son ilustres o son “ruido” para que exista una correcta visualización o buen entendimiento.

5| Utilizar gráficos adecuados según el tipo de dato. Debemos utilizar los recursos gráficos de forma inteligente. No todos los gráficos sirven para todo. Por ejemplo, utilizar siempre gráficos de columnas para realizar comparativas en lugar de gráficos circulares, ya que visualmente se aprecia mejor. Un ejemplo de ello lo reflejamos en en el siguiente ejemplo sacado del libro de Nussbaumer (2015):

Visualización de datos. Storytelling con datos

FUENTE: Naussbaumer Knaflic, Cole (2015): Storytelling con datos. Visualización de datos para profesionales. Ed. ANAYA Multimedia

6| No abusar de tablas. Solo deben usarse tablas cuando necesitemos mostrar valores precisos. Asimismo, hay que tener en cuenta que las tablas estén diseñadas a una escala apropiada para que no haya confusiones en el análisis de los datos.

7| Utilizar colores apropiados para facilitar la percepción y comprensión de los datos. La selección de los colores parece algo sencillo, pero no todos los colores son eficaces para la visualización de los datos. Es aconsejable utilizar colores de tonos pastel o diferentes tonalidades de un mismo color en lugar de colores vivos como el rojo, fucsia, amarillo y naranja en una misma gráfica. Si observamos el ejemplo anterior, la gráfica de tabla con sólo dos colores para diferenciar entre “antes” y “después” se visualiza mucho mejor frente al abuso de color en el gráfico circular, donde se muestra uno por cada valor en la encuesta (cinco en total).

Por otro lado, usar de forma correcta el color puede hacer más comprensible un gráfico. El color puede ser útil para resaltar una determinada información que se considere relevante o destacar aquellos puntos donde se ha de centrar el análisis.

8| Enunciados claros y memorables. Debemos elegir un buen titular para contextualizar y dirigir la atención hacia la  información más importante. El uso de  tipografías legibles y el uso de etiquetas, ejes y leyendas fáciles de leer pueden ser un factor importante en la visualización para la lectura de los datos.

9| Organizar los datos de forma lógica. Asegurarnos que los diferentes gráficos y  pantallas de la visualización estén alineados horizontal y verticalmente para que puedan compararse con precisión y no crear ninguna ilusión óptica engañosa.

10| Citar fuentes de donde se extrae información. Ser transparentes da una mayor credibilidad. Si hemos extraído información o datos de otras fuentes (por ejemplo, Open Data) debemos citarlas para aportar credibilidad a la información que mostramos.

¡Y recuerda!

La inteligencia artificial en la actualidad juega un papel importante en nuestra vida cotidiana; desde nuestros teléfonos inteligentes (smartphones) a otros dispositivos electrónicos como neveras inteligentes. La tecnología nos ha proporcionado oportunidades de cambiar nuestro modo de vida tanto en el trabajo como al hacer la compra, consumir energía, etc.

La  tecnología se vuelve, cada vez más, más inteligente y con capacidades múltiples: procesamiento de lenguaje natural, visión artificial, sistemas de recomendaciones, entre otros. Sin embargo, pese a que la inteligencia artificial y las máquinas se hayan convertido en parte de la vida cotidiana, esto no significa que las entendamos bien. Por este motivo queremos explicar qué diferencias existen entre Inteligencia Artificial (IA), Machine Learning y Deep Learning para entender mejor el entorno en el que se construye a nuestro alrededor con estas tecnologías inteligentes.

Qué es Inteligencia Artificial

En computación, la Inteligencia Artificial se trata de programas o bots diseñados para realizar determinadas operaciones que se consideran propias de la inteligencia humana. Se trata de hacer que éstos sean tan inteligentes como un humano. La idea es que perciban su entorno y actúen en base a ello, centrado en el auto-aprendizaje y que sean capaces de reaccionar ante nuevas situaciones.

El sueño de los pioneros en Inteligencia Artificial era construir máquinas complejas, habilitadas por computadoras emergentes, que poseyeran las mismas características de la inteligencia humana. Este es el concepto que consideramos “genérico” de Inteligencia Artificial: maquinas fabulosas que tienen todos nuestros sentidos (tal vez incluso más), toda nuestra razón y piensan igual que nosotros.  Podemos poner ejemplos de este concepto en películas como Star Wars (C-3PO) o Teminator. Claro está que este concepto genérico de máquinas de IA sólo quedan en el imaginario del cine y de novelas de ciencia ficción por una buena razón: no podemos llevarlo a cabo, por ahora.

imagenes similares pinterest

Imágenes similares en Pinterest

Sin embargo, sí existen en la actualidad tecnologías que pueden realizar tareas específicas que normalmente requieren inteligencia humana, como la percepción visual, el reconocimiento de voz, la toma de decisiones y la traducción entre idiomas. Algunos ejemplos de este tipo de Inteligencia Artificial, en la actualidad, son cosas como la clasificación de imágenes similares en Pinterest o Google Images y el reconocimiento facial en Face ID en  iPhone.

Estos son claros ejemplos de Inteligencia Artificial que exhiben algunas características de la inteligencia humana. Pero, ¿cómo lo hacen? ¿De dónde viene esa inteligencia? Eso nos lleva al siguiente concepto, Machine Learning.

Qué es Machine Learning

Machine Learning o aprendizaje automático es un subconjunto de Inteligencia Artificial en el campo de la informática que a menudo utiliza técnicas estadísticas para dar a las computadoras la capacidad de “aprender” (es decir, mejorar progresivamente el rendimiento en una tarea específica) con datos, sin estar explícitamente programadas.

En otras palabras, el aprendizaje automático en su forma más básica es la práctica de usar algoritmos para analizar datos, aprender de ellos y luego hacer una determinación o predicción sobre algo en el mundo. Por lo tanto, la máquina está “entrenada” utilizando grandes cantidades de datos y algoritmos que le dan la capacidad de aprender a realizar la tarea por sí misma.

El aprendizaje automático vino directamente de las mentes de los pioneros en Inteligencia Artificial. Resultó que una de las mejores áreas de aplicación para el aprendizaje automático, durante muchos años, fue la visión por computadora, aunque requería una gran cantidad de codificación manual para hacer el trabajo. La gente entraba y escribía clasificadores codificados a mano, como filtros de detección de bordes, para que el programa identificara dónde se inició y se detuvo un objeto; detección de forma para determinar si tenía ocho lados; o  un clasificador para reconocer las letras “S-t-o-p”. De todos los clasificadores codificados a mano, desarrollarían algoritmos para dar sentido a la imagen y “aprender” a determinar si era una señal de Stop, especialmente en un día de niebla cuando el cartel no es perfectamente visible o un árbol oscurece parte de él. Hay una razón por la que la visión por computadora y la detección de imágenes no se acercan a rivalizar con los humanos. Hasta hace poco, era demasiado frágil y propenso al error. Con el tiempo, los algoritmos de aprendizaje se corrigieron y marcaron una diferencia; esto nos lleva al siguiente concepto, Deep Learning.

Qué es Deep Learning

Deep Learning o aprendizaje profundo es una técnica dentro del machine learning basado en arquitecturas neuronales. Un modelo basado en deep learning puede aprender a realizar tareas de clasificación directamente a partir de imágenes, texto o sonido, etc. Sin necesidad de intervención humana para la selección de características. Esto se puede considera la principal ventaja del deep learning, llamada “feature discovering”. Pueden, además, poseer una precisión que supera a la capacidad del ser humano.

El aprendizaje profundo es un subconjunto de aprendizaje automático en Inteligencia Artificial (AI) que tiene redes capaces de aprender sin supervisión a partir de datos que no están estructurados ni etiquetados. También conocido como Deep Neural Learning o Deep Neural Network. Aquí es donde reside la gran diferencia respecto al Machine Learning.

Las Redes Neuronales Artificiales se inspiran en nuestra comprensión de la biología de nuestros cerebros, todas esas interconexiones entre neuronas. Pero, a diferencia de un cerebro biológico donde cualquier neurona se puede conectar a cualquier otra neurona dentro de una cierta distancia física, estas redes neuronales artificiales tienen capas discretas, conexiones y direcciones de propagación de datos.

Pueden, por ejemplo, tomar una imagen, cortarla en un grupo de teselas que se ingresan en la primera capa de la red neuronal. En la primera capa, las neuronas individuales pasan los datos a una segunda capa. La segunda capa de neuronas hace su tarea, y así sucesivamente, hasta que se produce la última capa y producción final. Cada neurona asigna una ponderación a su entrada: qué tan correcta o incorrecta es en relación con la tarea que se realiza. El resultado final se determina luego por el total de esas ponderaciones.

Por ejemplo, imaginemos de nuevo la señal de Stop. Los atributos de una imagen de una señal de stop son cortados y “examinados” por las neuronas: su forma octogonal, el color rojo de su motor de bomberos, sus letras distintivas, el tamaño de su señal de tráfico y su movimiento o falta de ella. La tarea de la red neuronal es concluir si esto es una señal de Stop o no. Se trata de un “vector de probabilidad”, realmente una suposición altamente educada, basada en la ponderación.

google self driving

Self-driving car de Google

El Deep Learning ha permitido muchas aplicaciones prácticas de Machine Learning y, por extensión, el campo general de Inteligencia Artifical. El aprendizaje profundo desglosa las tareas de manera que hace que todo tipo de asistencia en máquinas parezca posible, incluso probable. Los automóviles sin conductor, una mejor atención médica preventiva, incluso mejores recomendaciones de películas, son claros ejemplos de aplicación. La Inteligencia es el presente y el futuro. Con la ayuda de Deep Learning, la Inteligencia Artificial puede llegar a ese estado de ciencia ficción que tanto tiempo hemos imaginado con Star Wars y Terminator.

En la última década, las empresas están utilizando el aprendizaje profundo para resolver los desafíos a nivel empresarial. Desde la detección de rostros (Face ID) hasta recomendaciones de productos, segmentación de clientes, reorganización de dígitos, traducción automática, inteligencia de negocios, Internet de las cosas, seguridad de redes, etc. El uso del  deep learning  y machine learning han transformado por completo el mundo en el que vivimos hoy.

Fuente: https://hackernoon.com/top-differences-between-artificial-intelligence-machine-learning-deep-learning-d39cb6f6feaa