Preciso saber por que precisamos lidar com o desequilíbrio de dados. Eu sei como lidar com isso e métodos diferentes para resolver o problema, que é a amostragem por subida ou descida ou usando o Smote.
Por exemplo, se eu tiver uma doença rara 1% em 100, e digamos que decidi ter um conjunto de dados equilibrado para o meu conjunto de treinamento, que é: amostra 50/50 Isso não fará a máquina pensar que 50% dos pacientes terão doença? mesmo que a proporção seja 1 de 100. Então
- Por que precisamos lidar com o desequilíbrio de dados?
- Qual é a proporção recomendada para definir o equilíbrio
Respostas:
Você precisa lidar com o conjunto de dados desequilibrados quando o valor de encontrar a classe minoritária é muito maior do que o de encontrar a maioria.
Digamos que 1% da população tenha essa doença rara. Suponha que você atribua o mesmo custo a dizer que um homem saudável está doente ou a dizer que um homem doente é saudável. Forneça um modelo que diga que todos são saudáveis, obtenha 99% de precisão e volte para casa mais cedo. O problema com esse modelo é que, embora tenha alta precisão, provavelmente não será o que você está procurando. Na maioria das vezes, você deseja encontrar as pessoas com a doença (dando alto peso aos falsos negativos) muito mais do que tem medo de enviar uma pessoa saudável para testes desnecessários (baixo peso para falsos positivos). Em um problema de saúde do mundo real, a proporção entre o peso pode facilmente ser de 1 a 1.000.
O desequilíbrio na distribuição falha na maioria dos algoritmos ao encontrar uma solução adequada.
Você está certo de que apenas equilibrar a distribuição não é a solução ideal. De fato, um algoritmo treinado em uma distribuição equilibrada não se ajusta à distribuição natural na qual será avaliado. Meu método favorito é adaptá-lo de volta, como você pode ver aqui . Para uma discussão, veja aqui .
Apenas definir a proporção para outro problema não funcionará, pois você terá o mesmo problema.
O Smote está trabalhando de uma maneira diferente, o que não funcionou tão bem quando eu tentei, mas pode ser o seu problema.
fonte
você precisa lidar com o desequilíbrio de classe se / porque ele melhora seu modelo (em dados não vistos). "Melhor" é algo que você precisa se definir. Pode ser precisão, pode ser um custo, pode ser a verdadeira taxa positiva etc.
Há uma nuance sutil que é importante compreender quando se fala em desequilíbrio de classe. Ou seja, seus dados estão desequilibrados porque:
Em alguns casos, uma classe ocorre muito mais que a outra. E está tudo bem. Nesse caso, você deve verificar se certos erros são mais caros que outros. Este é o exemplo típico de detecção de doenças mortais em pacientes, descobrindo se alguém é terrorista etc. Isso remonta à resposta curta. Se alguns erros são mais caros que outros, convém "puni-los", dando-lhes um custo mais alto. Portanto, um modelo melhor terá um custo menor. Se todos os erros são tão ruins, não há motivo real para você usar modelos sensíveis ao custo.
Também é importante observar que o uso de modelos sensíveis a custos não é específico para conjuntos de dados desequilibrados. Você pode usar esses modelos se seus dados também estiverem perfeitamente equilibrados.
Às vezes, seus dados são "desequilibrados" porque não representam a verdadeira distribuição dos dados. Nesse caso, você deve ter cuidado, porque você tem "muitos" exemplos de uma classe e "muito poucos" da outra e, portanto, precisa garantir que seu modelo não exagere ou desajuste em um dessas classes.
Isso é diferente de usar custos, pois pode não ser o caso de um erro ser pior que outro. O que aconteceria é que você seria tendencioso e não seria benéfico para o seu modelo se os dados invisíveis não tivessem a mesma distribuição que os dados nos quais você treinou.
Digamos que eu lhe forneça dados de treinamento e seu objetivo é adivinhar se algo é vermelho ou azul. Se você confunde azul com vermelho ou vermelho com azul não faz muita diferença. Seus dados de treinamento têm 90% de instâncias vermelhas, onde na vida real, eles acontecem apenas 10% das vezes. Você precisaria lidar com isso para melhorar seu modelo.
fonte