Prévia do material em texto
Mineração de Redes Cristiano Carvalho Grafos - Redes Complexas Network Mining O que são grafos? Um grafo é definido formalmente como G = (V, E), onde V é o conjunto de vértices (entidades) conectados por E arestas (relacionamento) A B D E FC O que são grafos? Rede Direcional A B D E F C O que são grafos? Não Direcional A B D E F C O que são grafos? Pesos nas conexões A B D E F C 5 1 3 8 9 2 O que são grafos? Exemplo de representação - Mídias sociais A B (RTs, shares, comments, likes ...) Users Por que estudar grafos/redes? Importante ferramenta matemática com aplicação em diversas áreas do conhecimento Existem centenas de problemas computacionais que usam grafos com sucesso. Por que estudar grafos/redes? Identificar a habilidade de comunicação entre duas entidades em uma rede Criar heurísticas ótimas/sub-rotinas para realizar busca de padrões em redes reais Que tipo de dado você poderia modelar como um grafo? Mineração de Redes Cristiano Carvalho Modelagem em Grafos Internet Sistema de Metrô Contatos Sexuais Colaboração entre Cientistas Partidos Políticos Interações Proteicas Referências Internet Mathematics - Further Directions http://pi.math.cornell.edu/~mec/Winter2009/RalucaRemus/Lecture5/lecture5.html Sistema De Transporte Colectivo (metro) https://www.taringa.net/posts/turismo/9228455/Sistema-De-Transporte-Colectivo-metro.html The structure and function of complex networks http://www.cin.ufpe.br/~rbcp/taia/structure-complex-networks.pdf Grafo de partidos políticos https://www.instagram.com/p/BhKJBeAFRRj/?utm_source=ig_web_copy_link Yeast protein interaction network https://services.math.duke.edu/~rtd/RGD/RGD.html https://www.taringa.net/posts/turismo/9228455/Sistema-De-Transporte-Colectivo-metro.html http://www.cin.ufpe.br/~rbcp/taia/structure-complex-networks.pdf https://www.instagram.com/p/BhKJBeAFRRj/?utm_source=ig_web_copy_link Métricas em Redes Complexas Cristiano Carvalho Medidas de Centralidade Medidas de Centralidade Grau Closeness (Proximidade) Betweenness (Intermediação) Grau do Nó (Vértice) É uma medida relativa aos vértices de um grafo O grau de um vértice é dado pelo número de arestas que lhe são incidentes Exemplo: Grau 3 = A, B, D Grau 2 = C, E Grau 1 = F A B D E FC Closeness - Proximidade É definida pelo comprimento de caminhos mais curtos Caminhos mais curtos representam a menor distância entre pares de vértices Caminho Em um grafo sem arestas ponderadas o caminho é definido pelo número de arestas de um ponto a outro Exemplo: A - F = (A-C-B-E-D-F) (5) (A-B-E-D-F) (4) (A-D-F) (2) A B D E FC Caminho Em um grafo sem arestas ponderadas o caminho é definido pelo número de arestas de um ponto a outro Exemplo: A - F = (A-C-B-E-D-F) (5) (A-B-E-D-F) (4) (A-D-F) (2) A B D E FC Caminho mais curto Em um grafo sem arestas ponderadas o caminho é definido pelo número de arestas de um ponto a outro Exemplo: A - F = (A-C-B-E-D-F) (5) (A-B-E-D-F) (4) (A-D-F) (2) A B D E FC Closeness - Proximidade Quanto mais central é o vértice menor é a distância total para todos os outros vértices Exemplo: F = 11 1-D A B D E FC Closeness - Proximidade Quanto mais central é o vértice menor é a distância total para todos os outros vértices Exemplo: F = 11 1-D + 2-E A B D E FC Closeness - Proximidade Quanto mais central é o vértice menor é a distância total para todos os outros vértices Exemplo: F = 11 1-D + 2-E + 2-A A B D E FC Closeness - Proximidade Quanto mais central é o vértice menor é a distância total para todos os outros vértices Exemplo: F = 11 1-D + 2-E + 2-A + 3-B + 3-C = 11 A B D E FC Closeness - Proximidade Quanto mais central é o vértice menor é a distância total para todos os outros vértices Exemplo: D = 7 1-F + 2-E + 2-A + 2-B + 2-C = 7 A B D E FC Betweenness – Intermediação (Vértice) ● Define o número de vezes que um vértice age como ponte ao longo do caminho mais curto entre dois outros vértices Betweenness – Intermediação (Vértice) ● Para cada par de vértices calcular os caminhos mais curtos entre eles ● Para cada par de vértices determinar a fração de caminhos mais curtos que passam através do vértice em questão ● Somar esta fração de todos os pares de vértices Betweenness – Intermediação (Vértice) Exemplo: D = A – E A – F C – F A B D E FC Betweenness – Intermediação (Vértice) A B D E FC Exemplo: D = A – E A – F C – F Betweenness – Intermediação (Vértice) A B D E FC Exemplo: D = A – E A – F C – F Betweenness – Intermediação (Aresta) A B D E FC Exemplo: A - D = A – E A – F Betweenness – Intermediação (Aresta) A B D E FC Exemplo: A - D = A – E A – F Métricas em Redes Complexas Cristiano Carvalho Medidas de Importância Medidas de Importância PageRank Hits PageRank PageRank procura expressar a probabilidade de um caminhante aleatório no grafo chegar a um vértice P PageRank Considera o quanto um vértice é referenciado (Ex: B) Se quem aponta para o vértice também é importante (Observe C) PageRank A importância de um vértice P é dada pela seguinte equação: PR(i) - PR do vértice i que aponta para A Probabilidade inicial de todas = 1/N L(i) - quantidade de links de saída em i Desafios - Vértices sem ligações A não recebe links de ninguém e passa a ter PR=0 B recebe 0 de A Desafios - Ciclos Cálculo do PageRank fica "preso" no ciclo infinito Em cada iteração o valor de PageRank é transmitido de um vértice para outro do ciclo e não há convergência PageRank - Dump Factor ● d - dump factor (geralmente entre 0.1 e 0.9) ○ Probabilidade de continuar seguindo os links. ○ Do contrário acontecerá um “teletransporte” para qualquer outro vértice ● N - Total de páginas HITS - Hubs e Autoridades ● Um bom hub é uma página que aponta para boas autoridades ● Uma boa autoridade é uma página apontada por bons hubs. HITS Utiliza valores de hub e autoridade para definir a reputação de uma página P. Hub de uma página “P”– é dado em função dos valores de autoridade das páginas para onde ela aponta. Autoridade de uma página “P”– é dada em função dos valores de hub das páginas que apontam para P Referências PageRank https://pt.m.wikipedia.org/wiki/Ficheiro:PageRank-hi-res.png https://es.wikipedia.org/wiki/PageRank#/media/File:PageRanks- Example.svg https://pt.m.wikipedia.org/wiki/Ficheiro:PageRank-hi-res.png Métricas em Redes Complexas Cristiano Carvalho KNIME: Análise de Influentes Análise em Redes Sociais ❖ Selecionando os principais tweets 3 Uma vez que você tenha os tweets coletados o primeiro passo é extrair os principais tweets da base, ou seja aqueles que foram compartilhados (retweets). Análise em Redes Sociais ❖ Limpar tweets sem retweets 4 Com isso é possível diminuir o número de conexões a serem analisadas, focando apenas nos posts que existem conexões na rede Análise em Redes Sociais ❖ Contar interações conexões entre usuários 5 Em seguida, vamos encontrar as conexões entre os usuários através dos seus compartilhamentos. Assim você tem dados para formar um grafo conectado de usuários e retweets. Análise em Redes Sociais ❖ Agrupar usuários por retweets 6 Através da aba Manual Aggregation, conte (Count) quando (Time) um usuário retuitou outro usuário (Agrupe Users e Retweet from) Análise em Redes Sociais ❖ Resultado da contagem de conexões entre usuários 7 Observe que: DannOfThursday_ retuitou ColonoGamer 1 vez MailloLeandro retuitou nadyagospel 2 vezes Análise em Redes Sociais ❖ Criando Grafo ou Rede de Conexões 8 Com o Object Inserter definimos quem serão os vértices (Nodes) a serem conectados, o que identifica as arestas (Edge) se haverá um peso para cada conexão (Weight Column) Análise em Redes Sociais ❖ Rede de retweets (influenciadores) 9 Análise em Redes Sociais❖ Vamos enriquecer a rede com outros atributos 10 Análise em Redes Sociais ❖ E até outros formatos de visualização 11 Coleta em Redes Sociais ❖ Buscando informações de usuários no Twitter 12 Com o node Twitter Users buscamos informações de cada usuário. Precisamos da lista de usuários a serem buscados. Análise de Redes ❖ Informações de Vértices 13 O Node (no sentido de Vértice) Table gera uma tabela com os vértices da rede Podemos buscar informações já filtradas apenas para essa rede específica. Com o Node Table extraímos os ids dos vértices da rede, ou seja nomes de usuários. Análise de Redes ❖ Busca de dados de usuários 14 Agora podemos fornecer o ID dos usuários no node Twitter Users e buscar informações no Twitter. Análise de Redes 15 ❖ Agora temos dados para enriquecer a rede e suas respectivas conexões Análise em Redes Sociais ❖ Inserindo atributos na rede 16 Com o node Multi Feature Inserter inserimos os dados na rede. Quais entradas do node? Análise em Redes Sociais ❖ Inserindo atributos na rede 17 Nesse exemplo estamos inserindo a foto do usuário e o número de followers. Porém em possível selecionar diversos atributos da lista Análise em Redes Sociais ❖ Inserindo o foto no perfil na rede 18 Em Node Layout configuramos o campo Icon para utilizar a coluna “Profile Image” com fotos que coletamos de cada usuário. Coleta em Redes Sociais ❖ Customize o layout do grafo através das abas General 19 Métricas em Redes Complexas Cristiano Carvalho KNIME: Top Vértices ❖ Métricas 3 Leitura habitual da rede com o Network Reader O Network Analyzer permite calcular várias métricas. ➢ Vamos calcular o grau do vértice, ou seja, o número total de ligações de cada vértice possui ➢ Além disso o grau de entrada e saída separadamente Análise de Redes ❖ Métricas 4 Resultado do Network Analyzer Análise de Redes ❖ Filtrando os top 5 vértices de maior grau total 5 Ordene os vértices por grau decrescente e filtre os 5 maiores Análise de Redes ❖ Retirando vértices 6 Com o Node Name Filter podemos excluir da rede os vértices por nome. Nesse caso vamos incluir na rede apenas os vértices que filtramos anteriormente. Obs: é preciso conectar também a rede original Nota: Não esqueça que “Node” em grafos significa vértice ou nó da rede e não um node do knime Análise de Redes ❖ Hiperarestas 7 Com o Edge Degree Filter eliminamos hiperarestas, ou seja selecionamos arestas que conectam no máximo dois vértices Isso é necessário pois o visualizador do knime não aceita hipergrafos Análise de Redes ❖ Grafo formado pelos 5 vértices de maior grau de entrada 8 Análise de Redes ❖ Grafo formado pelos 5 vértices de maior grau de entrada (Resultado) 9 Análise de Redes Métricas em Redes Complexas Cristiano Carvalho KNIME: Menor Caminho ❖ Qual o menor caminho entre Schwarzenegger e Isótopo? 3 A medida do menor caminho é implementada pelo node Shortest Path Análise de Redes ❖ Qual o menor caminho entre Schwarzenegger e Isótopo? 4 Para visualizar uma rede utilizamos o Network Viewer Análise de Redes ❖ Como assim? Jurassic Park easter egg 5 Análise de Redes http://screencrush.com/lost-world-jurassic-park-easter-egg/ Expressões Regulares Cristiano Carvalho KNIME: Regex ❖ Expressões Regulares ou Regex (notações) 3 Extração de Texto por Regras Semelhante aos wildcards as expressões regulares permitem a criação de diversos tipos de regras para tratar o texto. http://turing.com.br/material/regex/introducao.html ❖ Exemplos simples (referência) 4 Extração de Texto por Regras ➢ A RegEx [c9] reconhece o padrão c e o padrão 9 ➢ A RegEx [A-Z] reconhece todas as letras maiúsculas ➢ A RegEx [A-Z0-9] reconhece todas as letras maiúsculas e números ➢ A classe \d é equivalente à classe [0-9] http://aprenda.vidageek.net/aprenda/regex Pré-processamento ❖ Exemplo em pré-processamento Adicionando o Regex Filter é possível filtrar o texto a partir de regras. Com “.*[\d\W]+.*” eliminamos strings que possuem dígitos (\d) e caracteres que não são letras (\W) 5 Pré-processamento ❖ Como filtrar por número específico de caracteres A regra “\d{4}” especifica o padrão de quatro dígitos Podemos ter o mesmo resultado utilizando “[0-9]{4}” Explore mais exemplos http://aprenda.vidageek.net/aprenda/regex e teste no KNIME, com o Row Filter sobre uma coluna de String fica bem facinho :) 6 http://aprenda.vidageek.net/aprenda/regex Referências Expressões regulares: introdução http://turing.com.br/material/regex/introducao.html Aprenda RegEx http://aprenda.vidageek.net/aprenda/regex