Melhor desempenho esperado possível em um conjunto de dados

9

Digamos que eu tenha um problema simples de aprendizado de máquina, como uma classificação. Com algumas referências em visão ou reconhecimento de áudio, eu, como humano, sou um classificador muito bom. Portanto, tenho uma intuição de quão bom um classificador pode ser.

Mas com muitos dados, um ponto é que eu não sei como é possível obter o classificador que treino. Esses são dados em que eu pessoalmente não sou um classificador muito bom (digamos, classifique o humor de uma pessoa a partir dos dados de EEG). Não é realmente possível ter uma intuição sobre a dificuldade do meu problema.

Agora, se eu me deparar com um problema de aprendizado de máquina, gostaria de descobrir o quanto posso ser bom. Existem abordagens de princípios para isso? Como você faria isso?

Visualizar dados? Comece com modelos simples? Comece com modelos muito complexos e veja se consigo me superestimar? O que você está procurando se quiser responder a esta pergunta? Quando você para de tentar?

bayerj
fonte

Respostas:

6

Não sei se isso conta como resposta ...

Este é o único problema que mantém você acordado à noite. Você pode construir um modelo melhor? Phd-comics resume muito bem (eu não sei se tenho permissão para fazer upload dos quadrinhos, então apenas os vinculei)

Da minha experiência pessoal, adquirida ao participar de competições de Machine Learning, aqui está uma regra geral.

Imagine que você recebe uma tarefa de classificação. Sente-se, faça um brainstorming de uma hora ou menos sobre como você abordaria o problema e confira o estado da arte nesta área. Construa um modelo com base nesta pesquisa, de preferência um que seja conhecido por ser estável sem muitos ajustes de parâmetro. O desempenho resultante será aproximadamente 80% do desempenho máximo possível.

Esta regra é baseada no chamado princípio de Pareto , que também se aplica à otimização. Dado um problema, você pode criar uma solução que tenha um desempenho razoavelmente rápido, mas a partir desse ponto a proporção de melhoria em relação ao esforço de tempo cai rapidamente.

Algumas palavras finais: Quando leio artigos sobre novos algoritmos de classificação, espero que os autores comparem sua nova raça com essas abordagens "otimizadas por pareto", ou seja, espero que gastem um tempo razoável para fazer o estado da arte funcionar (alguns exigem mais ou menos otimização de parâmetro). Infelizmente, muitos não fazem isso.

Steffen
fonte
0

A maneira convencional é considerar o ROC e a área sob ele (AUC). A lógica por trás dessa abordagem é que, quanto maior a taxa positiva verdadeira para uma determinada taxa de falsos positivos, melhor o classificador. A integração em todas as possíveis taxas de falsos positivos fornece uma medida geral.

Emre
fonte
3
Até onde eu entendi o OP, o problema dele NÃO é a medição do desempenho de um classificador (o que é uma boa estimativa para o futuro desempenho esperado), mas quão bom alguém pode obter, TUDO, ou seja, qual é o máximo (não é absolutamente por métrica (AUC é de 1 a max ou algo parecido), mas para um determinado problema)
Steffen
Sim, foi o que eu quis dizer.
bayerj
0

Se houver uma maneira de visualizar seus dados, esse é o melhor cenário possível, no entanto, nem todos os dados podem ser visualizados da mesma maneira; portanto, você pode precisar encontrar sua própria maneira de projetar os dados que podem ajudá-lo a entender seus dados Melhor.

No entanto, em geral, geralmente colho uma pequena amostra dos dados, os converto em ARFF e tento diferentes algoritmos de cluster do WEKA. Então, apenas vejo qual algoritmo me dá uma melhor matriz de confusão. Isso me dá uma dica de quão bem as classes são separadas e me permite investigar por que esse algoritmo específico se sai melhor para esses dados. Também mudo o número de clusters (ou seja, não uso apenas k = 2, uso k = 3, 4 etc.). Isso me dá uma idéia se há fragmentação nos dados ou se uma classe é mais fragmentada que a outra. Se você misturar pontos de treinamento e teste para cluster, também poderá medir quais clusters são representados por seus pontos de treinamento. Alguns clusters podem estar super-representados e outros podem estar sub-representados, ambos podem causar problemas que afetam o aprendizado de um classificador.

Sempre verifique a precisão do seu treinamento. Se a precisão do seu treinamento não estiver boa, pontos de treinamento mal classificados também são uma grande dica.

TenaliRaman
fonte