Eu tenho uma sequência binária como 11111011011110101100000000000100101011011111101111100000000000011010100000010000000011101111
Onde clusters de 1s são seguidos por um número maior de zeros, como na figura abaixo (preto significa 1):
Eu gostaria de aplicar uma técnica (preferencialmente em R ou em Python) em que eu possa detectar automaticamente esses clusters de 1s e produzir extensões (indicadas como linhas vermelhas na imagem). Eu sei que alguém poderia fazer isso com um limite, ou seja, dizendo que dois clusters devem ser separados por pelo menos n 0s para serem clusters, mas me pergunto se existem outros métodos estabelecidos que não usem limites predefinidos .
Qualquer ideia?
A referência 1 nas páginas 49-55 possui uma boa seção sobre métodos baseados em kernel que podem ser úteis aqui. Se eu estivesse fazendo isso, examinaria uma soma ponderada dos valores reais e sua primeira derivada, pois poderia ser um melhor indicador de "informação".
Referência: http://amzn.com/0198538642 "Redes neurais para reconhecimento de padrões", de Christopher Bishop. (1995)
fonte
O problema tem alguma semelhança com o processamento de imagem. Você tem uma imagem binária com altura de um pixel e deseja obter algum tipo de segmentação .
A natureza da imagem de entrada sugere um filtro morfológico para suavizar as regiões, por exemplo, fechar . Você precisaria escolher o elemento estruturador que determina a "ligação" dos clusters. No final, isso é bastante semelhante à sua abordagem. Você também pode suavizar a imagem usando filtros de convolução, por exemplo, borrão ou kernel gaussiano e aplicar um limite escolhido para reinicializá-la.
Se você pode tratar tudo
1
como um ponto, sua posição na sequência como uma coordenada e pode compor alguma métrica de distância, poderá usar praticamente todos os algoritmos de clustering padrão existentes. Por exemplo, você pode usar cluster hierárquico (escolher um critério de ligação e um limite), pode usar k-means ou um EM com um modelo de mistura gaussiano (escolha o número de clusters que procura).Mas não creio que você possa eventualmente fugir sem ter que predefinir a sensibilidade do algoritmo pelo menos.
fonte