Classificação Hierárquica de Proteínas Utilizando Abordagens Top

Propaganda
IV Workshop em Algoritmos e Aplicações de Mineração de Dados
Classificação Hierárquica de Proteínas Utilizando Abordagens Top-Down e Big-Bang Ricardo Cerri1, André P. L. F. de Carvalho1, Eduardo de P. Costa2, Alex Freitas3 1
Instituto de Ciências Matemáticas e de Computação - Universidade de São Paulo Caixa Postal 668 – 13.506-970, São Carlos, SP, Brasil 2
Department of Computer Science - Katholieke Universiteit Leuven Celestijnenlaan 200A, 3001 Leuven, Belgium 3
Computing Laboratories - University of Kent CT2 7NF, Canterbury, England {cerri,andre}@icmc.usp.br, [email protected], [email protected] Abstract. Most of data classification problems assume that the classes are organized in a flat structure. However, in some domains, like bioinformatics and text mining, classes can be organized in a hierarchical fashion, where classes may have subclasses and superclasses. One such problem is protein function prediction. Machine Learning algorithms have been widely used to induct classification models to predict the functions of new proteins organized hierarchically. This paper investigates the application of the top-down and big-bang classification approaches under different metrics, using decision trees, in hierarchical classification problems. Resumo. A maioria dos problemas de classificação de dados assume que as classes estão organizadas de forma não hierárquica. No entanto, em alguns domínios, como bioinformática e mineração de textos, classes podem estar organizadas hierarquicamente, podendo apresentar subclasses e superclasses. Um exemplo é a classificação de funções de proteínas. Algoritmos de Aprendizado de Máquina têm sido largamente utilizados para a indução de modelos de classificação que possam predizer as funções de novas proteínas organizadas de maneira hierárquica. Este artigo investiga a aplicação das abordagens de classificação top-down e big-bang por meio de diferentes métricas, utilizando árvores de decisão, em problemas de classificação hierárquica de proteínas. 1. Introdução Com o avanço das pesquisas genéticas e finalização do seqüenciamento do genoma humano, houve uma grande expansão de pesquisas em proteômica, particularmente em trabalhos que têm por objetivo a identificação de proteínas expressas pelo genoma e predição de suas funções. Essa predição pode ser feita por homologia, por meio da comparação de uma nova seqüência com seqüências de proteínas armazenadas em bases de dados cujas funções já são conhecidas. Apesar de muito utilizada, predição por homologia apresenta limitações. Por exemplo, duas proteínas podem apresentar 46
IV Workshop em Algoritmos e Aplicações de Mineração de Dados
seqüências similares, mas desempenharem funções diferentes ou apresentar seqüências diferentes e desempenharem funções iguais ou similares. As proteínas comparadas podem ser similares em regiões de suas seqüências não determinantes para suas funções. A predição por meio de homologia entre seqüências também ignora as muitas propriedades bioquímicas das proteínas. Além disso, muitas bases de dados são organizadas de maneira hierárquica quando são distribuídas em classes e subclasses, dificultando ainda mais a tarefa de classificação. Assim, técnicas de predição baseadas em Aprendizado de Máquina (AM) têm sido cada vez mais utilizadas para a predição de funções de proteínas. Neste artigo será apresentada a utilização de árvores de decisão para a predição de funções de proteínas através das abordagens top-down e big-bang. As predições realizadas serão avaliadas por meio de diferentes métricas. Este artigo está organizado da seguinte maneira: a seção 2 apresenta os conceitos de classificação hierárquica, a seção 3 descreve as métricas de avaliação para problemas hierárquicos, a seção 4 apresenta as abordagens de classificação utilizadas neste trabalho, a seção 5 apresenta os materiais e métodos, a seção 6 descreve os experimentos e, finalmente, a seção 7 apresenta as principais conclusões deste trabalho. 2. Classificação Hierárquica A grande maioria dos problemas de classificação descritos na literatura diz respeito a problemas de classificação não hierárquica, em que cada exemplo é associado a uma classe pertencente a um conjunto finito de classes, não considerando assim relacionamentos hierárquicos. No entanto, existe um grande número de problemas em que uma ou mais classes podem ser divididas em subclasses ou agrupadas em superclasses. Nesse caso, as classes são dispostas em uma estrutura hierárquica, tal como uma árvore ou um grafo acíclico direcionado (do inglês DAG - Directed Acyclic Graph). Esses problemas são conhecidos na literatura de AM como problemas de classificação hierárquica [Freitas e Carvalho, 2007]. Tais problemas têm por objetivo a classificação de cada novo padrão de entrada em um nó interno ou em um dos nós folha. Pode ocorrer, no entanto, do classificador ter uma baixa confiança na classificação em uma das classes em um determinado nível, sendo mais seguro classificá-lo em uma das classes dos níveis mais elevados da hierarquia. A principal diferença entre a estrutura em árvore e a estrutura DAG é que na estrutura em árvore, cada nó tem somente um nó pai e na DAG cada nó pode ter um ou mais nós pai. Não importa se a estrutura representa um problema de classificação não hierárquica ou hierárquica, os nós representam as classes que fazem parte do problema. Na estrutura em árvore, quanto mais profundo é o nível, geralmente é mais difícil a predição da classe correta. Isto pode ser devido ao fato de que classes nos níveis mais profundos representam informações mais específicas e são produzidas por modelos induzidos a partir de um número menor de exemplos de treinamento. Para a estrutura DAG, essa análise é mais complexa. Nessa estrutura, um nó pode ter mais de um pai. Assim, modelos em níveis mais profundos podem ser induzidos com um número maior de exemplos de treino do que seus nós pais. Apesar disso, na prática, mesmo para DAGs, a precisão na predição decresce com o aumento da profundidade. Nos métodos hierárquicos de classificação, o algoritmo de aprendizado induz um modelo que captura os relacionamentos mais relevantes entre as classes funcionais 47
IV Workshop em Algoritmos e Aplicações de Mineração de Dados
no conjunto de dados de treinamento, considerando os relacionamentos hierárquicos entre as classes. Essa abordagem permite a utilização de uma grande variedade de algoritmos de AM no processo de classificação [Freitas e Carvalho, 2007]. 3. Métricas de Avaliação para Problemas Hierárquicos Para a avaliação de modelos de classificação, deve-se tomar cuidado na partição dos exemplos para treinamento e teste do classificador. Um método muito utilizado é o K-fold cross-validation, em que o conjunto de exemplos é dividido em k subconjuntos ou partições. A cada iteração do algoritmo, uma partição é utilizada como teste e as demais para o treinamento. Esse processo é repetido tantas vezes quanto for o número de partições. O stratified K-fold cross-validation utiliza a mesma proporção de exemplos de cada classe do problema para formar as partições, fazendo com que cada partição tenha a mesma distribuição de exemplos por classe do conjunto original [Witten and Frank, 1993]. Medidas de avaliação convencionais são inadequadas para modelos de classificação hierárquica, pois ignoram o fato de que a dificuldade na classificação aumenta conforme aumenta a profundidade da hierarquia de classes. Essas medidas estão baseadas na atribuição de um custo uniforme aos erros de classificação, independente das posições da classe verdadeira e da classe predita na hierarquia. Existem alternativas para medidas de avaliação de desempenho de algoritmos de classificação hierárquica. Neste trabalho são utilizadas medidas baseadas em distância, medidas dependentes de profundidade e medidas baseadas nas relações de ancestralidade e descendência (hF-Measure). 3.1. Medidas baseadas em distância Este método considera a distância entre a classe verdadeira e a classe predita na hora de medir o desempenho da classificação hierárquica, pois classes que estão mais perto umas das outras na hierarquia tendem a ser mais próximas entre si do que de outras classes. Entretanto, uma desvantagem do método é que ele não considera o fato de que classificações nos níveis mais profundos da hierarquia são mais difíceis do que classificações nos níveis mais altos. A medida foi primeiramente proposta por Wang, Zhou and Ling, 1999. Nesta medida, é calculada a contribuição de falsos positivos e de falsos negativos para cada classe do conjunto de dados. 3.2. Medidas dependentes de profundidade Para tentar contornar a desvantagem da medida baseada em distância, este método torna os custos de classificações erradas em níveis mais elevados maiores do que em níveis mais profundos da hierarquia [Blockeel et al, 2002]. Nesta medida, a distância entre duas classes é definida como uma função de dois fatores: o número de vértices entre a classe predita e a classe verdadeira no grafo que representa a hierarquia de classes, e a profundidade das classes verdadeira e predita na hierarquia de classes. O erro de classificação associado à diferença entre as classes verdadeira e predita é dado pela soma dos pesos de todos os vértices do caminho entre essas duas classes. Para que os custos de erros de classificação em níveis mais elevados sejam 48
IV Workshop em Algoritmos e Aplicações de Mineração de Dados
maiores do que em níveis mais profundos, os pesos dos vértices dos níveis mais profundos tendem a ser menores do que nos níveis mais elevados. 3.3. Medidas baseadas na hierarquia (hF-Measure) Este método utiliza o conceito de ancestralidade e descendência das classes para formular novas medidas de avaliação. Um exemplo pode ser visto em Ipeirotis et al, 2001, onde foi utilizado o conceito de classes descendentes, considerando as subárvores enraizadas na classe predita e na classe verdadeira. Cada subárvore é formada pela classe em si e seus descendentes. Medidas estendidas de precisão e revocação podem ser calculadas utilizando a intersecção dessas subárvores. Essas medidas são então utilizadas no cálculo de uma extensão hierárquica da medida F-measure. O problema dessa medida é que ela assume que a classe predita é uma subclasse ou superclasse da classe verdadeira. Quando essas classes estão no mesmo nível, a intersecção é um conjunto vazio [Costa et al, 2007b]. 4. Abordagens Utilizadas para Problemas Hierárquicos 4.1. Classificação Hierárquica Top-Down Em uma classificação top-down, a hierarquia de classes é processada um nível de cada vez durante o treinamento do algoritmo, produzindo um ou mais classificadores para cada nível da hierarquia. Esse processo produz uma árvore de classificadores. O classificador raiz é treinado com todos os exemplos de treinamento, e então, no próximo nível da hierarquia, um classificador é treinado usando apenas exemplos pertencentes às classes preditas por aquele classificador [Costa et al, 2007a]. Na fase de teste, cada exemplo é classificado de uma maneira top-down. Quando atribuído a uma classe, um exemplo é então submetido a outro classificador de maneira a ser predita a qual subclasse dessa classe o exemplo pertence. Na maioria dos trabalhos, esse processo continua até uma classe em um nó folha da árvore de classificação ser alcançada, ou nenhuma predição adicional puder ser feita para um exemplo. A desvantagem do método top-down é que erros cometidos em níveis mais altos da hierarquia de classes são propagados para os níveis mais específicos da hierarquia [Freitas e Carvalho, 2007]. 4.2. Classificação Hierárquica Big-Bang Em uma classificação big-bang, é considerada a hierarquia de classes como um todo para a criação do modelo de classificação, em uma única iteração do algoritmo de indução. Este método pode evitar o problema de propagação de erros do método topdown, porém apresenta uma complexidade maior [Freitas e Carvalho, 2007]. Depois de treinado o modelo de classificação, a predição de classes de novos exemplos é feita em apenas um passo. Por essa razão, o método big-bang não pode utilizar técnicas de classificação não hierárquica como o método top-down. Se uma técnica de classificação não hierárquica for utilizada, ela tem que ser adaptada para considerar toda a hierarquia de classes. 49
IV Workshop em Algoritmos e Aplicações de Mineração de Dados
5. Materiais e Métodos 5.1. Bases de Dados Duas bases de dados foram utilizadas neste trabalho: uma se refere às proteínas GPCR (do inglês G-Protein-Coupled Receptor) e outra diz respeito a famílias de enzimas codificadas com o código EC (do inglês Enzyme Commission) [E. Nomenclature, 1972]. Proteínas GPCR são proteínas envolvidas em sinalização. Elas expandem as paredes celulares e influenciam os processos químicos dentro da célula pela sensibilidade aos processos químicos fora da célula. Esse tipo de proteína é particularmente importante para aplicações médicas porque se acredita que 40% a 50% dos medicamentos atacam a atividade das GPCRs [Filmore, 2004]. As enzimas são outro subconjunto de proteínas que funcionam como catalisadores. Elas aceleram e tornam possíveis muitas das reações químicas dentro de uma célula, sem que elas próprias sejam alteradas durante esse processo. Elas são utilizadas para controlar tanto a velocidade de uma reação, ou o curso total das reações em uma via metabólica dentro de uma célula. As GPCRs têm até cinco níveis de classes. Porém, como os dados no quinto nível eram muito esparsos para o treinamento, somente quatro níveis foram considerados na criação da base. Todos os quatro níveis das enzimas foram considerados para a criação da base de enzimas. Para a realização dos experimentos, todos os exemplos duplicados foram removidos para evitar redundância. Em ambas as bases de dados, se houvesse menos do que dez exemplos pertencentes a uma dada classe na hierarquia de classes, essa classe era incorporada pela sua classe pai. Se sua classe pai fosse a raiz, toda essa classe pequena era removida da base de dados. Atributos binários que tivessem um valor que ocorresse em apenas um exemplo eram removidos da base de dados. Após esse préprocessamento, a base de dados de GPCRs ficou com 450 atributos, 7461 exemplos e 12/54/82/50 classes por nível. A base de dados de enzimas ficou com 1216 atributos, 14036 exemplos e 6/41/96/187 classes por nível. Devido ao alto custo computacional, a base de enzimas foi reduzida a 6925 exemplos e 2/21/48/87 classes por nível. 5.2. Árvores de Decisão Uma árvore de decisão é uma estrutura de dados definida recursivamente como: um nó folha que corresponde a uma classe, ou um nó de decisão, que contém uma decisão sobre algum atributo. Para cada resultado da decisão existe uma aresta para uma subárvore. Árvores de decisão podem ser representadas como um conjunto de regras seentão, tornando-se fáceis de entender e interpretar. Esse método de classificação está entre os mais populares e tem sido aplicado em tarefas como, por exemplo, diagnóstico médico [Mitchell, 1997]. A classificação de dados em uma árvore de decisão se inicia na raiz em direção a um nó folha, que define a classe. Nesse processo, testa-se um atributo em um determinado nó, e move-se para baixo na árvore por meio do ramo correspondente ao valor do atributo presente no exemplo de teste. O processo é repetido para a subárvore enraizada no novo nó. Neste trabalho é utilizado o algoritmo C4.5 [Quinlan, 1993]. 50
IV Workshop em Algoritmos e Aplicações de Mineração de Dados
5.3. Modelos de Classificação Hierárquica Para a avaliação das abordagens top-down e big-bang, foi utilizado o algoritmo C4.5. As bases de dados foram divididas de acordo com o método 5-fold cross-validation implementado por Costa et al, 2007a. Foi utilizada a ferramenta R [Venables and Smith, 2006] para a implementação da abordagem top-down. O algoritmo C4.5 utilizado também foi o disponibilizado por essa ferramenta. A abordagem big-bang utilizada foi implementada por Clare and King, 2003, e utiliza uma versão modificada do algoritmo C4.5 que pode atribuir uma classe a um novo exemplo em qualquer nível da árvore. Foi feita uma modificação por Costa et al, 2007a, que incluiu a restrição de que só pode ser atribuída uma classe a um novo exemplo em um nó folha da árvore. Os algoritmos de avaliação utilizados para comparação dos resultados foram implementados utilizando a ferramenta R. 6. Experimentos Os experimentos foram conduzidos de maneira a avaliar as abordagens de classificação hierárquica top-down e big-bang utilizando o algoritmo C4.5. Para essa avaliação, foram utilizadas as métricas apresentadas na seção 3. As tabelas de número 1 a 8 apresentam as taxas de acerto médias obtidas em cada nível da hierarquia para as base de dados GPCR e EC utilizando as diferentes métricas. Entre parênteses é apresentado o desvio padrão para cada taxa de acerto. Tabela 1: Métodos top-down e big-bang na base GPCR usando medida custo uniforme 1 2 3 4 Top-Down 93.10 (0.34) 87.69 (0.95) 52.43 (0.76) 78.55 (2.53) Big-Bang 91.13 (0.97) 75.23 (1.66) 39.72 (1.06) 50.19 (3.82) Tabela 2: Métodos top-down e big-bang na base GPCR usando medida baseada em distância 1 2 3 4 Top-Down 93.10 (0.34) 90.21 (0.57) 78.27 (0.42) 83.91 (2.01) Big-Bang 91.13 (0.97) 83.41 (1.26) 70.79 (0.72) 74.33 (1.71) Tabela 3: Métodos top-down e big-bang na base GPCR usando medida dependente de profundidade 1 2 3 4 Top-Down 93.10 (0.34) 91.05 (0.47) 85.28 (0.36) 85.48 (1.90) Big-Bang 91.13 (0.97) 85.83 (1.15) 79.65 (0.78) 79.67 (1.40) 51
IV Workshop em Algoritmos e Aplicações de Mineração de Dados
Tabela 4: Métodos top-down e big-bang na base GPCR usando medida hFMeasure 1 2 3 4 Top-Down 93.10 (0.34) 90.21 (0.57) 77.70 (0.40) 83.04 (2.20) Big-Bang 91.13 (0.97) 83.34 (1.27) 69.83 (0.76) 71.13 (1.72) Tabela 5: Métodos top-down e big-bang na base EC usando medida custo uniforme 1 2 3 4 Top-Down 98.40 (0.52) 97.70 (0.36) 96.99 (0.50) 95.90 (0.33) Big-Bang 88.96 (0.36) 82.70 (0.85) 76.85 (0.71) 72.14 (0.66) Tabela 6: Métodos top-down e big-bang na base EC usando medida baseada em distância 1 2 3 4 Top-Down 98.40 (0.52) 98.05 (0.40) 97.70 (0.42) 97.32 (0.41) Big-Bang 88.96 (0.36) 86.64 (0.56) 85.71 (0.60) 86.85 (0.56) Tabela 7: Métodos top-down e big-bang na base EC usando medida dependente de profundidade 1 2 3 4 Top-Down 98.40 (0.52) 98.17 (0.43) 97.99 (0.44) 97.78 (0.45) Big-Bang 88.96 (0.36) 87.42 (0.49) 86.87 (0.52) 87.22 (0.56) Tabela 8: Métodos top-down e big-bang na base EC usando medida hFMeasure 1 2 3 4 Top-Down 98.40 (0.52) 98.05 (0.40) 97.70 (0.42) 97.20 (0.42) Big-Bang 88.96 (0.36) 86.36 (0.56) 85.14 (0.59) 84.71 (0.66) Para verificar se a diferença nos resultados é estatisticamente significante, foi utilizado o teste t de Student corrigido, que consiste em calcular a diferença de resultados entre dois classificadores para vários conjuntos de teste, e verificar se a média da diferença entre eles é estatisticamente diferente de 0 [Demsar, 2006]. 52
IV Workshop em Algoritmos e Aplicações de Mineração de Dados
O nível de significância do teste estatístico, que originalmente foi determinado como 5% (� = 0.05), foi ajustado por meio da Correção de Bonferroni, que consiste em determinar um novo nível de significância baseado no nível de significância original e no número de comparações empregadas. Como foi utilizado o 5-fold cross-validation, os testes foram realizados utilizando 4 graus de liberdade. Após a Correção de Bonferroni, o � utilizado foi o de valor 0.025. Observando as tabelas de número 1 a 8, verifica-se que os resultados dos experimentos, tanto nas bases GPCR quanto EC, para as diferentes medidas, apresentam os mesmos valores para o primeiro nível da hierarquia de classes. Isso ocorreu porque não há relações de classes e subclasses no primeiro nível, fazendo com que as medidas sejam reduzidas a um mesmo cálculo. A taxa de acerto dependente de profundidade foi a que obteve maiores valores para os outros níveis, devido a sua maior flexibilidade com relação a erros que ocorrem em níveis mais profundos. O oposto ocorre com a medida custo uniforme. Por isso esta medida obteve os piores valores. Na base GPCR, a hierarquia tem mais classes no terceiro nível do que no quarto, fazendo com que alguns erros sejam propagados apenas até o terceiro nível da hierarquia. Isso fez com que as duas abordagens apresentassem um melhor desempenho no quarto nível do que no terceiro nível. No caso da base EC ocorreu o contrário. O desempenho no terceiro nível, para a maioria dos casos, foi melhor do que no quarto, pois a base EC é mais completa do que a GPCR, existindo mais classes no quarto nível do que no terceiro. Quando é comparado o desempenho das abordagens top-down e big-bang, observa-se que, para as duas bases de dados, a abordagem big-bang obteve um pior desempenho. O teste estatístico aplicado às diferentes métricas mostrou que a diferença entre os resultados obtidos pelas abordagens top-down e big-bang é estatisticamente significante para ambas as bases nos 4 níveis da hierarquia. Acreditamos que o melhor desempenho da abordagem top-down deu-se devido à menor complexidade desse algoritmo, que não precisa considerar simultaneamente todas as classes da hierarquia em uma única iteração. Ainda, como a predição utilizada nos experimentos foi obrigatoriamente nos nós folha da árvore, a distribuição das classes na base de dados EC acabou favorecendo a abordagem top-down, pois erros cometidos no terceiro nível não se propagaram para o último nível da hierarquia. Para a base de dados GPCR, acreditamos que o menor número de exemplos no terceiro e quarto níveis da hierarquia prejudicou o desempenho da abordagem big-bang. Isso acontece porque o algoritmo big-bang faz suas predições diretamente nos nós folha, ao contrário do algoritmo top-down, que utiliza um mecanismo de dividir e conquistar. 7. Conclusão Este trabalho investigou diferentes métricas de avaliação de desempenho para problemas de classificação hierárquica. Para isso, diferentes abordagens propostas na literatura para lidar com problemas de classificação hierárquica foram analisadas experimentalmente. Para a realização dos experimentos, foi utilizado o algoritmo de indução de árvores de decisão C4.5. Os dados utilizados nos experimentos são de uma 53
IV Workshop em Algoritmos e Aplicações de Mineração de Dados
base de dados real do domínio da bioinformática, relacionada a classificação hierárquica de funções de proteínas. Como trabalhos futuros, os autores planejam combinar técnicas de classificação hierárquica com classificação multi-rótulo. Referências Blockeel, H.; Bruynooghe, M.; Dzeroski, S.; Ramon, J.; and Struyf, J. 2002. Hierarchical multi-classification. In Proceedings of the ACM SIGKDD 2002 Workshop on Multi-Relational Data Mining (MRDM 2002), 21–35. Clare, A., King, R.D. Predicting gene function in Saccharomyces Cerevisiae. Bioinformatics, Vol. 19, Suppl. 2, 2003, p. 42-49. Costa, E. P., Lorena, A. C., de Carvalho, A. C. P. L. F. and Freitas, A. A. Comparing Several Approaches for Hierarchical Classification of Proteins with Decision Trees. Brazilian Symposium on Bioinformatics, Angra dos Reis - RJ. Lecture Notes on Bioinformatics. Berlin: Springer-Verlag, 2007a. v. 4643. p. 126-137. Costa, E. P. Lorena, A. C., de Carvalho, A. C. P. L. F., Freitas, A. A. and Holden, N. A Review of Performance Evaluation Measures for Hierarchical Classifiers. Workshop on Evaluation Methods for Machine Learning II, part of the Twenty-Second Conference on Artificial Intelligence, AAAI, Vancouver, Canada, 2007b, p. 1-6. Demsar, J. Statistical Comparisons of Classifiers over multiple data sets. Journal of Machine Learning Research, 7(1). 2006, p. 1-30. E. Nomenclature, of the IUPAC-IUB, American Elsevier Pub. Co., New York, NY 1972, 104. Filmore, D. It’s a GPCR world, Modern drug discovery 1 (17) 2004, p. 24-28. Freitas, A., Carvalho, A. C. P. F. A Tutorial on Hierarchical Classification with Applications in Bioinformatics. In: Research and Trends in Data Mining Technologies and Applications: Advances in Data Warehousing and Mining. D. Taniar (Editor). Volume 1, Idea Group Inc, Hershey, USA. ISBN-10: 159904272X, ISBN-13: 978-1599042725, 2007, p. 176-209. Ipeirotis, P., Gravano, L., and Sahami, M. Probe, count, and classify: categorizing hidden web databases. In Procedings of the 2001 ACM SIGMOD international conference on management of data, 2001, p. 67-78. ACM Press New York, NY, USA. Mitchell T., Machine Learning. McGraw-Hill Science/Engineering/Math. 1, mar. 1997. Quinlan, J. R. C4.5: Programs for Machine Learning. Morgan Kaufmann, San Mateo, California, 1993, p. 235-240. Venables, W. N. Smith, D. M. The R Development Core Team, An introduction to R – version 2.4.1, http://cran.r-project.org/doc/manuals/R-intro.pdf, 2006. Wang, K.; Zhou, S.; and Liew, S. Building hierarchical classifiers using class proximity. In Proceedings of the 25th International Conference on Very Large Data Bases, 1999 p. 363–374. Witten I. H., Frank E., Data Mining: Practical machine learning tools and techniques, 2nd Edition, Morgan Kaufmann, San Francisco, 2005. 54
Download