Treinamento e teste do AdaBoost para classificação de baixa probabilidade

7

Eu tenho um conjunto de dados que quero classificar como fraude / não fraude e tenho muitos alunos fracos. Minha preocupação é que haja muito mais fraude do que não fraude; portanto, meus alunos fracos têm desempenho melhor que a média, mas nenhum desempenho melhor que 50% no conjunto completo.

Minha pergunta é se devo configurar conjuntos de testes e treinamento que sejam metade fraude e metade não fraude ou se devo apenas usar uma amostra representativa.

Indy
fonte
11
Quantas amostras você tem de cada uma? Uma alternativa poderia ser tentar uma abordagem de detecção mais externa e testá-la com seus dados de fraude.
jpmuc
a troca de viés e variância deve estar presente nos dados de treinamento.
precisa
Você já viu esta pergunta: datascience.stackexchange.com/questions/6200/…
image_doctor
Você também pode considerar colocar uma matriz de custos em camadas sobre seu algoritmo de classificação, pois há um desequilíbrio na penalidade por cometer erros diferentes na classificação.
Image_doctor 14/07/2015
Existe um motivo específico para você querer usar o Adaboost nesse contexto?
Image_doctor 14/07/2015

Respostas:

1

É possível que a adição de dados gerados ao seu conjunto de dados diminua a proporção de fraude / não fraude e torne seu conjunto de dados mais representativo / utilizável?

Na GenieLog, estamos produzindo dados de teste para projetar e testar ferramentas de detecção de fraude. Em nosso gerador GEDIS Studio, podemos definir perfis regulares e perfis de fraudadores, instanciando cada categoria em uma proporção personalizável (por exemplo, 2% do cliente terá uso fraudulento de eventos gerados).

Fizemos isso com sucesso no uso de telecomunicações CDR ( http://www.gedis-studio.com/online-call-detail-records-cdr-generator.html ) e uso de cartão de crédito. Há um acesso disponível gratuitamente ao gerador on-line em http://www.data-generator.com

Tenho certeza de que, mesmo que a ferramenta não corresponda às suas necessidades, pelo menos a abordagem pode ser valiosa. Caso contrário, eu estaria interessado em ler qualquer objeção :)

Saudações

Jean-Lin PACHERIE
fonte
0

O conjunto de treinamento deve representar o conjunto de dados que seu aplicativo / algoritmo realmente enfrentará. Sugiro que você colete uma amostra representativa em vez de dividir o treinamento e o conjunto de testes com exatamente metade da fraude e metade da não-fraude. Mas verifique se o conjunto de treinamento contém exemplos positivos e negativos de fraude para o seu classificador ter um desempenho melhor.

Bhaskar
fonte
Isso é verdade para o seu conjunto de testes, mas não para o treinamento. A superamostragem é necessária para problemas como esses, uma vez que a grande maioria dos casos não será fraude.
David
0

Em situações em que uma classe específica é realmente uma minoria, sugiro o uso de detecção de categoria rara. Nesse caso específico de fraude / não fraude, a fraude é uma categoria rara. É um campo ativo de pesquisa - consulte Detecção de categoria rara

c0defreak
fonte
0

Eu acho que depende do seu conjunto de dados. Existem várias maneiras de lidar com conjuntos de dados desequilibrados, basta pesquisar, por exemplo, https://www.quora.com/In-classification-how-do-you-handle-an-unbalanced-training-set . Eu acho que a maneira mais simples é usar a mesma distribuição de classes nos conjuntos de trem e teste.

Se você tiver uma quantidade realmente pequena de classe minoritária, tente a classificação de uma classe .

pplonski
fonte