A amostragem estratificada é necessária (floresta aleatória, Python)?

14

Eu uso o Python para executar um modelo de floresta aleatório no meu conjunto de dados desequilibrado (a variável de destino era uma classe binária). Ao dividir o conjunto de dados de treinamento e teste, lutei para usar a amostragem estratificada (como o código mostrado) ou não. Até agora, observei em meu projeto que o caso estratificado levaria a um desempenho mais alto do modelo. Mas acho que se vou usar meu modelo para prever os novos casos que provavelmente diferem muito na distribuição da classe de destino com meu conjunto de dados atual. Então, inclinei-me a afrouxar essa restrição e usar a divisão não estratificada. Alguém poderia aconselhar para esclarecer esse ponto?

train,test=train_test_split(myDataset, test_size=0.25, stratify=y)
LUSAQX
fonte

Respostas:

13

Se o número de valores pertencentes a cada classe for desequilibrado, usar amostragem estratificada é uma coisa boa. Você está basicamente pedindo ao modelo que faça o treinamento e o conjunto de testes de forma que a proporção da turma seja igual à de todo o conjunto de dados, o que é a coisa certa a se fazer. Se suas aulas são equilibradas, um embaralhamento (nenhuma estratificação necessária aqui) pode basicamente garantir um teste justo e uma divisão do trem.

Agora seu modelo será capaz ou, pelo menos, equipado para prever a classe em menor número (classe com menos pontos em número). É por isso que, em vez de apenas calcular a precisão, você recebe outras métricas como sensibilidade e especificidade . Fique de olho neles, estes são os guardiões.

Espero que isto ajude.

Kiritee Gak
fonte