Saturday 28 October 2017

Jaccard similarity binary options


De acordo com a Enciclopédia das Ciências Estatísticas entendo que, dada a atribuição p dicotômica (binário: 1 presente), podemos formar uma tabela de contingência para quaisquer dois objetos i e j de uma amostra: Podemos calcular a partir desses valores os coeficientes de similaridade entre qualquer par De objetos, especificamente o coeficiente de coeficiente de Jaccard eo coeficiente de Russell e Rao frac frac. Quando calculado estes coeficientes darão valores diferentes, mas eu não posso encontrar quaisquer recursos que explicam por que eu deveria escolher um sobre o outro. É apenas porque, para alguns conjuntos de dados, a ausência simultânea de ambos os atributos (d) não transmite qualquer informação pedida 13 de junho de 13 às 21:24 Existem muitos desses coeficientes (a maioria são expressos aqui). Basta tentar meditar sobre quais são as consequências das diferenças nas fórmulas, especialmente quando você calcula uma matriz de coeficientes. Imagine, por exemplo, que objetos 1 e 2 semelhantes, como objetos 3 e 4 são. Mas 1 e 2 têm muitos dos atributos na lista, enquanto 3 e 4 têm apenas alguns atributos. Neste caso, Russell-Rao (proporção de co-atributos para o número total de atributos em consideração) será elevado para o par 1-2 e baixo para o par 3-4. Mas Jaccard (proporção de co-atributos para o número combinado de atributos ambos os objetos têm probabilidade de que se qualquer um dos objetos tem um atributo então ambos o têm) será alta para ambos os pares 1-2 e 3-4. Este ajuste para o nível básico de saturação por atributos faz Jaccard tão popular e mais útil do que Russell-Rao. por exemplo. Em análise de agrupamento ou dimensionamento multidimensional. Você pode, em certo sentido, refinar ainda mais o ajuste acima, selecionando a medida Kulczynski-2 que é a probabilidade média aritmética de que se um objeto tem um atributo, o outro objeto também tem: (frac frac) / 2 Aqui a base (ou Campo) de atributos para os dois objetos não é agrupado, como em Jaccard, mas é próprio para cada um dos dois objetos. Conseqüentemente, se os objetos diferirem grandemente no número dos atributos que têm, e todos seus atributos o objeto mais pobre compartilha com o mais rico, Kulczynski será elevado quando Jaccard será moderado. Ou você poderia preferir calcular a média geométrica da probabilidade de que se um objeto tiver um atributo, o outro objeto tem também, o que produz uma medida de Ochiai: fração de sqrt Porque o produto aumenta mais fraco que a soma quando apenas um dos termos cresce, Ochiai será realmente alto Somente se ambas as duas proporções (probabilidades) forem altas, o que implica que para ser considerado semelhante por Ochiai os objetos devem compartilhar as grandes partes de seus atributos. Em suma, Ochiai restringe a similaridade se b e c são desiguais. Ochiai é de fato a medida de similaridade de coseno (e Russell-Rao é a similaridade de produto ponto). Falando de medidas de similaridade, não se deve misturar atributos dicotômicos nominais (por exemplo, fêmea, macho) com atributos binários (presente versus ausente). O atributo binário não é simétrico (em geral), - se você e eu compartilhamos uma característica, é a base para nos chamar de semelhante se você e eu não percebermos a característica, ela pode ou não ser considerada a evidência de similaridade, dependendo da Contexto do estudo. Daí o tratamento divergente de d é possível. Observe também que se você deseja calcular a similaridade entre objetos com base em atributos nominais (dicotômicos ou politômicos), recodifique cada uma dessas variáveis ​​no conjunto de variáveis ​​binárias dummy. Em seguida, a medida de similaridade recomendada para computar será Dice (que, quando calculada para as variáveis ​​dummy, é equivalente a Ochiai e Kulczynski-2). A utilidade do coeficiente de Tanimoto em relação à precisão tradicional (isto é, Russell-Rao) é evidente na análise de imagem, quando se compara uma segmentação com um padrão-ouro. Considere estas duas imagens: Em cada uma dessas imagens que são máscaras binárias, temos dois objetos do mesmo tamanho, mas colocados em locais ligeiramente diferentes, e queremos avaliar em que medida esses objetos são idênticos em forma e posição, avaliando a sua sobreposição . Normalmente, uma (por exemplo, a máscara roxa) é uma segmentação (produzida por um algoritmo de computador), e. Esta poderia ser uma tentativa de localizar o coração de uma imagem médica. O outro, (por exemplo, verde) é o padrão-ouro (isto é, o coração, tal como identificado por um clínico especialista). Onde há cor branca, as duas formas se sobrepõem. Os pixels pretos são de fundo. As duas imagens são idênticas (ou seja, o resultado do algoritmo de segmentação, bem como o padrão ouro, são os mesmos em ambas as imagens), exceto para um monte de preenchimento de fundo na segunda imagem (por exemplo, isso poderia representar dois experimentos com dois diferentes Máquinas de raio-x, onde a segunda máquina tinha um raio mais largo cobrindo mais área do corpo, mas caso contrário, o tamanho do coração é o mesmo em ambos os conjuntos de imagens). Claramente, uma vez que a segmentação eo padrão-ouro em ambas as imagens são idênticos, se avaliarmos a precisão de segmentação em relação ao padrão-ouro, gostaríamos que nossa métrica produzisse o mesmo resultado de precisão em ambas as experiências. No entanto, se tentarmos avaliar a qualidade da segmentação usando a abordagem de Russel-Rao, obteríamos uma precisão enganosa para a imagem correta (perto de 100), porque os pixels de fundo identificados corretamente como pixels de fundo contribuem para a precisão geral de Os conjuntos e os pixels de fundo são desproporcionalmente representados no segundo conjunto. Os objetos cuja sobreposição queremos avaliar na segmentação médica são muitas vezes manchas minúsculas em um fundo maciço, por isso isso não é muito útil para nós. Além disso, isso levaria a problemas se estivéssemos tentando comparar a precisão de um algoritmo de segmentação para outro, e os dois foram avaliados em imagens de diferentes tamanhos (ou, equivalentemente, em diferentes escalas). A escala / tamanho da imagem de inclusão não deve fazer diferença na avaliação de uma segmentação em relação a um padrão-ouro. Em contraste, o coeficiente de tanimoto não se preocupa com os pixels de fundo, tornando-o invariante à escala. Assim, no que diz respeito ao coeficiente tanimoto, a similaridade de ambos os conjuntos será idêntica, tornando-se uma métrica de similaridade muito mais útil para nós usar para avaliar a qualidade de um algoritmo de segmentação. A semelhança Jaccard (Jaccard 1902, Jaccard 1912) é um índice comum para variáveis ​​binárias. Ela é definida como o quociente entre a intersecção ea união das variáveis ​​comparadas entre dois objetos. Equação Na equação d JAD é a distância de Jaccard entre os objetos i e j. Para dois registros de dados com n variáveis ​​binárias y o índice variável k varia de 0 a n -1. Quatro combinações diferentes entre y i, k e y j, k podem ser distinguidas ao comparar variáveis ​​binárias. Estas combinações são (0/0), (0/1), (1/0) e (1/1). As somas dessas combinações podem ser agrupadas por: Como cada variável emparelhada pertence a um desses grupos, pode ser facilmente observado que: Como a semelhança Jaccard é baseada na presença conjunta, J 00 é descartado. A dissimilaridade Jaccard é definida como d JAD 1- d JAS. Em alguns casos a semelhança de Jaccard é calculada como d JAS 2 d BCD / (1 d BCD). Onde d BCD é a dissimilaridade BrayCurtis. Esta equação não reduz os valores para estados binários. Assim, os resultados são diferentes quando se utiliza, por um lado, uma matriz de presença / ausência e, por outro lado, uma matriz de contagem. Os resultados são os mesmos, quando a matriz de contagem é convertida previamente para uma matriz binária. Sinônimos A semelhança Jaccard ou Jaccard coeficiente de similaridade é muitas vezes chamado Jaccard índice. De qualquer forma, o termo índice de Jaccard é às vezes usado para a dissimilaridade de Jaccard, enquanto a diferença de Jaccard é às vezes chamada distância de Jaccard. Pode-se observar que os termos Jaccard semelhança e Jaccard dissimilaridade não são precisamente separados e às vezes parecem ser utilizados sinônimo ou confuso, embora os resultados representam significados opostos. Assim, deve-se inspecionar cuidadosamente a intenção da análise. Uso A semelhança Jaccard pode ser usada, quando intersted em diferenças binárias entre dois ou mais objetos. Especialmente em investigações de investigação ecológica, muitas vezes se concentram na presença / ausência entre vários locais. Quando interessados ​​em caracterizar locais comparados pela possibilidade de espécies para se estabelecer, as abundâncias são muitas vezes insignificantes. Algoritmo O algoritmo controla se a matriz de entrada de dados é retangular ou não. Se não, a função retorna FALSE e uma matriz de saída definida, mas vazia. Quando a matriz é retangular, a similaridade de Jaccard será calculada. Portanto, as dimensões das respectivas matrizes da matriz de saída são definidas e os títulos das linhas e colunas definidas. Como o resultado é uma matriz quadrada, que é espelhada ao longo da diagonal apenas os valores para uma parte triangular ea diagonal são computados. Quando ocorrem erros durante a computação, a função retorna FALSE. Por razões práticas, a implementação do algoritmo não necessariamente necessita de dados binários verdadeiros. Ele distingue se um valor é 0 ou dentro de um determinado limite próximo a ele. Neste caso, ele será interpretado como FALSE lógico. por exemplo. ausência. Valores que são maiores do que o limite dado são interpretados como TRUE lógico. por exemplo. presença. Assim, é possível, sem preparação adicional, passar uma matriz de contagem para a função. Como o limiar dado afeta todos os valores igualmente não altera sua característica métrica. Para calcular a dissimilaridade de Jaccard, a matriz de similaridade de Jaccard é calculada primeiro e depois transformada. Exemplo de Origem Para uma matriz de dados aInputMatrix do tipo t2dVariantArrayDouble. Preenchido com: Sabemos que Jaccard (calculado entre quaisquer duas colunas de dados binários bf) é frac, enquanto Rogers-Tanimoto é frac, onde a - número de linhas onde ambas as colunas são 1 b - número de linhas onde este e não o outro Coluna é 1 c - número de linhas onde o outro e não esta coluna é 1 d - número de linhas onde ambas as colunas são 0 abcdn, o número de linhas em bf bf XXA é a matriz simétrica quadrada de a entre todas as colunas. Bf (não X) (não X) D é a matriz simétrica quadrada de d entre todas as colunas (não X está convertendo 1-0 e 0-1 em X). Assim, frac é a matriz simétrica quadrada de Jaccard entre todas as colunas. Frac frac é a matriz simétrica quadrada de Rogers-Tanimoto entre todas as colunas. Verifiquei numericamente se essas fórmulas dão resultados corretos. Eles fazem. Atualização. Você também pode obter matrizes bf B e bf C: bf B 1X-A, onde 1 denota matriz de uns, dimensionada como bf X. bf B é a matriz assimétrica quadrada de b entre todas as colunas seu elemento ij é o número de linhas em Bf X com 0 na coluna i e 1 na coluna j. Consequentemente, bf CB. A matriz bf D também pode ser calculada desta maneira, é claro: n bf - A-B-C. Conhecendo matrizes bf A, B, C, D, você é capaz de calcular uma matriz de qualquer pairwise (dis) coeficiente de similaridade inventado para dados binários. As frações não fazem sentido para as matrizes a não ser que comutem: multiplicar à direita por um inverso dará de outra forma um resultado diferente do que multiplicar à esquerda. Além disso, geralmente não é o caso que um produto de duas matrizes simétricas é simétrico. Você quer dizer componente por componente divisão Você poderia corrigir a sua notação para refletir o que você pretende é a fórmula correta ndash 9830 Feb 7 13 às 7:19 whuber I don39t usar inversão nem multiplicação de matrizes simétricas quadradas. X é a matriz de dados binários e X39X é a sua matriz SSCP. Não X é X onde 1-gt0, 0-gt1. E qualquer divisão aqui é divisão elementar. Por favor corrija a minha notação se você vê que não é apropriado. Ndash ttnphns Feb 7 13 at 7:29 A solução acima não é muito boa se X é escasso. Porque tomar X fará uma matriz densa, levando enorme quantidade de memória e computação. Uma solução melhor é usar a fórmula Jaccardi, j common / (i j - common). Com matrizes esparsas você pode fazê-lo da seguinte forma (observe que o código também funciona para matrizes não esparsas): Isso pode ou não ser útil para você, dependendo de quais são suas necessidades. Assumindo que você está interessado em similaridade entre atribuições de cluster: O Jaccard Similarity Coefficient ou Jaccard Index pode ser usado para calcular a similaridade de duas atribuições de clustering. Dados os rótulos L1 e L2. Ben-Hur, Elisseeff e Guyon (2002) mostraram que o índice de Jaccard pode ser calculado usando produtos ponto de uma matriz intermediária. O código abaixo aproveita isso para calcular rapidamente o índice Jaccard sem ter que armazenar as matrizes intermediárias na memória. O código é escrito em C, mas pode ser carregado em R usando o comando sourceCpp. Respondida Oct 7 15 at 5:47 Sua resposta 2017 Stack Exchange, IncSimilarity Metrics Introdução Data mining é sobre a procura de padrões nos dados. Para encontrar padrões, precisamos de uma métrica para poder dizer que esse objeto de dados é como aquele objeto de dados, ou que esse pedaço de dados é diferente de outro pedaço de dados. Em outras palavras, precisamos de uma métrica para determinar similaridade, ou dissimilaridade, ou objetos de dados. Esse é o assunto desta página. Discutirei cinco métricas de similaridade: distância euclidiana, correlação de Pearson, coeficiente de similaridade de Jaccard e coeficiente de correspondência simples. Uma métrica de similaridade é um algoritmo matemático que retorna uma medida matemática de similaridade. Essas métricas são uma base importante sobre a qual os algoritmos de agrupamento que discutirei na próxima seção serão construídos. Distância euclidiana Distância euclidiana é a distância normal entre dois objetos. Esta é a distância que se obtém tomando uma régua e medindo a distância entre dois objetos. Em termos de objetos de dados, suponha que os objetos são plotados em espaço bidimensional em um gráfico. A distância euclidiana seria o comprimento da linha entre essas duas parcelas. Esta distância é descoberta usando o teorema de Pitágoras. Como as coordenadas de cada ponto no gráfico são conhecidas, a distância X e Y entre os dois pontos pode ser determinada, resultando em valores conhecidos para duas pernas de um triângulo reto. A distância entre os dois pontos de dados é a hipotenusa deste triângulo, e é descoberto por encontrar a raiz quadrada da soma dos quadrados de cada perna. A fórmula para encontrar a distância euclidiana entre dois pontos, p e q, no espaço euclidiano N-dimensional pode ser sucintamente representada com a expressão: Para um exemplo prático, examine o código abaixo. Este código assume duas pessoas com comentários de filme. Cada usuário classificou os filmes que viu em uma escala de 1 a 5. O código a seguir primeiro cria uma matriz que contém as avaliações de todos os filmes que ambos viram e, em seguida, usa a distância euclidiana para determinar o quão semelhantes são suas preferências de filme. Cálculo 1 dividido por 1 mais a raiz quadrada da soma de diferenças ao quadrado faz com que o algoritmo de um retorno um valor entre 1 e 0. Um valor de 1 indica uma correspondência perfeita, enquanto 0 indica nenhuma correspondência em tudo. Correlação de Pearson A correlação de Pearson é muito semelhante à distância euclidiana. Imagine o caso acima, onde a semelhança de preferência de filme está sendo calculada. Se um usuário nunca deu uma classificação maior do que um 3, e outro usuário nunca deu uma classificação abaixo de um 3, então assumindo que eles eram uma combinação perfeita em qualquer filme que ambos deram um 3 também seria uma falácia. Em vez disso, o usuário um adorava esse filme, enquanto o usuário 2 o odiava. A distância euclidiana não pode explicar essa inflação e deflação nas classificações, mas a correlação de Pearson pode. A correlação de Pearson leva em consideração a variação de valores em cada conjunto, o que tem o efeito de normalizar a inflação. Pode-se definir sucintamente com a seguinte expressão: O coeficiente de correlação de Pearson entre dois pontos de dados é definido como a covariância dos dois pontos divididos pelo produto de seus desvios-padrão. Novamente, usando o exemplo de pontos de dados sendo plotados em um gráfico bidimensional, a correlação de Pearson pode ser considerada como a linha de melhor ajuste entre os pontos de um dado conjunto. Por exemplo, imagine que os dois usuários no exemplo de avaliação de filme tiveram suas classificações plotadas em um gráfico com filmes no eixo X e a classificação no eixo Y. Em vez de comparar os valores reais de cada uma de suas classificações, os usuários são comparados por onde a linha de melhor ajuste para todas as suas avaliações passa por um determinado filme. Isso tem o efeito de normalizar para a inflação, e seria capaz de reconhecer que os nossos usuários de exemplo, enquanto ambos dando um 3 para um determinado filme, na verdade não era uma correspondência em tudo. Usando o mesmo caso de exemplo de recomendações de filme como no código acima, o algoritmo seguinte retornaria um valor entre 1 e -1 indicando a medida de similaridade na preferência de filme entre dois usuários. A 1 representa forte correlação positiva ou uma boa correspondência, enquanto um -1 representa uma forte correlação negativa, o que neste caso significaria uma má correspondência. Um valor de 0 indica nenhuma correlação, o que neste caso significaria que os usuários não viram nenhum dos mesmos filmes e, portanto, não podem ser comparados por similaridade de preferência. Jaccard e SMC (Coeficiente de Correspondência Simples) O coeficiente de semelhança de Jaccard eo coeficiente de correspondência simples são usados ​​para medir a similaridade entre conjuntos de dados binários. Em dados binários, os valores estão presentes ou ausentes. Um bom exemplo de dados binários são dados da cesta de mercado. Por exemplo, se uma comparação entre o conteúdo de dois clientes carrinhos de compras era desejada, um registro poderia ser criado para cada cliente. Esse registro conteria colunas para cada item em qualquer cesta e, em seguida, contaria um 0 ou 1 na linha para o respectivo cliente se ele tivesse o item em seu carrinho. Estes dois registros poderiam então ser comparados usando Jaccard ou SMC para determinar a similaridade destes hábitos de compra de clientes. Isso pode ser útil é sugerir produtos para os clientes, ou em certificar-se freqüentemente comprados itens juntos são colocados próximos uns dos outros na loja. Jaccard é melhor para dados assimétricos, porque ignora 00 correspondências, instâncias em que o objeto aparece em nenhum registro. Por exemplo, se nenhum dos clientes comprou maçãs, as maçãs seriam ignoradas ao calcular a semelhança entre os clientes carrinhos de compras. A equação para o coeficiente de similaridade Jaccard pode ser expressa como: Continuando com o exemplo do carrinho de compras, aqui está um algoritmo que irá calcular o coeficiente de semelhança Jaccard entre dois clientes. Ele assume duas variáveis ​​de instância que são matrizes contendo um 0 em cada coluna para um item que o cliente não comprou e um 1 para itens que ele comprou. O coeficiente de correspondência simples, por outro lado, inclui 00 correspondências. Assim, no exemplo de carrinho de compras, o coeficiente de correspondência simples incluiria os itens que nenhum cliente comprou. A equação para determinar o coeficiente de correspondência simples pode ser expressa como: Aqui está um algoritmo que calculará o coeficiente de correspondência simples. Ele requer as mesmas variáveis ​​de instância que o algoritmo Jaccard anterior. Extended Jaccard Similaridade O coeficiente Jaccard binário mede o grau de sobreposição entre dois conjuntos e é calculado como a relação entre o número de atributos compartilhados (palavras) de AND eo número possuído por OR . Por exemplo, dados dois vetores indicadores binários de conjuntos e, a cardinalidade de seu cruzamento é 1 ea cardinalidade de sua união é 3, tornando seu coeficiente de Jaccard 1/3. O coeficiente Jaccard binário É frequentemente utilizado em aplicações de mercado de retalho. No capítulo 3, estendemos a definição binária do coeficiente de Jaccard para características não negativas contínuas ou discretas. O Jaccard estendido é calculado como o que é equivalente à versão binária quando as entradas de vetor de característica são binárias. A semelhança de Jaccard estendida SG00c retém a propriedade de dispersão do cosseno, ao mesmo tempo que permite a discriminação de vetores colineares, como mostraremos na subseção seguinte. Outra medida de similaridade altamente relacionada ao Jaccard estendido é o coeficiente Dice (). O coeficiente Dice pode ser obtido a partir do coeficiente de Jaccard estendido adicionando tanto ao numerador como ao denominador. É omitido aqui, uma vez que se comporta muito semelhante ao coeficiente Jaccard estendido.

No comments:

Post a Comment