Eu encontrei esta implementação em Python do algoritmo Jenks Natural Breaks e poderia fazê-lo rodar na minha máquina Windows 7. É bem rápido e encontra as quebras em pouco tempo, considerando o tamanho dos meus dados geográficos. Antes de usar esse algoritmo de clustering para meus dados, eu estava usando o algoritmo sklearn.clustering.KMeans
(aqui) . O problema que tive com o KMeans foi encontrar o parâmetro ideal do valor K, mas "resolvi" iniciando o algoritmo para diferentes valores K e usando sklearn.metrics.silhouette_score
(aqui) para encontrar o melhor K.
Minha pergunta é: se eu disser ao algoritmo Natural Breaks para encontrar 5 classes (que seria o K), como posso ter certeza de que esse é o número de classes que melhor corresponde aos meus dados? Como validar que estou escolhendo o melhor número de pausas?
Obrigado!
fonte
Respostas:
O Jenks Natural Breaks funciona otimizando o ajuste de qualidade de variação, um valor de 0 a 1 em que 0 = sem ajuste e 1 = ajuste perfeito. A chave na seleção do número de classes é encontrar um equilíbrio entre a detecção de diferenças e a super adequação dos dados. Para determinar o número ideal de classes, sugiro que você use um valor limite de GVF desejado e use o número de classes que satisfaz esse valor primeiro.
Abaixo está uma função para calcular o Ajuste de Variação, dada uma matriz de valores a serem classificados e o número de classes selecionadas:
Por exemplo, considere que você decide que o GVF deve ter pelo menos 0,8 e, em seguida, você pode aumentar o número de classes até que o GVF seja satisfeito:
fonte