miércoles, 21 de noviembre de 2018

Breve historia de la Inteligencia Artificial

Vivimos en la era de la revolución del conocimiento, cuando el poder de una nación no está determinado por el número de soldados de su ejército sino por el conocimiento que posee. La ciencia, la medicina, la ingeniería y los negocios impulsan a las naciones hacia una mejor calidad de vida, pero también requieren personas altamente cualificadas y competentes. Ahora estamos adoptando máquinas inteligentes que puedan capturar la experiencia de personas muy eruditas y razonar de manera similar a los humanos.


viernes, 19 de octubre de 2018

El Futuro del Aprendizaje Automático y de la Inteligencia Artificial

Para el 2020, la Inteligencia Artificial (IA) y las tecnologías asociadas estarán presentes en muchas industrias, dentro de un número considerable de paquetes de software y formando parte de nuestras vidas diarias. Gartner también predice que para 2020, la IA se convertirá en una de las cinco prioridades principales de inversión para al menos el 30 por ciento de los CIOs. Los proveedores globales de software están buscando esta nueva fiebre del oro.



Desafortunadamente, aunque la promesa de nuevos ingresos ha empujado a los propietarios del negocio de software a invertir en tecnologías de inteligencia artificial, la verdad es que la mayoría de las organizaciones no tienen personal cualificado para adoptar la inteligencia artificial.

Una nota implícita de advertencia en muchas encuestas sobre la inteligencia artificial y su impacto en las industrias es que los proveedores de software deben centrarse primero en comprender las necesidades de los clientes-negocio y los beneficios comerciales potenciales de la IA, antes de perseguir la fiebre del oro, que se ha denominado "Lavado de IA”, como se sugiere en “Cómo los proveedores de software empresarial deben (y no deben) explotar la disrupción de la IA”.

El déficit de confianza en las "capacidades de las soluciones basadas en tecnología" que existe hoy en día desaparecerá en los próximos 10 años, afirma In Ten Years: The Future of AI and ML. Durante la próxima década, seremos testigos de un cambio radical de la desconfianza parcial y escepticismo para completar la dependencia de la IA y otras tecnologías avanzadas. La mayoría de las aplicaciones basadas en la inteligencia artificial se orienta al consumidor, lo cual es otra razón sólida para que los usuarios principales superen la barrera de la confianza con el tiempo. Con una mayor exposición y un mayor acceso a las soluciones tecnológicas para sus negocios diarios, la comunidad de Ciencia de Datos del Ciudadano allanará el camino para un mundo de nuevas tecnologías.

Al aprovechar la inteligencia artificial y el aprendizaje automático como catalizadores competitivos de negocios, se afirma que, si bien tecnologías como la nube aportan agilidad a los procesos de negocio, la inteligencia artificial y el aprendizaje automático tienen el poder de influir en los resultados de negocio.

Según Gartner:

"La Inteligencia Artificial y el Aprendizaje Automático han alcanzado un punto crítico de inflexión y aumentarán y ampliarán cada vez más prácticamente todos los servicios o aplicaciones informatizadas. ".

El Futuro de la IA

En la era posterior a la industrialización, las personas han trabajado para crear una máquina que se comporte como un humano. La máquina pensante es el mayor regalo de la IA para la humanidad; La gran entrada de esta máquina autopropulsada ha cambiado repentinamente las reglas operativas de los negocios. En los últimos años, los vehículos autónomos, los asistentes digitales, el personal robótico de la fábrica y las ciudades inteligentes han demostrado que las máquinas inteligentes son posibles. La IA ha transformado a la mayoría de los sectores de la industria como el comercio minorista, la fabricación, las finanzas, la salud y los medios de comunicación, y continúa invadiendo nuevos territorios.

El Futuro del Aprendizaje Automático

He aquí algunas predicciones sobre el aprendizaje automático, basadas en las tendencias actuales de la tecnología y la progresión sistemática del Machine Learning (ML) hacia la madurez:

·         El ML será una parte integral de todos los sistemas de IA, grandes o pequeños.
·       Puesto que el ML adquiere una mayor importancia en las aplicaciones empresariales, existe una   gran posibilidad de que esta tecnología se ofrezca como un servicio basado en la nube conocido   como Aprendizaje automático como servicio (MLaaS).
·        Los sistemas de IA conectados permitirán que los algoritmos de ML "aprendan continuamente",   según la nueva información emergente en Internet.
·    Habrá una gran carrera entre proveedores de hardware para mejorar la potencia de CPU que acomode el procesamiento de datos de ML. Más exactamente, los proveedores de hardware serán empujados a rediseñar sus máquinas para hacer justicia a los poderes del ML.
·    El Aprendizaje Automático ayudará a las máquinas a dar un mejor sentido del contexto y el significado de los datos.

La publicación del blog, 5 Predictions for the Future of Machine Learning de IBM Big Data Hub, ofrece descripciones de las tendencias anteriores.

Algunas Predicciones sobre el Aprendizaje Automático

Un usuario experimentado de técnicas de ML comparte sus ideas sobre el mundo de ML, sugiriendo que estas tendencias son inminentes en el campo del ML:

·   Uso de múltiples tecnologías en ML: La aparición de IoT ha beneficiado al Aprendizaje Automático de muchas maneras. El uso de múltiples estrategias tecnológicas para lograr un mejor aprendizaje es actualmente una práctica del ML; en el futuro es probable que haya más "aprendizaje colaborativo" utilizando múltiples tecnologías.
·      Entorno de computación personalizado: los desarrolladores tendrán acceso a los kits de API para diseñar y ofrecer "aplicaciones más inteligentes". En cierto modo, este esfuerzo es similar a la "programación asistida". A través de estos kits de API, los desarrolladores integrarán fácilmente características de reconocimiento facial, del habla o la visión en sus sistemas.
·     La Computación Cuántica mejorará en gran medida la velocidad de ejecución de algoritmos de ML en el procesamiento vectorial de alta dimensión. Esta será la próxima conquista en el campo de la investigación de ML.
·   Futuros avances en "algoritmos de ML sin supervisión" conducirán a mejores resultados de negocios.
·    Motores de recomendación optimizados: los servicios habilitados de ML del futuro serán más precisos y relevantes. Por ejemplo, los motores de recomendación del futuro serán mucho más relevantes y más cercanos a los gustos y preferencias personales de cada usuario.

El aprendizaje automático y las tendencias de inteligencia artificial en 2018 brindan un resumen rápido de las tendencias tecnológicas más destacadas para 2018. Las 10 tendencias tecnológicas más importantes de 2017 de Gartner resumen la fiebre digital generalizada como la existencia de personas, máquinas y procesos de negocio en un sistema unificado.

¿Afectaran la IA avanzada y el ML a la ciberseguridad?

Siguiendo las tendencias actuales de investigación en IA y ML, los avances en seguridad cibernética han llevado los algoritmos de ML al siguiente nivel de aprendizaje, lo que sugiere que las aplicaciones de AI y ML centradas en la seguridad del futuro estarán marcadas por su velocidad y precisión. La historia completa está disponible en Aprendizaje automático, Inteligencia artificial y el futuro de la seguridad cibernética. Esta tendencia creciente puede acercar a los científicos de datos y los expertos en seguridad cibernética a lograr objetivos comunes de desarrollo de software.

Beneficiando a la humanidad: IA y ML en los sectores principales de la industria

Es difícil ignorar el impacto global del “Lavado de IA” en el mercado actual, y cómo la IA y el ML pueden cambiar los mercados de desarrollo de aplicaciones en el futuro.

La IA y el ML han recibido conjuntamente la misma importancia que el descubrimiento de la electricidad al comienzo de la Revolución Industrial. Estas tecnologías de vanguardia, al igual que la electricidad, han marcado el comienzo de una nueva era en la historia de la tecnología de la información.

Hoy en día, los sistemas impulsados por IA y ML están cambiando drásticamente la forma en que se hacen negocios en todos los sectores de la industria. Estas tecnologías de vanguardia están provocando gradualmente cambios transformadores en los sectores de la industria, algunos de los cuales se enumeran aquí:

En el Sector Sanitario

Cada vez más, médicos humanos y máquinas trabajarán en conjunto para ofrecer mejores resultados. Se espera que las máquinas avanzadas proporcionen un diagnóstico preciso y oportuno de las condiciones del paciente, mientras que los profesionales pueden centrarse más en los pacientes.

En el Sector Financiero

La inteligencia artificial y el aprendizaje automático son las nuevas tendencias tecnológicas del futuro analiza cómo las últimas tecnologías como blockchain están impactando los mercados de capital de la India. Por ejemplo, los operadores del mercado de capitales pueden usar blockchain para predecir movimientos en el mercado y detectar fraudes. Las tecnologías de IA no solo brindan oportunidades para nuevos modelos de negocios en el mercado financiero, sino que también fortalecen la posición del tecnólogo de IA en el ecosistema de inversión empresarial.

En el Sector Inmobiliario

Contactually.com, un sistema avanzado de CRM para el negocio de bienes raíces, ha sido diseñado específicamente para conectar a inversores y startups con sede en Washington DC. La potencia añadida de los algoritmos de Aprendizaje Automático transforma el sistema estático en una máquina interactiva en vivo, que responde, aprueba y recomienda.

En Administración de Bases de Datos

Las tareas repetitivas de un sistema DBA promedio brindan la oportunidad para que las tecnologías de IA puedan automatizar procesos y tareas. El DBA actual cuenta con herramientas avanzadas, de modo que puedan realizar contribuciones de valor añadido a sus organizaciones en lugar de simplemente realizar funciones de memoria, tal como se explora en What Do AI y Machine Learning Mean for DBAs.

En el Mercado de Dispositivos Personales 

Algunos analistas de negocio afirman que la IA es un cambio de juego para el mercado de dispositivos personales. Para 2020, aproximadamente el 60 por ciento de los proveedores de tecnología de dispositivos personales dependerán de que plataformas en la nube habilitadas para IA ofrezcan una funcionalidad mejorada y servicios personalizados. La tecnología de IA ofrecerá una "experiencia emocional al usuario".

lunes, 16 de abril de 2018

Análisis y visualización básica de estadísticas de tweets con Python

Voy a realizar un análisis estadístico básico de la cuenta de tweeter @realDonaldTrump de cara a un posterior análisis de sentimientos (interesante, ¿no?). Primero quiero calcular algunos datos estadísticos básicos, como la media de la longitud de los caracteres de todos los tweets, el tweet con más “me gusta” y el más retuiteado, etc.
Este artículo está basado en un artículo anterior donde ya extraje los datos de los tweets y los organice de una manera fácil de gestionar. Recuerda que en el anterior artículo use la cuenta @machinelearnbot para los ejemplos, pero en este artículo la he sustituido por la cuenta @realDonaldTrump para realizar un ejemplo más significativo de cara al análisis de sentimientos que quiero demostrar.

Puedes descargarte el código en el repositorio GitHub que he creado para esta publicación.

A partir de ahora, solo añadiré un código de entrada y la salida justo debajo del código.

Para obtener la media, usando numpy:

# Sacamos la media de las longitudes:
mean = np.mean(data['longitud'])

print("La longitud media de los tweets: {}".format(mean))
La longitud media de los tweets: 126.01

Para calcular el tweet que más ha gustado y el más retuiteado usaremos algunas funcionalidades de pandas:

# Sacamos el tweet con más "Me gusta" y el más retuiteado:
fav_max = np.max(data['Likes'])
rt_max  = np.max(data['RTs'])

fav = data[data.Likes == fav_max].index[0]
rt  = data[data.RTs == rt_max].index[0]

# Tweet que más ha gustado:
print("El tweet con más <Me gusta> es: \n{}".format(data['Tweets'][fav]))
print("Número de <Me gusta>: {}".format(fav_max))
print("{} caracteres.\n".format(data['longitud'][fav]))

# Tweet más retuiteado:
print("El tweet más retuiteado es: \n{}".format(data['Tweets'][rt]))
print("Número de retweets: {}".format(rt_max))
print("{} caracteres.\n".format(data['longitud'][rt]))

El tweet con más <Me gusta> es: 
Crazy Joe Biden is trying to act like a tough guy. Actually, he is weak, both mentally and physically, and yet he t… https://t.co/4e33ZxnAw7
Número de <Me gusta>: 257953
140 caracteres.

El tweet más retuiteado es: 
Crazy Joe Biden is trying to act like a tough guy. Actually, he is weak, both mentally and physically, and yet he t… https://t.co/4e33ZxnAw7
Número de retweets: 75540
140 caracteres.




Es común que el tweet con más “me gusta” sea el tweet más retuiteado, pero no tiene que cumplirse esto necesariamente. Lo que estoy haciendo es encontrar la cantidad máxima de “me gusta” en la columna "Likes" y la cantidad máxima de retweets en la columna "RTs" usando la función max de numpy. Con esto buscamos el índice de cada una de las dos columnas que satisfaga ser el máximo. Como más de uno puede tener la misma cantidad de me gusta/retweets (el máximo) solo necesitamos coger el primero encontrado, y es por eso que usamos .index [0] para asignar el índice a las variables fav y rt. Para imprimir el tweet que satisface, accedemos a los datos de la misma forma que accederíamos a una matriz o cualquier objeto indexado.

Ahora ya podemos visualizar algunas cosas. :)

Pandas tiene su propio objeto para series temporales. Como tenemos un vector completo con fechas de creación, podemos construir series temporales con respecto a las longitudes de tweets, “me gusta” y retweets.

Lo hacemos de la siguiente forma:

# Creamos las series temporales de datos de los tweets:

tlen = pd.Series(data=data['longitud'].values, index=data['Fecha'])
tfav = pd.Series(data=data['Likes'].values, index=data['Fecha'])
tret = pd.Series(data=data['RTs'].values, index=data['Fecha'])

Y si queremos visualizar las series temporales, pandas ya dispone de su propio método. Podemos representar una serie temporal de la siguiente manera:

# Variación de las longitudes de tweets con el tiempo:
tlen.plot(figsize=(16,4), color='r');

Esto crea la salida siguiente:

Y para visualizar los “Me gusta” versus los retweets en el mismo gráfico:

# Visualización de Me gusta vs Retuits:

tfav.plot(figsize=(16,4), label="Me gusta", legend=True)
tret.plot(figsize=(16,4), label="Retuits", legend=True);

Esto crea la salida siguiente:

Ahora voy a visualizar las fuentes en un gráfico de tarta, ya que me he dado cuenta de que lo normal es que no todos los tweets sean tuiteados desde la misma fuente (😱🤔). Primero limpio todas las fuentes:

# Obtener todas las fuentes posibles:
fuentes = []
for fuente in data['Fuente']:
    if fuente not in fuentes:
        fuentes.append(fuente)

# Imprimir la lista de fuentes:
print("Creación de fuentes de contenido:")
for fuente in fuentes:
    print("* {}".format(fuente))

Con el siguiente resultado, nos damos cuenta de que, básicamente, esta cuenta de Twitter tiene cuatro fuentes:

Creación de fuentes de contenido:
* Twitter for iPhone
* Media Studio
* Twitter Web Client
* Twitter for iPad

Ahora contamos el número de cada fuente y creamos un gráfico de tarta. Observa que esta celda de código no es la más optimizada ... Ten en cuenta que eran las 2 de la mañana cuando estaba diseñando este programa. ¡Un poquito de por favor!! 😅

# Creamos un vector numpy mapeado a las etiquetas:
percent = np.zeros(len(fuentes))

for fuente in data['Fuente']:
    for indice in range(len(fuentes)):
        if fuente == fuentes[indice]:
            percent[indice] += 1
            pass

percent /= 100

# Gráfico de tarta:
tarta = pd.Series(percent, index=fuentes, name='Fuentes')
tarta.plot.pie(fontsize=11, autopct='%.2f', figsize=(6, 6));


Con esto obtenemos un resultado como este:

Y podemos ver el porcentaje de tweets por fuente. Como se puede ver, en este caso se ha tuiteado a través del iPhone en un 95,5% de los casos.

En el siguiente post continuaré con este caso de uso y haré un análisis de sentimiento sobre esta cuenta de Twitter. 

¡No te lo pierdas! ;)

lunes, 9 de abril de 2018

Extracción y gestión básica de datos de Twitter con Python

En este artículo voy a extraer datos de Twitter usando tweepy y a mostrar cómo gestionarlos usando pandas. Explicaré la publicación completa junto con el código, de la manera más simple posible.

miércoles, 4 de abril de 2018

Ingestión de datos con Spark y Kafka

Un componente de arquitectura importante de cualquier plataforma de datos son aquellas piezas que gestionan la ingestión de datos. En muchos de los entornos actuales de "big data", los datos involucrados son de tal escala en términos de rendimiento (piense en la API  "firehose" de Twitter) o volumen (por ejemplo, el proyecto 1000 Genomas) que deben considerarse cuidadosamente distintas técnicas y herramientas.


jueves, 11 de enero de 2018

Introducción a la ingesta en Tiempo Real con Kafka

En una publicación anterior aborde el tema de la ingestión de datos masivos usando la herramienta Flume (consúltala aquí). Siguiendo con el tema de la ingestión de datos, en este post voy a introducir el uso de Kafka para la ingestión en Tiempo Real sobre Data Lakes construidos en plataformas Big Data, como puede ser Hadoop HDFS.



martes, 9 de enero de 2018

Introducción a Apache Spark con Anaconda Spider

Esta publicación introductoria está destinada a ayudarte a dar el primer paso en el procesamiento de Big Data con Apache Spark utilizando la API de Python.

lunes, 8 de enero de 2018

Introducción a la ingesta de datos con Flume

Flume está diseñado para la ingestión de grandes volúmenes de datos basados en eventos en Hadoop. El ejemplo clásico es usar Flume para recopilar logs de un banco de servidores web, y luego mover los eventos del log de esos archivos a nuevos archivos agregados a una Data Lake en HDFS para su procesamiento. El destino habitual (o sink en el lenguaje de Flume) es HDFS. Sin embargo, Flume es lo suficientemente flexible como para escribir en otros sistemas, como HBase o Solr.