Conjunto de dados de teste altamente desequilibrado e dados de treinamento balanceados na classificação

9

Eu tenho um conjunto de treinamento com cerca de 3000 instâncias positivas e 3000 instâncias negativas. Mas meu conjunto de dados de teste é praticamente desequilibrado. O conjunto positivo possui apenas 50 instâncias e o negativo possui 1500 instâncias. Isso faz com que a precisão seja muito baixa. Existem abordagens para resolver este problema? Eu uso o SVM para construir o classificador.

user785099
fonte
3
Isso não deveria acontecer ..... Os dados de treinamento e de teste devem ser seleções aleatórias do mesmo conjunto de dados.
Peter Flom

Respostas:

5

Isso é chamado de configuração de Mudança de conjunto de dados. Este pdf [1] deve ajudá-lo a entender vários dos problemas subjacentes envolvidos.

No momento, no entanto, você pode usar o ajuste de importância dos mínimos quadrados para obter estimativas de importância para seus dados de treinamento usando seu conjunto de testes (você não precisa dos rótulos dos conjuntos de testes, apenas dos vetores de recursos) [2]. Depois de obter as estimativas de importância, você pode usá-las como pesos de instância no libSVM [3].

Isso deve permitir que você obtenha um classificador melhor.

[1] http://www.acad.bg/ebook/ml/The.MIT.Press.Dataset.Shift.in.Machine.Learning.Feb.2009.eBook-DDU.pdf
[2] http: // www .ms.ku-tokyo.ac.jp / software.html # uLSIF
[3] http://www.csie.ntu.edu.tw/~cjlin/libsvmtools/#weights_for_data_instances

TenaliRaman
fonte
O que aconteceria se o conjunto de treinamento estiver equilibrado, mas o conjunto de testes não estiver? Ambos deveriam ter a mesma distribuição?
Wannik 25/05
1
@wannik Se o seu treinamento e conjunto de testes são amostras aleatórias dos dados reais, eles devem ter distribuições idênticas. Quase todos os classificadores que usamos esperam que os dados tenham esse formato. No entanto, a situação que você descreve é ​​um cenário bastante comum. É difícil prever o comportamento do classificador nessa situação. Geralmente, 1] Use classificador simples, se funcionar, então ótimo, 2] Se não, você conhece a proporção da classe no teste a priori? Se sim, use a transdução SVM 3] Se não, use a mesma abordagem descrita na resposta original (pesos de importância).
TenaliRaman
1
Link atualizado para o software de estimativa de importância de Sugiyama et al. ms.ku-tokyo.ac.jp/software.html#uLSIF
AruniRC
1

Você acha que o `mundo real 'se parece mais com o conjunto de treinamento ou o conjunto de testes? Se parecer mais com o conjunto de treinamento, você poderá amostrar aleatoriamente 50 instâncias do seu conjunto de testes negativo para obter uma estimativa mais imparcial da precisão. Mas eu concordo com Peter Flom: em geral, seus conjuntos de testes e trens devem ser parecidos.

Stefan Wager
fonte