Técnicas de categorização / segmentação

9

Primeiro, deixe-me dizer que estou um pouco fora da minha profundidade aqui; portanto, se essa pergunta precisar ser reformulada ou encerrada como duplicada, informe-me. Pode ser que eu não tenha o vocabulário adequado para expressar minha pergunta.

Estou trabalhando em uma tarefa de processamento de imagem na qual identifico recursos em uma imagem e os classifico com base em suas propriedades, incluindo forma, tamanho, escuridão, etc. Tenho bastante experiência com a parte de processamento de imagem, mas acho que Eu poderia melhorar os métodos usados ​​para classificar os recursos.

No momento, defino limites para cada um dos parâmetros medidos e, em seguida, classifico os recursos de acordo com uma lógica simples, com base nos limites que o recurso ultrapassou. Por exemplo (as propriedades e os agrupamentos reais são mais complexos, mas estou tentando simplificar partes irrelevantes do meu projeto para esta pergunta), digamos que estou agrupando recursos nos grupos "Grande e Escuro", "Grande e Leve" e pequeno". Em seguida, um recurso estará em "Big and Dark" iff (tamanho ( A )> sizeThreshold) e (darkness ( A )> darknessThreshold).AAA

O objetivo é que a classificação concorde com a classificação feita por um ser humano no nível de especialista, para que eu possa definir os limites para produzir a melhor correspondência entre os agrupamentos feitos pelo ser humano e pelo computador em algum conjunto de teste e depois espero que a classificação funcione bem com novos dados.

Isso já está funcionando muito bem, mas vejo um modo de falha específico que acho que pode ser corrigido. Digamos que o recurso seja conhecido por pertencer a "Grande e Escuro". O ser humano o classificou dessa maneira porque, embora pouco tenha sido grande o suficiente, estava muito escuro, o que compensava um pouco a falta de "grandeza". Meu algoritmo falharia em classificar esse recurso corretamente, porque a classificação é baseada em lógica binária rígida e exige que todos os limites sejam ultrapassados.A

Eu gostaria de melhorar essa falha fazendo com que meu algoritmo imite melhor o processo guiado por humanos, no qual uma deficiência em um parâmetro pode ser compensada por uma abundância de outro. Para fazer isso, eu gostaria de pegar cada uma das propriedades básicas dos meus recursos e convertê-las em algum tipo de pontuação que seria um preditor do grupo ao qual o recurso pertence. Pensei em várias maneiras de fazer isso, mas na maior parte são idéias ad hoc, baseadas na minha formação em cálculo vetorial e física. Por exemplo, considerei tratar cada recurso como um vetor no espaço ND das propriedades do recurso e calcular a projeção de cada recurso ao longo de determinados vetores, cada qual medindo o grau em que um recurso pertence ao grupo.

Tenho certeza de que existe uma técnica mais rigorosa e melhor estabelecida para fazer esse tipo de coisa, mas meu histórico é relativamente fraco em análises estatísticas, por isso estou procurando um empurrão na direção certa. Mesmo o nome de uma técnica ou um link para um livro seria útil.

TL; DR: Quais técnicas são úteis na classificação de objetos com base em um grande número de parâmetros descritivos?

Colin K
fonte
@ Colin Seria bom dar uma olhada nas fotos. Você explicou seu problema com detalhes, seria um bom complemento. :)
deps_stats
@deps_stats: Obrigado pelo incentivo, fico feliz em ver que as pessoas pensam que eu fiz minha pergunta pelo menos com certa decência. Infelizmente, meus dados provavelmente não são algo que deveria estar em um site público. Não é exatamente classificado, mas definitivamente não é para consumo público. Tentarei gerar alguns dados artificiais que servirão como um bom exemplo para o objetivo desta pergunta, mas talvez não tenha tempo para fazer isso por um dia ou mais.
Colin K
@ Colin Não há problema. Atualmente, estou trabalhando na segmentação de mercado de um atacadista de farmácias. O problema é que seus dados se parecem muito com sinais. Vejo muitas semelhanças entre o meu problema e o seu problema. Vou tentar postar algumas pesquisas que possam ajudá-lo.
deps_stats
@deps_stats: gostaria que meus dados fossem mais como sinais. Estou muito mais confortável com o processamento de sinais do que com esse tipo de modelagem / análise estatística.
Colin K
@ Colin Você já tentou alguma análise de agrupamento? (k-médias, agrupamento hierárquico, dividindo ao redor de medoides ...)
deps_stats

Respostas:

5

Nifi

s=iwifi+o
os>tts<t, então não. Observe que existe um único limite aplicado a toda a pontuação (e não aos valores individuais das características); portanto, uma deficiência em um parâmetro pode ser compensada pela abundância em outro. Os pesos são intuitivamente interpretáveis, no sentido de que quanto maior o peso, mais importante (ou mais decisivo) esse recurso.

Existem muitos classificadores lineares disponíveis que podem fazer isso, incluindo SVM, LDA (análise discriminante linear), redes neurais lineares e muitos outros. Eu começaria executando o SVM linear porque funciona bem em muitos casos e pode tolerar dados limitados de treinamento. Também existem muitos pacotes em muitos ambientes (como Matlab e R), para que você possa experimentá-lo facilmente. A desvantagem do SVM é que ele pode ser computacionalmente pesado; portanto, se você precisar aprender muitas aulas, pode ser menos apropriado.

iti

gi=11+exp(fiti),
gf

s=iwfii.
fi, mas não por multiplicação, como em um classificador linear usual. A pontuação neste caso é a probabilidade de log, e os pesos são as contribuições dos recursos individuais para essa probabilidade de log. A desvantagem de usar isso no seu caso é que você precisará de muitos compartimentos para os valores dos recursos, e então o aprendizado pode se tornar difícil. Existem maneiras de contornar isso (por exemplo, usar priors), mas como você não tem experiência com isso, pode ser mais difícil.

Em relação à terminologia: o que você chamou de 'conjunto de testes' geralmente é chamado de 'conjunto de treinamento' neste contexto, e o que você chamou de 'novos dados' é chamado de 'conjunto de testes'.

Para um livro, eu li "reconhecimento de padrões", de Duda, Hart e Stork. O primeiro capítulo é uma introdução muito boa para iniciantes.

SheldonCooper
fonte
1
Comprei uma cópia de "Pattern Recognition" de D, H e S. É realmente espetacular, e tudo é útil e fácil de seguir. Obrigado novamente. É exatamente assim que o SE deve funcionar :) #
181 Colin K