¿Cómo usar SMOTE en Java Weka API?

8

Estoy tratando de construir un modelo de clasificación usando la API Java Weka. Mi conjunto de datos de entrenamiento tiene problemas de desequilibrio de clase. Por esta razón, quiero usar SMOTE para reducir el problema de desequilibrio de clase. Pero, no sé cómo usarlo en la API Java Weka.

Sagor Ali
fuente

Respuestas:

8

Bienvenido a la comunidad.

Puedes usar el siguiente 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
fuente
Gracias por su apoyo. Estoy tratando de aplicar tu código.
Sagor Ali el
Me alegra oír eso.
Rejaul Karim