Treinar / Test Split após executar SMOTE

8

Como estou lidando com dados altamente desequilibrados, usei o algoritmo SMOTE para reamostrar o conjunto de dados.

Após a reamostragem do SMOTE, dividi o conjunto de dados reamostrado em conjuntos de treinamento / teste, usando o conjunto de treinamento para criar um modelo e um conjunto de testes para avaliar o modelo.

No entanto, estou preocupado com o fato de que alguns pontos de dados nos conjuntos de testes possam realmente tremer dos pontos de dados no conjunto de treinamento (ou seja, as informações estão vazando do conjunto de treinamento para o conjunto de testes), portanto, o conjunto de testes não é realmente um conjunto limpo para teste.

Alguém tem experiência semelhante? As informações realmente vazam do treinamento para os testes? Ou o algoritmo SMOTE realmente cuidou dele e não precisamos nos preocupar com isso?

Muito obrigado!

Edamame
fonte

Respostas:

13

Ao usar qualquer técnica de amostragem (especificamente sintética), você divide seus dados primeiro e depois aplica a amostragem sintética apenas nos dados de treinamento. Depois de treinar, use o conjunto de testes (que contém apenas amostras originais) para avaliar. O risco se você usar sua estratégia é ter a amostra original em treinamento (teste) e a amostra sintética (criada com base nessa amostra original) no conjunto de teste (treinamento).

Bashar Haddad
fonte
11
Muito obrigado, certamente entender o seu ponto. Então, eu me pergunto dessa maneira, não poderei executar a validação cruzada n vezes, certo? Como meus dados são muito pequenos (especialmente para a classe minoritária), estou tentando usar o maior número possível.
Edamame
3

Por sua última pergunta:

Então, eu me pergunto dessa maneira, não poderei executar a validação cruzada n vezes, certo? Porque meus dados são muito pequenos (especialmente para a classe minoritária)

Isso não é verdade. Você pode tentar aumentar a amostragem se seus dados forem realmente pequenos (mas quão pequenos são?)

Y.Hiko
fonte