Como usar o SMOTE na API Java Weka?

8

Estou tentando criar um modelo de classificação usando a API Java Weka. Meu conjunto de dados de treinamento tem problemas de desequilíbrio de classe. Por esse motivo, quero usar o SMOTE para reduzir o problema de desequilíbrio de classe. Mas não sei como usá-lo na API Java Weka.

Sagor Ali
fonte

Respostas:

8

Bem-vindo à comunidade.

Você pode usar o seguinte código:

import weka.filters.supervised.instance.SMOTE;
import weka.core.Instances;
import weka.core.converters.ConverterUtils.DataSource;
import weka.filters.Filter;

Instances data = DataSource.read(".../file.arff"); //Dataset 

SMOTE smote=new SMOTE();  //create object of SMOTE
smote.setInputFormat(data);
Instances data_smote = Filter.useFilter(data, smote); //Apply SMOTE on Dataset
Rejaul Karim
fonte
Obrigado por seu apoio. Estou tentando aplicar seu código.
Sagor Ali
Fico satisfeito por ouvir isso.
Rejaul Karim