El libro "Minería de datos. Recuperando información de Facebook, Twitter, LinkedIn, Instagram, GitHub »

imagen Hola habrozhiteli! En las entrañas de las redes sociales populares (Twitter, Facebook, LinkedIn e Instagram) se ocultan los depósitos de información más ricos. De este libro, los investigadores, analistas y desarrolladores aprenderán cómo extraer estos datos únicos utilizando el código Python, un Jupyter Notebook o los contenedores Docker. Primero, conocerá la funcionalidad de las redes sociales más populares (Twitter, Facebook, LinkedIn, Instagram), páginas web, blogs y feeds, correo electrónico y GitHub. Luego, comience el análisis de datos utilizando el ejemplo de Twitter. Lea este libro para:

  • Aprende sobre el panorama moderno de las redes sociales;
  • Aprenda a usar Docker para operar fácilmente con los códigos provistos en el libro;
  • Aprenda a adaptar y entregar código al repositorio abierto de GitHub;
  • Aprenda a analizar los datos recopilados utilizando las capacidades de Python 3;
  • Domine técnicas de análisis avanzadas como TFIDF, similitud de coseno, análisis de colocación, detección de clics y reconocimiento de patrones;
  • Aprenda a crear hermosas visualizaciones de datos usando Python y JavaScript.

Extracto 4.3. Una breve introducción a las técnicas de agrupación de datos.


Ahora que tenemos una idea de cómo acceder a la API de LinkedIn, iremos a un análisis específico y discutiremos el agrupamiento en detalle [Este tipo de análisis también se denomina método de coincidencia aproximada , coincidencia difusa y / o deduplicación - ed .] - el método de aprendizaje automático sin un maestro, se considera esencial en cualquier conjunto de herramientas de análisis de datos. El algoritmo de agrupación toma una colección de elementos y los divide en colecciones más pequeñas (grupos) de acuerdo con algún criterio diseñado para comparar los elementos de la colección.

El agrupamiento es un método fundamental de análisis de datos, para que pueda obtener una imagen más completa de este, este capítulo incluye notas al pie y notas que describen el aparato matemático subyacente. Es bueno si intenta comprender estos detalles, pero para utilizar con éxito los métodos de agrupación, no necesita comprender todas las sutilezas y, por supuesto, no es necesario que las entienda la primera vez. Es posible que necesite pensar un poco para digerir cierta información, especialmente si no tiene capacitación matemática.

Por ejemplo, si está considerando mudarse a otra ciudad, puede intentar combinar los contactos de LinkedIn por región geográfica para evaluar mejor las oportunidades económicas disponibles. Volveremos a esta idea un poco más tarde, pero por ahora discutiremos brevemente algunos de los matices asociados con la agrupación.

Al implementar soluciones a los problemas de agrupamiento de datos de LinkedIn o de otras fuentes, repetidamente encontrará al menos dos temas principales (una discusión del tercero se da en la barra lateral "El papel de la reducción de la dimensionalidad en el agrupamiento" a continuación).

Normalización de datos.
Incluso cuando se utiliza una API muy buena, los datos rara vez se proporcionan en el formato que necesita, a menudo se necesita más que una simple conversión para llevar los datos a una forma adecuada para el análisis. Por ejemplo, los usuarios de LinkedIn permiten ciertas libertades al describir sus publicaciones, por lo que no siempre es posible obtener descripciones perfectamente normales. Un gerente puede elegir el nombre de "director técnico jefe", otro, el nombre más ambiguo "TRP", y el tercero puede describir la misma posición de alguna manera diferente. A continuación volveremos al problema de la normalización de datos e implementaremos una plantilla para procesar ciertos aspectos de la misma en los datos de LinkedIn.

Definición de afinidad
Con un conjunto de elementos bien normalizados, es posible que desee evaluar la similitud de cualquiera de ellos, ya sea los nombres de puestos o empresas, descripciones de intereses profesionales, nombres geográficos o cualquier otro campo cuyos valores puedan representarse en texto arbitrario. Para hacer esto, debe definir una heurística que evalúe la similitud de dos valores. En algunas situaciones, la definición de similitud es bastante obvia, pero en otras puede estar llena de algunas dificultades.

Por ejemplo, la comparación de la duración total del servicio de dos personas se logra mediante simples operaciones de adición, pero comparar características profesionales más amplias, como las "habilidades de liderazgo", de una manera totalmente automatizada puede ser todo un desafío.

El papel de la reducción de la dimensionalidad en la agrupación


La normalización de los datos y la determinación de similitud son dos temas principales que encontrará en la agrupación en un nivel abstracto. Pero hay un tercer tema: la reducción de la dimensionalidad, que se vuelve relevante tan pronto como la escala de los datos deja de ser trivial. Para agrupar elementos en un conjunto utilizando una métrica de similitud, idealmente es deseable comparar cada elemento con todos los demás elementos. En este caso, en el peor de los casos, para un conjunto de n elementos, tendrá que calcular el grado de similitud aproximadamente n 2 veces para comparar cada uno de los n elementos con n –1 otros elementos.

En informática, esta situación se llama problema de complejidad cuadrática y generalmente se denota como O (n 2 ) ; En las conversaciones, generalmente se le llama el "problema del crecimiento cuadrático de O grande". Los problemas O (n 2 ) se vuelven irresolubles para valores n muy grandes, y en la mayoría de los casos el término insoluble significa que debe esperar "demasiado" para que se calcule la solución. “Demasiado largo”: pueden ser minutos, años o eras, dependiendo de la naturaleza de la tarea y sus limitaciones.

Una revisión de los métodos de reducción de dimensionalidad está más allá del alcance de la discusión actual, por lo que solo notamos que un método típico de reducción de dimensionalidad implica el uso de una función para organizar elementos "bastante similares" en un número fijo de grupos para que los elementos en cada grupo puedan considerarse completamente similares. La reducción de dimensiones a menudo no es solo una ciencia, sino también un arte, y las organizaciones que la utilizan con éxito para obtener una ventaja competitiva suelen considerarla información confidencial o secreto comercial.

Los métodos de agrupamiento son la parte principal del arsenal de herramientas de cualquier especialista en análisis de datos, porque en casi cualquier industria, desde inteligencia militar hasta diseño bancario y paisajístico, es posible que deba analizar una gran cantidad de datos relacionales no estándar y el crecimiento en la cantidad de ofertas de trabajo de especialistas según Los años anteriores son una clara evidencia de esto.

Como regla general, una empresa crea una base de datos para recopilar cualquier información, pero no todos los campos pueden contener valores de algún conjunto predefinido. Esto puede deberse a la lógica pensada de forma incompleta de la interfaz de usuario de la aplicación, la incapacidad de predeterminar todos los valores aceptables o la necesidad de dar a los usuarios la capacidad de ingresar cualquier texto como lo deseen. Sea como fuere, el resultado es siempre el mismo: obtienes una gran cantidad de datos no estandarizados. Incluso si en un determinado campo en total N se pueden almacenar diferentes valores de cadena, algunos de ellos significarán realmente el mismo concepto. Los duplicados pueden ocurrir por varias razones: debido a errores ortográficos, el uso de abreviaturas o abreviaturas, así como diferentes registros de caracteres.

Como se mencionó anteriormente, esta es una situación clásica que surge cuando se analizan datos de LinkedIn: los usuarios pueden ingresar su información en forma de texto libre, lo que inevitablemente conduce a un aumento de las variaciones. Por ejemplo, si decide investigar su red profesional y determinar dónde funcionan la mayoría de sus contactos, tendrá que considerar las opciones de uso común para escribir los nombres de las empresas. Incluso los nombres de empresas más simples pueden tener varias opciones con las que seguramente se encontrará (por ejemplo, "Google", una forma abreviada de "Google, Inc."), y deberá considerar todas estas opciones para llevarlas a un formato estándar. Al estandarizar los nombres de las empresas, un buen punto de partida puede ser normalizar las abreviaturas en nombres como LLC e Inc.

4.3.1. Normalización de datos para análisis.


Como una introducción necesaria y útil para el estudio de algoritmos de agrupamiento, consideramos algunas situaciones típicas que puede encontrar al resolver el problema de normalizar los datos de LinkedIn. En esta sección, implementamos una plantilla estándar para normalizar los títulos de empresa y trabajo. Como ejercicio más avanzado, también discutiremos brevemente el tema de la desambiguación y la geocodificación de nombres de lugares de un perfil de LinkedIn. (Es decir, intentaremos convertir los nombres de lugares de los perfiles de LinkedIn, como “Gran área de Nashville”, en coordenadas que se puedan mapear).

El principal resultado de los esfuerzos para normalizar los datos es la capacidad de tener en cuenta y analizar características importantes y utilizar métodos de análisis avanzados, como la agrupación en clúster. En el caso de los datos de LinkedIn, estudiaremos características como publicaciones y ubicaciones geográficas.

Normalización y conteo de empresas.


Intentemos estandarizar los nombres de empresas de su red profesional. Como se describió anteriormente, puede extraer datos de LinkedIn de dos maneras principales: mediante programación, utilizando la API de LinkedIn o utilizando el mecanismo de exportación de una red profesional en forma de una libreta de direcciones, que incluye información básica como nombre, puesto, empresa e información de contacto.

Imagine que ya tenemos un archivo CSV con contactos exportados desde LinkedIn, y ahora podemos normalizar y mostrar las entidades seleccionadas, como se muestra en el Ejemplo 4.4.

Como se describe en los comentarios dentro de los ejemplos, debe cambiar el nombre del archivo CSV con los contactos que exportó de LinkedIn, siguiendo las instrucciones en la sección "Descarga del archivo de información de contacto en LinkedIn" y copiarlo en un directorio específico donde el código del programa puede encontrarlo.

Ejemplo 4.4 Normalización simple de abreviaturas en nombres de compañías


import os import csv from collections import Counter from operator import itemgetter from prettytable import PrettyTable #    LinkedIn: https://www.linkedin.com/psettings/member-data. #  , LinkedIn       , #    .      # resources/ch03-linkedin/. CSV_FILE = os.path.join("resources", "ch03-linkedin", 'Connections.csv') #   ,    #  .     #     . transforms = [(', Inc.', ''), (', Inc', ''), (', LLC', ''), (', LLP', ''), (' LLC', ''), (' Inc.', ''), (' Inc', '')] companies = [c['Company'].strip() for c in contacts if c['Company'].strip() != ''] for i, _ in enumerate(companies): for transform in transforms: companies[i] = companies[i].replace(*transform) pt = PrettyTable(field_names=['Company', 'Freq']) pt.align = 'l' c = Counter(companies) [pt.add_row([company, freq]) for (company, freq) in sorted(c.items(), key=itemgetter(1), reverse=True) if freq > 1] print(pt) 

Los siguientes son los resultados de un análisis de frecuencia simple:

imagen

Python admite la capacidad de pasar argumentos a funciones desreferenciando una lista y / o diccionario, lo que a veces es muy conveniente, como se muestra en el Ejemplo 4.4. Por ejemplo, llamar a f (* args, ** kw) es equivalente a llamar a f (1, 7, x = 23), donde args se define como una lista de argumentos [1,7] y kw como diccionario {'x': 23}. Otros consejos de programación de Python se pueden encontrar en el Apéndice B.

Tenga en cuenta que para manejar situaciones más complejas, por ejemplo, para normalizar diferentes nombres de la misma compañía que han cambiado con el tiempo, como O'Reilly Media, deberá escribir un código más complejo. En este caso, el nombre de esta empresa puede estar representado como O'Reilly & Associates, O'Reilly Media, O'Reilly, Inc. o simplemente O'Reilly [Si le parece que le esperan grandes dificultades, imagine el tipo de trabajo que tuvieron que hacer los especialistas de Dun & Bradstreet (http://bit.ly/1a1m4Om), que se especializa en catalogar información y enfrentar la tarea de compilar y acompañado de un registro con nombres de compañías en varios idiomas del mundo - ed. ]

Sobre los autores


Matthew Russell (@ptwobrussell) es un destacado especialista de Middle Tennessee. En el trabajo, trata de ser un líder, ayuda a otros a convertirse en líderes y crea equipos altamente efectivos para resolver problemas complejos. Fuera del trabajo, reflexiona sobre la realidad, practica un individualismo pronunciado y se prepara para el apocalipsis zombie y la rebelión de las máquinas.

Mikhail Klassen, @MikhailKlassen es especialista senior en procesamiento y análisis de datos en Paladin AI, una empresa emergente que crea tecnologías de aprendizaje adaptativo. Tiene un doctorado en astrofísica de la Universidad McMaster y una licenciatura en física aplicada de la Universidad de Columbia. A Michael le gustan los problemas de inteligencia artificial y el uso de herramientas de análisis de datos para buenos propósitos. Cuando no funciona, generalmente lee o viaja.

»Se puede encontrar más información sobre el libro en el sitio web del editor
» Contenidos
» Extracto

Cupón de 25% de descuento para vendedores ambulantes - Minería de datos

Tras el pago de la versión en papel del libro, se envía un libro electrónico por correo electrónico.

Source: https://habr.com/ru/post/466729/


All Articles