86
TELENOIKA_ MARZO 2013 Óscar Marín Miró @oscarmarinmiro [email protected] Taller de Minería y Análisis de Datos Friday, March 8, 2013

Taller de Minería y Análisis de Datos - assets.outliers.esassets.outliers.es/cursos/mineria/TN_Curso_Mineria.pdf · ‣ Linux/Mac OS/Windows: Abrir ventana de comandos y ejecutar

Embed Size (px)

Citation preview

Page 1: Taller de Minería y Análisis de Datos - assets.outliers.esassets.outliers.es/cursos/mineria/TN_Curso_Mineria.pdf · ‣ Linux/Mac OS/Windows: Abrir ventana de comandos y ejecutar

TELENOIKA_ MARZO 2013

Óscar Marín Miró@[email protected]

Taller de Minería y Análisis de Datos

Friday, March 8, 2013

Page 2: Taller de Minería y Análisis de Datos - assets.outliers.esassets.outliers.es/cursos/mineria/TN_Curso_Mineria.pdf · ‣ Linux/Mac OS/Windows: Abrir ventana de comandos y ejecutar

CONTENIDOSINTRODUCCIÓN

PYTHON

ADQUISICIÓN DE DATOS

ANÁLISIS

REFERENCIAS

Material del curso en http://assets.outliers.es/cursos/mineria

Friday, March 8, 2013

Page 3: Taller de Minería y Análisis de Datos - assets.outliers.esassets.outliers.es/cursos/mineria/TN_Curso_Mineria.pdf · ‣ Linux/Mac OS/Windows: Abrir ventana de comandos y ejecutar

INTRODUCCIÓN

Friday, March 8, 2013

Page 4: Taller de Minería y Análisis de Datos - assets.outliers.esassets.outliers.es/cursos/mineria/TN_Curso_Mineria.pdf · ‣ Linux/Mac OS/Windows: Abrir ventana de comandos y ejecutar

DE LOS DATOS A LA SABIDURÍA

“Los datos, organizados y empleados debidamente, pueden convertirse en información.La información, absorbida, comprendida y aplicada por las personas, puede convertirse en conocimientos.Los conocimientos aplicados frecuentemente en un campo pueden convertirse en sabiduría, y la sabiduría es la base de la acción positiva”

Michael Cooley:”Architect or Bee?” Hogarth Press, London, UK, 1987.

Friday, March 8, 2013

Page 5: Taller de Minería y Análisis de Datos - assets.outliers.esassets.outliers.es/cursos/mineria/TN_Curso_Mineria.pdf · ‣ Linux/Mac OS/Windows: Abrir ventana de comandos y ejecutar

DE LOS DATOS A LA SABIDURÍA

Datos

Información

Conocimiento

Sabiduría

•Registros de observaciones

•Estructuración de los datos•Semántica•Narrativa

•Asimilación personal•Aplicación de la información•‘Insights’

•No transmisible•Aplicación ‘ética’ de los conocimientos

Com

plej

idad

Cog

nitiv

a

Friday, March 8, 2013

Page 6: Taller de Minería y Análisis de Datos - assets.outliers.esassets.outliers.es/cursos/mineria/TN_Curso_Mineria.pdf · ‣ Linux/Mac OS/Windows: Abrir ventana de comandos y ejecutar

¿QUÉ ES EL ANÁLISIS DE DATOS?

‣ Proceso multidisciplinar

‣ Pasar de los datos a la información

‣ Nuevas maneras de estructurar datos desestructurados

‣ Cuantitativo o cualitativo

‣ Automático, semi-automático, manual

‣ El dataset puede ser el punto de partida y/o de llegada

Friday, March 8, 2013

Page 7: Taller de Minería y Análisis de Datos - assets.outliers.esassets.outliers.es/cursos/mineria/TN_Curso_Mineria.pdf · ‣ Linux/Mac OS/Windows: Abrir ventana de comandos y ejecutar

PIPELINE DE DATOS

AnálisisAdquisición Presentación

DatosInformación /

Datos

•API’s•Scraping•Ficheros•BBDD•Proveedores

•Minería de texto•Minería emocional•Minería de perfiles•Machine Learning•Métricas de Influencia•Métricas de Red•Estadística

InformaciónDatos

•Visualización•Narrativa

Friday, March 8, 2013

Page 8: Taller de Minería y Análisis de Datos - assets.outliers.esassets.outliers.es/cursos/mineria/TN_Curso_Mineria.pdf · ‣ Linux/Mac OS/Windows: Abrir ventana de comandos y ejecutar

FASES DE UN TRABAJO (VISUALIZACIÓN)

Friday, March 8, 2013

Page 9: Taller de Minería y Análisis de Datos - assets.outliers.esassets.outliers.es/cursos/mineria/TN_Curso_Mineria.pdf · ‣ Linux/Mac OS/Windows: Abrir ventana de comandos y ejecutar

MÉTODOS: ADQUISICIÓN

‣ Adquisición

‣ API’s

‣ Scraping

‣ Crawling

‣ Open Data

‣ Ficheros (excel, tsv,csv)

Friday, March 8, 2013

Page 10: Taller de Minería y Análisis de Datos - assets.outliers.esassets.outliers.es/cursos/mineria/TN_Curso_Mineria.pdf · ‣ Linux/Mac OS/Windows: Abrir ventana de comandos y ejecutar

MÉTODOS: ANÁLISIS

‣ Análisis

‣ Numérico / Estadístico (p.ej: histograma de followers)

‣ Contenido (p.ej: análisis semántico)

‣ Relaciones: Grafos entre cualquiera de los anteriores

Friday, March 8, 2013

Page 11: Taller de Minería y Análisis de Datos - assets.outliers.esassets.outliers.es/cursos/mineria/TN_Curso_Mineria.pdf · ‣ Linux/Mac OS/Windows: Abrir ventana de comandos y ejecutar

MÉTODOS: PRESENTACIÓN

‣ Presentación

‣ Visualización de Redes (grafos)

‣ Nubes de palabras (contenido)

‣ Gráficos estadísticos (numérico)

Friday, March 8, 2013

Page 12: Taller de Minería y Análisis de Datos - assets.outliers.esassets.outliers.es/cursos/mineria/TN_Curso_Mineria.pdf · ‣ Linux/Mac OS/Windows: Abrir ventana de comandos y ejecutar

HERRAMIENTAS

‣ Programación:

‣ Python (multipropósito)

‣ R (análisis estadístico)

‣ Librería Pattern para Python

‣ Sin programación

‣ Gephi (análisis de redes)

‣ Wordle (nubes de palabras)

Friday, March 8, 2013

Page 13: Taller de Minería y Análisis de Datos - assets.outliers.esassets.outliers.es/cursos/mineria/TN_Curso_Mineria.pdf · ‣ Linux/Mac OS/Windows: Abrir ventana de comandos y ejecutar

PYTHON

Friday, March 8, 2013

Page 14: Taller de Minería y Análisis de Datos - assets.outliers.esassets.outliers.es/cursos/mineria/TN_Curso_Mineria.pdf · ‣ Linux/Mac OS/Windows: Abrir ventana de comandos y ejecutar

PYTHON¿POR QUÉ PYTHON?

SETUP

LO BÁSICO

CADENAS

CONTROL DE FLUJO

LISTAS Y ORDENACIÓN

DICCIONARIOS

FICHEROS

Friday, March 8, 2013

Page 15: Taller de Minería y Análisis de Datos - assets.outliers.esassets.outliers.es/cursos/mineria/TN_Curso_Mineria.pdf · ‣ Linux/Mac OS/Windows: Abrir ventana de comandos y ejecutar

¿POR QUÉ PYTHON?

‣Es un lenguaje interpretado‣Orientado a Objetos‣Código elegante y mantenible‣Ha pasado el test del tiempo [1991]‣Open Source‣Infinitas librerías‣Alto nivel‣Luce especialmente en computación científica,

procesado de texto y desarrollo web

Friday, March 8, 2013

Page 16: Taller de Minería y Análisis de Datos - assets.outliers.esassets.outliers.es/cursos/mineria/TN_Curso_Mineria.pdf · ‣ Linux/Mac OS/Windows: Abrir ventana de comandos y ejecutar

¿POR QUÉ PYTHON?

‣Entornos de éxito:‣Django (Web)‣Flask (Web)‣Rhino3D (Modelado)‣Nodebox (Visualización)‣Matplotlib, ScyPy, numPy (Científico)

‣Casos de éxito:‣Industrial Light & Magic‣Google App Engine‣Es un pilar en el desarrollo back-end Google‣Disqus [17.000 peticiones / segundo]‣Instagram‣Pinterest‣Librerías NLTK, Pattern

Friday, March 8, 2013

Page 19: Taller de Minería y Análisis de Datos - assets.outliers.esassets.outliers.es/cursos/mineria/TN_Curso_Mineria.pdf · ‣ Linux/Mac OS/Windows: Abrir ventana de comandos y ejecutar

SET-UP: EJERCICIO

‣ Validación de la instalación de python‣ Linux/Mac OS/Windows: Abrir ventana de

comandos y ejecutar ‘python’

Friday, March 8, 2013

Page 20: Taller de Minería y Análisis de Datos - assets.outliers.esassets.outliers.es/cursos/mineria/TN_Curso_Mineria.pdf · ‣ Linux/Mac OS/Windows: Abrir ventana de comandos y ejecutar

SET-UP: EJERCICIO

‣ Validación de la instalación de setuptools. Desde linea de comandos:

Friday, March 8, 2013

Page 21: Taller de Minería y Análisis de Datos - assets.outliers.esassets.outliers.es/cursos/mineria/TN_Curso_Mineria.pdf · ‣ Linux/Mac OS/Windows: Abrir ventana de comandos y ejecutar

SET-UP: EJERCICIO

‣ Validación de la instalación de pyCharm‣ Descargar (aquí) y descomprimir el código

fuente del curso en el directorio que elijamos‣ Abrir PyCharm y Elegir la opción File>Open

Directory‣ Seleccionar el directorio donde hemos

descomprimido el código‣ Navegar hasta Setup/helloName.py‣ Botón Derecho > Run ‘helloName’

Friday, March 8, 2013

Page 22: Taller de Minería y Análisis de Datos - assets.outliers.esassets.outliers.es/cursos/mineria/TN_Curso_Mineria.pdf · ‣ Linux/Mac OS/Windows: Abrir ventana de comandos y ejecutar

SET-UP: EJERCICIO

Friday, March 8, 2013

Page 23: Taller de Minería y Análisis de Datos - assets.outliers.esassets.outliers.es/cursos/mineria/TN_Curso_Mineria.pdf · ‣ Linux/Mac OS/Windows: Abrir ventana de comandos y ejecutar

PYTHON: LO BÁSICO

‣ El intérprete de python.‣ En PyCharm: Tools > Run Python Console

Friday, March 8, 2013

Page 24: Taller de Minería y Análisis de Datos - assets.outliers.esassets.outliers.es/cursos/mineria/TN_Curso_Mineria.pdf · ‣ Linux/Mac OS/Windows: Abrir ventana de comandos y ejecutar

PYTHON: LO BÁSICO

‣ Esqueleto de un programa‣ Abrir Basico/programStub.py‣ Botón derecho sobre el fichero > Run

Friday, March 8, 2013

Page 25: Taller de Minería y Análisis de Datos - assets.outliers.esassets.outliers.es/cursos/mineria/TN_Curso_Mineria.pdf · ‣ Linux/Mac OS/Windows: Abrir ventana de comandos y ejecutar

PYTHON: LO BÁSICO

‣ Esqueleto de un programa‣ Los módulos se importan al principio‣ Los cuerpos de las funciones y de las estructuras de

control van ‘indentados’ para alinear principio y fin‣ Un programa ejecutable bien estructurado debe

contener la funcion ‘main’‣ Las funciones de declaran antes del ‘main’, despues

de la importación de módulos externos. Las veremos más adelante

‣ Un módulo es un fichero que contiene funciones que pueden ser llamadas importándolo. Lo veremos más adelante. En este caso importamos el módulo ‘sys’ e invocamos su función ‘sys.platform’

Friday, March 8, 2013

Page 26: Taller de Minería y Análisis de Datos - assets.outliers.esassets.outliers.es/cursos/mineria/TN_Curso_Mineria.pdf · ‣ Linux/Mac OS/Windows: Abrir ventana de comandos y ejecutar

PYTHON: LO BÁSICO

• Abrir y ejecutar Basico / ejemploFuncion.py• El operador ‘*’ aplicado sobre una cadena, la concatena

N veces. Las triples comillas marcan la ‘docString’• En la definición se declaran los parámetros que entran• Se retorna el resultado de una variable, si aplica

Friday, March 8, 2013

Page 27: Taller de Minería y Análisis de Datos - assets.outliers.esassets.outliers.es/cursos/mineria/TN_Curso_Mineria.pdf · ‣ Linux/Mac OS/Windows: Abrir ventana de comandos y ejecutar

PYTHON: LO BÁSICO

‣ Python es un lenguaje dinámico:‣ Ejecutar lo siguiente en el anterior ejemplo:

‣ Las variables tienen ‘tipado’ dinámico. Es conveniente nombrarlas haciendo alusión a qué tipo de dato contienen: cadenaNombre, listaNombres, diccionarioNombres, etc…

‣ Para usar el sistema de ayuda, hay que lanzar el intérprete de python. P.ej: help(sys), help(len)

‣ La documentación oficial (referencia/tutoriales/librarías, la podéis encontrar en docs.python.org, pero muchas veces una búsqueda en Google es más rápida (p.ej: python string)

Friday, March 8, 2013

Page 28: Taller de Minería y Análisis de Datos - assets.outliers.esassets.outliers.es/cursos/mineria/TN_Curso_Mineria.pdf · ‣ Linux/Mac OS/Windows: Abrir ventana de comandos y ejecutar

PYTHON: CADENAS

‣ Un tipo de dato que representa una secuencia de caracteres

‣ Los principales tipos de datos en python son: cadenas, enteros, flotantes, listas, diccionarios y tuplas

Friday, March 8, 2013

Page 29: Taller de Minería y Análisis de Datos - assets.outliers.esassets.outliers.es/cursos/mineria/TN_Curso_Mineria.pdf · ‣ Linux/Mac OS/Windows: Abrir ventana de comandos y ejecutar

PYTHON: CADENAS

• Abrir el fichero Cadenas/StringOps.py• Vamos a aprovechar para usar el depurador y ejecutar

paso a paso cada operación• El código se auto-explica• Se pone un ‘breakpoint’ en la línea 14• Se le da al icono de depurar• Con ‘step over’ y viendo la consola vamos viendo los

resultados de la ejecución de cada línea• Ejercicios:

• Cambiar el valor de la variable ‘e’ por 3.14 en tiempo de depuración, de tal manera que en la linea 31 se imprima el valor nuevo de la variable ‘e’

• En la línea 73, conseguir que pString tenga el mismo contenido, pero usando concatenaciones y la funcion str()

Friday, March 8, 2013

Page 30: Taller de Minería y Análisis de Datos - assets.outliers.esassets.outliers.es/cursos/mineria/TN_Curso_Mineria.pdf · ‣ Linux/Mac OS/Windows: Abrir ventana de comandos y ejecutar

PYTHON: CONTROL DE FLUJO (IF)

‣ Comprueba si se cumple una condición y ejecuta un bloque de código en ese caso

‣ El bloque ‘else’ si lo hay, se ejecuta si NO se cumple la condición‣ Los operadores de ‘test’ pueden ser:‣ ‘==‘ igualdad‣ ‘!=‘ distinto‣ ‘>’ mayor que‣ ‘>=‘ mayor o igual que‣ ‘<=‘ menor o igual que‣ ‘<‘ menor que

‣ Las condiciones se pueden agrupar con operadores booleanos: ‘and’, ‘not’, ‘or’

‣ Abrir el fuente Flujo/if.py

Friday, March 8, 2013

Page 31: Taller de Minería y Análisis de Datos - assets.outliers.esassets.outliers.es/cursos/mineria/TN_Curso_Mineria.pdf · ‣ Linux/Mac OS/Windows: Abrir ventana de comandos y ejecutar

PYTHON: EJERCICIO CONSOLIDACIÓN

• Abrir Flujo/ejercicio.py• Completar las funciones para que

devuelvan los resultados explicados• Ejecutar el programa para comprobar la

corrección de las funciones

Friday, March 8, 2013

Page 32: Taller de Minería y Análisis de Datos - assets.outliers.esassets.outliers.es/cursos/mineria/TN_Curso_Mineria.pdf · ‣ Linux/Mac OS/Windows: Abrir ventana de comandos y ejecutar

PYTHON: CONTROL DE FLUJO (WHILE)

‣ Repite un bloque de código (indefinidamente) mientras se mantenga una condición

‣ OJO con los bucles infinitos (el ‘protagonista’ de la condición debe alterarse dentro del bucle).

‣ Abrir el fuente Flujo/while.py

Friday, March 8, 2013

Page 33: Taller de Minería y Análisis de Datos - assets.outliers.esassets.outliers.es/cursos/mineria/TN_Curso_Mineria.pdf · ‣ Linux/Mac OS/Windows: Abrir ventana de comandos y ejecutar

PYTHON: LISTA

‣ Es un ‘vector’ de valores ‣ Se expresa entre corchetes‣ Se accede a ella mediante un índice‣ Ejemplos:‣ a = [1,2,3,7,8]‣ a[0] = 1‣ a[3] = 7‣ len(a) = 5‣ OJO: a[5] da error en ejecución

‣ b = [“hola”,”hello”,”alo”]‣ len(b) = 3‣ b[0] = “hola”‣ b[2] = “alo”

‣ Abrir fuente Listas/lists.py para ver diferentes operaciones sobre una lista

Friday, March 8, 2013

Page 34: Taller de Minería y Análisis de Datos - assets.outliers.esassets.outliers.es/cursos/mineria/TN_Curso_Mineria.pdf · ‣ Linux/Mac OS/Windows: Abrir ventana de comandos y ejecutar

PYTHON: ORDENACIÓN

‣ Siempre se aplica sobre listas ‣ Dependiendo del tipo será numérica o alfabética‣ Con ‘key’ se puede ordenar según una función auxiliar‣ Abrir el fuente Listas/sort.py

Friday, March 8, 2013

Page 35: Taller de Minería y Análisis de Datos - assets.outliers.esassets.outliers.es/cursos/mineria/TN_Curso_Mineria.pdf · ‣ Linux/Mac OS/Windows: Abrir ventana de comandos y ejecutar

PYTHON: TUPLAS

• Conjunto de elementos NO NECESARIAMENTE del mismo tipo

• El numero de elementos es inmutable• Ejemplos:

• point = (x,y)• entradaAgenda = (nombre, apellido, edad, direccion,

telefono)• Una funcion puede devolver una tupla:

• return (x,y)• Abrir Listas/tuples.py

Friday, March 8, 2013

Page 36: Taller de Minería y Análisis de Datos - assets.outliers.esassets.outliers.es/cursos/mineria/TN_Curso_Mineria.pdf · ‣ Linux/Mac OS/Windows: Abrir ventana de comandos y ejecutar

PYTHON: EJERCICIO CONSOLIDACIÓN

‣ Abrir el fuente Listas/ejercicio.py‣ Rellenar las funciones y pasar los tests

Friday, March 8, 2013

Page 37: Taller de Minería y Análisis de Datos - assets.outliers.esassets.outliers.es/cursos/mineria/TN_Curso_Mineria.pdf · ‣ Linux/Mac OS/Windows: Abrir ventana de comandos y ejecutar

PYTHON: DICCIONARIOS

‣ Almacenan en una estructura de datos pares ‘clave’ ‘valor’‣ Ejemplo:‣ telefonos = {}‣ telefonos[‘persona1’] = “913555589”‣ telefonos[‘persona2’] = “933090888”

‣ Para encontrar el valor correspondiente a una clave, no hace falta recorrerlo (como en las listas): telefono = telefonos[‘persona1’]

‣ Están diseñados para acceso rápido‣ En otros lenguajes: hashMap, hashtable, hash‣ Abrir el fuente Diccionarios/dicts.py

Friday, March 8, 2013

Page 38: Taller de Minería y Análisis de Datos - assets.outliers.esassets.outliers.es/cursos/mineria/TN_Curso_Mineria.pdf · ‣ Linux/Mac OS/Windows: Abrir ventana de comandos y ejecutar

PYTHON:FICHEROS

• Una cantidad de datos almacenados en un disco duro• Se acceden mediante su ruta o ‘path’• Los datos pueden estar estructurados de cualquier

manera, hay que conocerla antes de leerlos• Los ficheros en formato texto se suelen leer por líneas • Hay tres modos de acceso: lectura, escritura y ‘append’• Abrir el fuente Ficheros/files.py

Friday, March 8, 2013

Page 39: Taller de Minería y Análisis de Datos - assets.outliers.esassets.outliers.es/cursos/mineria/TN_Curso_Mineria.pdf · ‣ Linux/Mac OS/Windows: Abrir ventana de comandos y ejecutar

PYTHON:EJERCICIO FINAL DE CONSOLIDACIÓN

• Este ejercicio repasa:• Cadenas, diccionarios, listas• Ficheros• Ordenación• Funciones• Control de flujo

• Paciencia, es un ejercicio pensado para consolidar todo lo visto hasta ahora

• Abrir Ficheros/ejercicio.py

Friday, March 8, 2013

Page 40: Taller de Minería y Análisis de Datos - assets.outliers.esassets.outliers.es/cursos/mineria/TN_Curso_Mineria.pdf · ‣ Linux/Mac OS/Windows: Abrir ventana de comandos y ejecutar

ADQUISICIÓN DE DATOS

Friday, March 8, 2013

Page 41: Taller de Minería y Análisis de Datos - assets.outliers.esassets.outliers.es/cursos/mineria/TN_Curso_Mineria.pdf · ‣ Linux/Mac OS/Windows: Abrir ventana de comandos y ejecutar

ADQUISICIÓN DE DATOS

• Traer a memoria datos que existen fuera de ella• ¿Dónde?

• Fichero local (CSV, JSON, XML)• BBDD• Internet:

• API• Scraping• Crawling• Ficheros remotos (CSV, JSON, XML)

Friday, March 8, 2013

Page 42: Taller de Minería y Análisis de Datos - assets.outliers.esassets.outliers.es/cursos/mineria/TN_Curso_Mineria.pdf · ‣ Linux/Mac OS/Windows: Abrir ventana de comandos y ejecutar

ADQUISICIÓN DE DATOS: FORMATOS

TSV

“valor1\tvalor2\tvalor3\t\n”

JSON

{ [

{ “campo1”: ·valor11,”campo2”:valor21},

{ “campo1”: ·valor1N,”campo2”:valor2N}

]}

XML

<items>

<item campo1="valor11" campo2="valor21" />

<item campo1="valor1N" campo2="valor2N" /> </items>

Friday, March 8, 2013

Page 45: Taller de Minería y Análisis de Datos - assets.outliers.esassets.outliers.es/cursos/mineria/TN_Curso_Mineria.pdf · ‣ Linux/Mac OS/Windows: Abrir ventana de comandos y ejecutar

ADQUISICIÓN DE DATOS: TWITTER API

‣ GET API:

‣ Parámetros: consulta booleana, lenguaje,geocode

‣ Sin autenticación, pero en proceso de cambio, ojo!

‣ Tweets ‘incompletos’: sin info de usuario ni de RT

‣ 150 peticiones por hora

‣ No documentado, pero puedes buscar ‘places’

Friday, March 8, 2013

Page 46: Taller de Minería y Análisis de Datos - assets.outliers.esassets.outliers.es/cursos/mineria/TN_Curso_Mineria.pdf · ‣ Linux/Mac OS/Windows: Abrir ventana de comandos y ejecutar

ADQUISICIÓN DE DATOS: TWITTER API

‣ Streaming API:

‣ Parámetros:

‣ Follow: hasta 5000 usuarios

‣ Keywords (track): hasta 400

‣ Location: hasta 25 cajas

‣ Requiere una cuenta twitter

‣ El follow te da tweets, RT’s origen y destino; replies

‣ Empieza a limitar si el volumen que te dan > 1%

Friday, March 8, 2013

Page 48: Taller de Minería y Análisis de Datos - assets.outliers.esassets.outliers.es/cursos/mineria/TN_Curso_Mineria.pdf · ‣ Linux/Mac OS/Windows: Abrir ventana de comandos y ejecutar

ADQUISICIÓN DE DATOS: EJERCICIO 1 (TWITTER)

‣ Vamos a ‘enchufarnos’ al streaming de twitter

‣ La librería que vamos a usar es tweetstream

‣ Seguiremos un hashtag que sea trending topic ahora mismo

‣ Cogeremos 1000 tweets y los volcaremos en un fichero json

‣ Simplemente ejecutarlo y probar != hashtags

‣ El ejercicio está en Twitter/twitterStreamGet.py

Friday, March 8, 2013

Page 49: Taller de Minería y Análisis de Datos - assets.outliers.esassets.outliers.es/cursos/mineria/TN_Curso_Mineria.pdf · ‣ Linux/Mac OS/Windows: Abrir ventana de comandos y ejecutar

ADQUISICIÓN DE DATOS: EJERCICIO 2 (TWITTER)

‣ Queremos empezar a hacer análisis

‣ Para ello, hay que modificar el ejercicio para que:

‣ Almace cada tweet en un array cronologico

‣ Salga despues de coger 1000 tweets

‣ Analice el número de impactos (sumando los followers de cada tweet en un conteo global

‣ Fuente para modificar en Twitter/twitterStreamEjercicio.py

Friday, March 8, 2013

Page 50: Taller de Minería y Análisis de Datos - assets.outliers.esassets.outliers.es/cursos/mineria/TN_Curso_Mineria.pdf · ‣ Linux/Mac OS/Windows: Abrir ventana de comandos y ejecutar

ADQUISICIÓN DE DATOS: VOLCADO A CSV

‣ Volcaremos los 100 tweets a un fichero csv para importarlo desde otros programas

‣ Usaremos la librería CSV de Python

‣ El código de ejemplo es Twitter/twitterStreamOutCSV.py

Friday, March 8, 2013

Page 51: Taller de Minería y Análisis de Datos - assets.outliers.esassets.outliers.es/cursos/mineria/TN_Curso_Mineria.pdf · ‣ Linux/Mac OS/Windows: Abrir ventana de comandos y ejecutar

ADQUISICIÓN DE DATOS: VOLCADO A JSON

‣ Volcaremos los 100 tweets a un fichero json para importarlo desde otros programas

‣ Usaremos la librería JSON de Python

‣ El código de ejemplo es Twitter/twitterStreamOutJSON.py

Friday, March 8, 2013

Page 52: Taller de Minería y Análisis de Datos - assets.outliers.esassets.outliers.es/cursos/mineria/TN_Curso_Mineria.pdf · ‣ Linux/Mac OS/Windows: Abrir ventana de comandos y ejecutar

ANÁLISIS

Friday, March 8, 2013

Page 53: Taller de Minería y Análisis de Datos - assets.outliers.esassets.outliers.es/cursos/mineria/TN_Curso_Mineria.pdf · ‣ Linux/Mac OS/Windows: Abrir ventana de comandos y ejecutar

ANÁLISIS DE DATOS

‣ Análisis cuantitativos (métricas)

‣ Análisis de contenido (cuantitativo y cualitativo: sentiment, entidades, NLP)

‣ Análisis de relaciones

Friday, March 8, 2013

Page 54: Taller de Minería y Análisis de Datos - assets.outliers.esassets.outliers.es/cursos/mineria/TN_Curso_Mineria.pdf · ‣ Linux/Mac OS/Windows: Abrir ventana de comandos y ejecutar

ANÁLISIS CUANTITATIVO: HISTOGRAMA FOLLOWERS

‣ ¿Todos los HT siguen el mismo perfil de followers?

‣ ¿Cuál es el número medio de followers por HT?

Friday, March 8, 2013

Page 55: Taller de Minería y Análisis de Datos - assets.outliers.esassets.outliers.es/cursos/mineria/TN_Curso_Mineria.pdf · ‣ Linux/Mac OS/Windows: Abrir ventana de comandos y ejecutar

ANÁLISIS CUANTITATIVO: EJERCICIO

‣ Abrir Twitter/histogramFollowersEjercicio.py

‣ Se trata de:

‣ Leer el fichero .json ya volcado con los 100 tweets

‣ Generar una tabla de pares ‘usuario-follower’

‣ Calcular la media

‣ Exportarlo a CSV para consumirlo en R

Friday, March 8, 2013

Page 56: Taller de Minería y Análisis de Datos - assets.outliers.esassets.outliers.es/cursos/mineria/TN_Curso_Mineria.pdf · ‣ Linux/Mac OS/Windows: Abrir ventana de comandos y ejecutar

ANÁLISIS CUANTITATIVO: R

‣ R: Lenguaje de programación para análisis estadístico y gráfico

‣ Instalación

‣ Usaremos la librería ggplot2, en concreto los histogramas . Se instala con ‘install.packages(ggplot2)’

Friday, March 8, 2013

Page 57: Taller de Minería y Análisis de Datos - assets.outliers.esassets.outliers.es/cursos/mineria/TN_Curso_Mineria.pdf · ‣ Linux/Mac OS/Windows: Abrir ventana de comandos y ejecutar

ANÁLISIS CUANTITATIVO: IMPORTACIÓN Y ANÁLISIS

Friday, March 8, 2013

Page 58: Taller de Minería y Análisis de Datos - assets.outliers.esassets.outliers.es/cursos/mineria/TN_Curso_Mineria.pdf · ‣ Linux/Mac OS/Windows: Abrir ventana de comandos y ejecutar

ANÁLISIS CUANTITATIVO: IMPORTACIÓN Y ANÁLISIS

Friday, March 8, 2013

Page 59: Taller de Minería y Análisis de Datos - assets.outliers.esassets.outliers.es/cursos/mineria/TN_Curso_Mineria.pdf · ‣ Linux/Mac OS/Windows: Abrir ventana de comandos y ejecutar

ANÁLISIS CUANTITATIVO: HISTOGRAMAS

qplot(Followers, data=myData, geom="histogram")

Friday, March 8, 2013

Page 60: Taller de Minería y Análisis de Datos - assets.outliers.esassets.outliers.es/cursos/mineria/TN_Curso_Mineria.pdf · ‣ Linux/Mac OS/Windows: Abrir ventana de comandos y ejecutar

qplot(Followers, data=myData, geom="histogram",binwidth=50)

ANÁLISIS CUANTITATIVO: HISTOGRAMAS

Friday, March 8, 2013

Page 61: Taller de Minería y Análisis de Datos - assets.outliers.esassets.outliers.es/cursos/mineria/TN_Curso_Mineria.pdf · ‣ Linux/Mac OS/Windows: Abrir ventana de comandos y ejecutar

qplot(Followers, data=myData, geom="histogram",binwidth=25,xlim=c(0, 2000))

ANÁLISIS CUANTITATIVO: HISTOGRAMAS

Friday, March 8, 2013

Page 62: Taller de Minería y Análisis de Datos - assets.outliers.esassets.outliers.es/cursos/mineria/TN_Curso_Mineria.pdf · ‣ Linux/Mac OS/Windows: Abrir ventana de comandos y ejecutar

ANÁLISIS CUANTITATIVO: DISPERSIÓN RT/FOLLOWERS

‣ Abrir Twitter/dispersionFollowersRetweet.py

‣ Ejecutar sobre un .json de tweets previo generado (FILE_IN)

‣ Cargar el csv generado (FILE_OUT) en R

‣ Hacer un diagrama de dispersión (scatterplot)

‣ Ídem con escala logarítmica

Friday, March 8, 2013

Page 63: Taller de Minería y Análisis de Datos - assets.outliers.esassets.outliers.es/cursos/mineria/TN_Curso_Mineria.pdf · ‣ Linux/Mac OS/Windows: Abrir ventana de comandos y ejecutar

ANÁLISIS: LIBRERÍA ‘PATTERN’

‣ Instalar la librería desde PyCharm (Preferences/Python Interpreters/ (Ventana Derecha) / Install)

‣ En github: https://github.com/clips/pattern

‣ Ejemplos en https://github.com/clips/pattern/tree/master/examples

‣ Documentación en http://www.clips.ua.ac.be/pages/pattern

Friday, March 8, 2013

Page 64: Taller de Minería y Análisis de Datos - assets.outliers.esassets.outliers.es/cursos/mineria/TN_Curso_Mineria.pdf · ‣ Linux/Mac OS/Windows: Abrir ventana de comandos y ejecutar

ADQUISICIÓN FÁCIL: PATTERN.WEB

‣ http://www.clips.ua.ac.be/pages/pattern-web

‣ Descarga de urls genéricas

‣ Web crawling (clase web.Spider)

‣ Conversión de HTML a texto

‣ Acceso a través de web.SearchEngine: Google, Bing, Yahoo, Twitter, Facebook, Wikipedia, Flickr...

‣ Abrir Pattern/web.py

Friday, March 8, 2013

Page 65: Taller de Minería y Análisis de Datos - assets.outliers.esassets.outliers.es/cursos/mineria/TN_Curso_Mineria.pdf · ‣ Linux/Mac OS/Windows: Abrir ventana de comandos y ejecutar

ANÁLISIS NLP: PATTERN.TEXT

‣ http://www.clips.ua.ac.be/pages/pattern-en

‣ Lematización y Conjugación

‣ POS-Tagging

‣ Chunking

‣ Abrir Pattern/text.py

Friday, March 8, 2013

Page 66: Taller de Minería y Análisis de Datos - assets.outliers.esassets.outliers.es/cursos/mineria/TN_Curso_Mineria.pdf · ‣ Linux/Mac OS/Windows: Abrir ventana de comandos y ejecutar

ANÁLISIS DE PATRONES: PATTERN.SEARCH

‣ http://www.clips.ua.ac.be/pages/pattern-search

‣ Matching sintáctico, semántico y de raíces

‣ Taxonomías

‣ Abrir Pattern/match.py

Friday, March 8, 2013

Page 67: Taller de Minería y Análisis de Datos - assets.outliers.esassets.outliers.es/cursos/mineria/TN_Curso_Mineria.pdf · ‣ Linux/Mac OS/Windows: Abrir ventana de comandos y ejecutar

SENTIMENT ANALYSIS

‣ Con apoyo de la librería Pattern

‣ Tipo I: ‘Las sucias calles de la ciudad’

‣ Tipo II: ‘Barcelona tiene buen clima’

‣ Tipo III: ‘Odio el servicio técnico de Movistar’

‣ Tipo IV: ‘Vodafone apesta’

‣ Abrir Pattern/basicSentiment.py

Friday, March 8, 2013

Page 68: Taller de Minería y Análisis de Datos - assets.outliers.esassets.outliers.es/cursos/mineria/TN_Curso_Mineria.pdf · ‣ Linux/Mac OS/Windows: Abrir ventana de comandos y ejecutar

MOOD ANALYSIS

‣ Con apoyo de la librería Pattern

‣ Es una categorización

‣ No haremos caso de las negaciones

‣ Dos mood: Tristeza y Alegría

‣ Abrir Pattern/basicMood.py

Friday, March 8, 2013

Page 69: Taller de Minería y Análisis de Datos - assets.outliers.esassets.outliers.es/cursos/mineria/TN_Curso_Mineria.pdf · ‣ Linux/Mac OS/Windows: Abrir ventana de comandos y ejecutar

MINERÍA DE RELACIONES

‣ Con apoyo de la librería networkx

‣ Visualizaremos los resultados con gephi de dos maneras:

‣ Tiempo real: Con el streaming de Gephi (tiempo real)

‣ Diferido: Volcando a formato graphml

‣ Abrir Gephi/pyGephi.py

‣ Abrir Gephi/pyGephiStatic.py

Friday, March 8, 2013

Page 70: Taller de Minería y Análisis de Datos - assets.outliers.esassets.outliers.es/cursos/mineria/TN_Curso_Mineria.pdf · ‣ Linux/Mac OS/Windows: Abrir ventana de comandos y ejecutar

MINERÍA DE RELACIONES

‣ Algunas métricas de red

‣ Centralidad: Closeness, Betweeness, PageRank

‣ Densidad

‣ Diámetro

‣ Separación media

‣ Coeficiente de clustering

‣ Componentes conectadas

Friday, March 8, 2013

Page 71: Taller de Minería y Análisis de Datos - assets.outliers.esassets.outliers.es/cursos/mineria/TN_Curso_Mineria.pdf · ‣ Linux/Mac OS/Windows: Abrir ventana de comandos y ejecutar

CO-OCURRENCIAS: DEL CONTENIDO A LAS RELACIONES

Coca-cola en Facebook

Friday, March 8, 2013

Page 72: Taller de Minería y Análisis de Datos - assets.outliers.esassets.outliers.es/cursos/mineria/TN_Curso_Mineria.pdf · ‣ Linux/Mac OS/Windows: Abrir ventana de comandos y ejecutar

CO-OCURRENCIAS: DEL CONTENIDO A LAS RELACIONES

Pepsi en Facebook

Friday, March 8, 2013

Page 73: Taller de Minería y Análisis de Datos - assets.outliers.esassets.outliers.es/cursos/mineria/TN_Curso_Mineria.pdf · ‣ Linux/Mac OS/Windows: Abrir ventana de comandos y ejecutar

CO-OCURRENCIAS: DEL CONTENIDO A LAS RELACIONES

Led Zeppelin en Facebook

Friday, March 8, 2013

Page 74: Taller de Minería y Análisis de Datos - assets.outliers.esassets.outliers.es/cursos/mineria/TN_Curso_Mineria.pdf · ‣ Linux/Mac OS/Windows: Abrir ventana de comandos y ejecutar

REFERENCIAS

Friday, March 8, 2013

Page 75: Taller de Minería y Análisis de Datos - assets.outliers.esassets.outliers.es/cursos/mineria/TN_Curso_Mineria.pdf · ‣ Linux/Mac OS/Windows: Abrir ventana de comandos y ejecutar

http://shop.oreilly.com/product/9780596516499.do

Friday, March 8, 2013

Page 76: Taller de Minería y Análisis de Datos - assets.outliers.esassets.outliers.es/cursos/mineria/TN_Curso_Mineria.pdf · ‣ Linux/Mac OS/Windows: Abrir ventana de comandos y ejecutar

http://shop.oreilly.com/product/9780596153823.do

Friday, March 8, 2013

Page 77: Taller de Minería y Análisis de Datos - assets.outliers.esassets.outliers.es/cursos/mineria/TN_Curso_Mineria.pdf · ‣ Linux/Mac OS/Windows: Abrir ventana de comandos y ejecutar

http://shop.oreilly.com/product/9780596529321.do

Friday, March 8, 2013

Page 78: Taller de Minería y Análisis de Datos - assets.outliers.esassets.outliers.es/cursos/mineria/TN_Curso_Mineria.pdf · ‣ Linux/Mac OS/Windows: Abrir ventana de comandos y ejecutar

http://shop.oreilly.com/product/0636920010203.do

Friday, March 8, 2013

Page 79: Taller de Minería y Análisis de Datos - assets.outliers.esassets.outliers.es/cursos/mineria/TN_Curso_Mineria.pdf · ‣ Linux/Mac OS/Windows: Abrir ventana de comandos y ejecutar

http://shop.oreilly.com/product/0636920018261.do

Friday, March 8, 2013

Page 80: Taller de Minería y Análisis de Datos - assets.outliers.esassets.outliers.es/cursos/mineria/TN_Curso_Mineria.pdf · ‣ Linux/Mac OS/Windows: Abrir ventana de comandos y ejecutar

http://shop.oreilly.com/product/0636920020424.do

Friday, March 8, 2013

Page 81: Taller de Minería y Análisis de Datos - assets.outliers.esassets.outliers.es/cursos/mineria/TN_Curso_Mineria.pdf · ‣ Linux/Mac OS/Windows: Abrir ventana de comandos y ejecutar

http://www.amazon.com/Speech-Language-Processing-Daniel-Jurafsky/dp/0131873210

Friday, March 8, 2013

Page 82: Taller de Minería y Análisis de Datos - assets.outliers.esassets.outliers.es/cursos/mineria/TN_Curso_Mineria.pdf · ‣ Linux/Mac OS/Windows: Abrir ventana de comandos y ejecutar

http://www.amazon.com/Foundations-Statistical-Natural-Language-Processing/dp/0262133601

Friday, March 8, 2013

Page 83: Taller de Minería y Análisis de Datos - assets.outliers.esassets.outliers.es/cursos/mineria/TN_Curso_Mineria.pdf · ‣ Linux/Mac OS/Windows: Abrir ventana de comandos y ejecutar

http://www.amazon.com/Web-Data-Mining-Data-Centric-Applications/dp/3540378812

Friday, March 8, 2013

Page 84: Taller de Minería y Análisis de Datos - assets.outliers.esassets.outliers.es/cursos/mineria/TN_Curso_Mineria.pdf · ‣ Linux/Mac OS/Windows: Abrir ventana de comandos y ejecutar

http://www.springer.com/computer/communication+networks/book/978-1-84882-228-3

Friday, March 8, 2013

Page 85: Taller de Minería y Análisis de Datos - assets.outliers.esassets.outliers.es/cursos/mineria/TN_Curso_Mineria.pdf · ‣ Linux/Mac OS/Windows: Abrir ventana de comandos y ejecutar

http://www.amazon.com/Network-Analysis-Methodological-Foundations-Theoretical/dp/3540249796

Friday, March 8, 2013

Page 86: Taller de Minería y Análisis de Datos - assets.outliers.esassets.outliers.es/cursos/mineria/TN_Curso_Mineria.pdf · ‣ Linux/Mac OS/Windows: Abrir ventana de comandos y ejecutar

Este trabajo está licenciado como Creative Commons Attribution 3.0 Unported License

www.outliers.es@outliers_es

Friday, March 8, 2013