Sou iniciante em aprendizado de máquina e estou enfrentando uma situação. Estou trabalhando em um problema de lances em tempo real, com o conjunto de dados IPinYou e estou tentando fazer uma previsão de cliques.
O fato é que, como você deve saber, o conjunto de dados é muito desequilibrado: cerca de 1300 exemplos negativos (sem clique) para 1 exemplo positivo (clique).
Isto é o que eu faço:
- Carregar os dados
- Divida o conjunto de dados em três conjuntos de dados: A = Treinamento (60%) B = Validando (20%) C = Teste (20%)
- Para cada conjunto de dados (A, B, C), faça uma subamostragem em cada classe negativa para ter uma proporção de 5 (5 exemplos negativos para 1 exemplo positivo). Isso me deu três novos conjuntos de dados mais equilibrados: A 'B' C '
Em seguida, treino meu modelo com o conjunto de dados A 'e a regressão logística.
Minha pergunta é:
Qual conjunto de dados eu tenho que usar para validação? B ou B '?
Qual conjunto de dados eu tenho que usar para testar? C ou C '
Quais métricas são as mais relevantes para avaliar meu modelo? O F1Score parece ser uma métrica bem usada. Mas aqui, devido à classe desequilibrada (se eu usar os conjuntos de dados B e C), a precisão é baixa (abaixo de 0,20) e o F1Score é muito influenciado por baixa recuperação / precisão. Seria mais preciso usar aucPR ou aucROC?
Se eu quiser traçar a curva de aprendizado, quais métricas devo usar? (sabendo que o erro% não é relevante se eu usar o conjunto de dados B 'para validar)
Agradeço antecipadamente pelo seu tempo !
Saudações.
fonte
Para
1)
e2)
você desejaPortanto, para esses conjuntos de dados, você não precisa equilibrar as classes.
Você também pode tentar usar pesos de classe em vez de sub / superamostragem, pois isso cuida dessa decisão.
Pois
3)
você provavelmente deseja otimizar usando qualquer métrica em que será pontuada (se for uma competição). Mas se isso não for considerado, todos esses modelos são boas escolhas. F1 pode ser influenciado pela baixa precisão, mas você deseja que isso seja capturado. É precisamente quando os modelos ingênuos (como adivinhar a classe majoritária) podem pontuar bem por algumas métricas que pontuações como F1 são relevantes.Quanto a,
4)
não há nada errado em mostrar a métrica em que você acaba otimizando.fonte
Você deve testar seu classificador em um conjunto de dados que represente o motivo pelo qual ele será usado. O melhor é geralmente a distribuição não modificada.
Durante o aprendizado, modifique o conjunto de dados de qualquer maneira que o ajude.
Para obter detalhes, consulte Devo procurar um conjunto de dados 'equilibrado' ou um conjunto de dados 'representativo'?
fonte