Precisão vs medida F
Primeiro de tudo, quando você usa uma métrica, deve saber como jogar. A precisão mede a proporção de instâncias classificadas corretamente em todas as classes. Isso significa que, se uma classe ocorre com mais frequência do que outra, a precisão resultante é claramente dominada pela precisão da classe dominante. No seu caso, se alguém construir um Modelo M que apenas predizer "neutro" para cada instância, a precisão resultante será
acc=neutral(neutral+positive+negative)=0.9188
Bom, mas inútil.
Portanto, a adição de recursos melhorou claramente o poder do NB de diferenciar as classes, mas, ao prever "positivo" e "negativo", um erro classifica os neutros e, portanto, a precisão diminui (grosso modo). Esse comportamento é independente do NB.
Mais ou menos recursos?
Em geral, não é melhor usar mais recursos, mas usar os recursos certos. Mais recursos é melhor na medida em que um algoritmo de seleção de recursos tem mais opções para encontrar o subconjunto ideal (sugiro explorar: seleção de recursos com validação cruzada ). No que diz respeito ao NB, uma abordagem rápida e sólida (mas menos que ótima) é usar o InformationGain (Ratio) para classificar os recursos em ordem decrescente e selecionar os k principais.
Novamente, este conselho (exceto InformationGain) é independente do algoritmo de classificação.
EDIT 27.11.11
Houve muita confusão em relação ao viés e variação para selecionar o número correto de recursos. Por isso, recomendo a leitura das primeiras páginas deste tutorial: tradeoff Bias-Variance . A essência principal é:
- Viés alto significa que o modelo está abaixo do ideal, ou seja, o erro de teste é alto (menos adequado, como Simone coloca)
- Alta variação significa que o modelo é muito sensível à amostra usada para construir o modelo . Isso significa que o erro depende muito do conjunto de treinamento usado e, portanto, a variação do erro (avaliada em diferentes dobras de validação cruzada) será extremamente diferente. (sobreajuste)
As curvas de aprendizado plotadas indicam de fato o viés, pois o erro é plotado. No entanto, o que você não pode ver é a variação, pois o intervalo de confiança do erro não é plotado.
Exemplo: ao executar uma validação cruzada de três vezes 6 vezes (sim, é recomendável repetir com particionamento de dados diferente, Kohavi sugere 6 repetições), você obtém 18 valores. Eu agora esperaria que ...
- Com um pequeno número de recursos, o erro médio (viés) será menor, no entanto, a variação do erro (dos 18 valores) será maior.
- com um número alto de recursos, o erro médio (viés) será maior, mas a variação do erro (dos 18 valores) será menor.
Esse comportamento do erro / viés é exatamente o que vemos em seus gráficos. Não podemos fazer uma declaração sobre a variação. O fato de as curvas estarem próximas umas das outras pode ser uma indicação de que o conjunto de testes é grande o suficiente para mostrar as mesmas características do conjunto de treinamento e, portanto, que o erro medido pode ser confiável, mas isso é (pelo menos tanto quanto eu entendi não é suficiente para fazer uma declaração sobre a variação (do erro!).
Ao adicionar mais e mais exemplos de treinamento (mantendo o tamanho do conjunto de testes fixo), eu esperaria que a variação de ambas as abordagens (número pequeno e alto de recursos) diminua.
Ah, e não se esqueça de calcular o infogain para a seleção de recursos usando apenas os dados da amostra de treinamento! É tentado usar os dados completos para a seleção de recursos e, em seguida, executar o particionamento de dados e aplicar a validação cruzada, mas isso levará ao sobreajuste. Não sei o que você fez, este é apenas um aviso que nunca se deve esquecer.