Na verdade, o que eles mencionaram está certo. A idéia de superamostragem é correta e é um dos métodos de reamostragem geral para lidar com esse problema. A reamostragem pode ser feita através da sobreamostragem das minorias ou da subamostragem das maiorias. Você pode dar uma olhada no algoritmo SMOTE como um método bem estabelecido de reamostragem.
Mas sobre a sua pergunta principal: Não, não se trata apenas da consistência das distribuições entre o teste e o conjunto de trens. É um pouco mais.
Como você mencionou sobre as métricas, imagine a pontuação de precisão. Se eu tiver um problema de classificação binária com 2 classes, uma 90% da população e a outra 10%, então, sem a necessidade de aprendizado de máquina, posso dizer que minha previsão é sempre a classe maioritária e tenho 90% de precisão! Portanto, simplesmente não funciona, independentemente da consistência entre as distribuições de teste de trem. Nesses casos, você pode prestar mais atenção ao Precision and Recall. Normalmente, você gostaria de ter um classificador que minimize a média (geralmente média harmônica) de Precision and Recall, ou seja, a taxa de erro é onde FP e FN são razoavelmente pequenos e próximos um do outro.
A média harmônica é usada em vez da média aritmética, pois suporta a condição de que esses erros sejam os mais iguais possíveis. Por exemplo, se Precision for1 1 e Lembre-se é 0 0 a média aritmética é 0,5o que não está ilustrando a realidade dentro dos resultados. Mas a média harmônica é0 0 que diz que, no entanto, uma das métricas é boa e a outra é super ruim; em geral, o resultado não é bom.
Mas existem situações na prática em que você NÃO deseja manter os erros iguais. Por quê? Veja o exemplo abaixo:
Um ponto adicional
Isso não é exatamente sobre sua pergunta, mas pode ajudar a entender.
Na prática, você pode sacrificar um erro para otimizar o outro. Por exemplo, o diagnóstico do HIV pode ser um caso (estou apenas zombando de um exemplo). É uma classificação altamente desequilibrada, pois, é claro, o número de pessoas sem HIV é dramaticamente maior do que as que são portadoras. Agora vamos ver os erros:
Falso positivo: A pessoa não tem HIV, mas o teste diz que sim.
Falso Negativo: A pessoa tem HIV, mas o teste diz que não.
Se assumirmos que dizer erroneamente a alguém que ele tem HIV simplesmente leva a outro teste, podemos ter muito cuidado em não dizer erroneamente alguém que ele não é portador, pois isso pode resultar na propagação do vírus. Aqui, seu algoritmo deve ser sensível ao falso negativo e o pune muito mais do que o falso positivo, ou seja, de acordo com a figura acima, você pode acabar com uma taxa mais alta de falso positivo.
O mesmo acontece quando você deseja reconhecer automaticamente os rostos das pessoas com uma câmera para permitir que elas entrem em um site de ultra-segurança. Você não se importa se a porta não for aberta uma vez para alguém que tenha permissão (Falso Negativo), mas tenho certeza de que não deseja deixar um estranho entrar! (Falso positivo)
Espero que tenha ajudado.
cost(false positive) = cost(false negative)
, posso usar a precisão, pois a métrica e o reequilíbrio devem ser feitos apenas para corresponder à distribuição da amostra de teste. Isso está certo?