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.
machine-learning
classification
data-mining
svm
user785099
fonte
fonte
Respostas:
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
fonte
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.
fonte