Isso foi relatado como um bug - [Wekalist] DBScan - Problema / Bug com "clusterInstance ()" - Função .
Eu estou fazendo alguns clusters com a biblioteca DBScan. Infelizmente isso
Parece que há um bug na função "clusterInstance ()". o
função não retorna o número do cluster atribuído, mas apenas
retorna o número do cluster do primeiro elemento do banco de dados (ou o
segunda na segunda chamada, a terceira na terceira, e assim por diante.)
e NÃO a instância atribuída.
Ele simplesmente não pode funcionar porque a variável atribuída nunca é usada em
a função.
A resposta diz:
DBScan e Optics são contribuições para a Weka. Provavelmente é melhor se você
Entre em contato com os autores para ver se eles podem sugerir uma correção de bug. O código e
informações do pacote (Weka 3.7) tem informações de contato:
link
Eu tenho medo de não estar familiarizado com o algoritmo DBScan e o código é bastante antigo agora (2004), você pode ter sorte e achar que ainda é capaz de contatar os autores no LMU Munich.
Eu encontrei várias cópias dele por meio de Pesquisa do Google Code e GitHub , mas não consegui encontrar um exemplo onde foi corrigido. Durante a pesquisa, notei várias outras implementações do DBScan que você poderia examinar para descobrir como este poderia ser corrigido (por exemplo, DBSCAN da ELKI )
Como eu disse, não estou familiarizado com o DBScan, mas olhar para os JavaDocs me deu a impressão de que o clustering real é chamado chamando buildClusterer (instâncias de instâncias) . Examinando o código-fonte, parece haver muito mais acontecendo dentro do método buildClusterer do que o método clusterInstance . OPTICS.java também contém um método clusterInstance e esse apenas lança uma exceção. Se você tiver sorte, talvez consiga passar sem o método clusterInstance em funcionamento.
Encontrei um exemplo do DBScan de Weka sendo usado aqui: DBSCANClustering.java