Example usage for weka.filters.supervised.instance Resample setBiasToUniformClass

List of usage examples for weka.filters.supervised.instance Resample setBiasToUniformClass

Introduction

In this page you can find the example usage for weka.filters.supervised.instance Resample setBiasToUniformClass.

Prototype

public void setBiasToUniformClass(double newBiasToUniformClass) 

Source Link

Document

Sets the bias towards a uniform class.

Usage

From source file:de.ugoe.cs.cpdp.dataprocessing.Resampling.java

License:Apache License

@Override
public void apply(Instances testdata, Instances traindata) {
    Resample resample = new Resample();
    resample.setSampleSizePercent(100);//from   w  w  w . j av  a  2  s  .com
    resample.setBiasToUniformClass(1.0);

    Instances traindataSample;
    try {
        resample.setInputFormat(traindata);
        traindataSample = Filter.useFilter(traindata, resample);
    } catch (Exception e) {
        throw new RuntimeException(e);
    }
    traindata.clear();
    for (int i = 0; i < traindataSample.size(); i++) {
        traindata.add(traindataSample.get(i));
    }
}

From source file:de.ugoe.cs.cpdp.dataselection.LACE2.java

License:Apache License

@Override
public void apply(Instances testdata, SetUniqueList<Instances> traindataSet) {
    Instances selectedData = new Instances(testdata);
    selectedData.clear();/*from   w w w.j  a  va 2s  . com*/

    LinkedList<Instances> traindataCopy = new LinkedList<>(traindataSet);
    Collections.shuffle(traindataCopy);

    CLIFF cliff = new CLIFF();
    cliff.setParameter(Double.toString(percentage));
    MORPH morph = new MORPH();
    Median median = new Median();
    double minDist = Double.MIN_VALUE;

    for (Instances traindata : traindataCopy) {
        Instances cliffedData = cliff.applyCLIFF(traindata);
        if (minDist == Double.MIN_VALUE) {
            // determine distance for leader-follower algorithm
            Instances sample;
            if (traindata.size() > 100) {
                Resample resample = new Resample();
                resample.setSampleSizePercent(100.0 / traindata.size() * 100.0);
                resample.setBiasToUniformClass(0.0);
                resample.setNoReplacement(true);
                try {
                    resample.setInputFormat(traindata);
                    sample = Filter.useFilter(traindata, resample);
                } catch (Exception e) {
                    throw new RuntimeException(e);
                }
            } else {
                sample = new Instances(traindata);
            }
            double[] distances = new double[sample.size()];
            for (int i = 0; i < sample.size(); i++) {
                Instance unlikeNeighbor = morph.getNearestUnlikeNeighbor(sample.get(i), sample);
                distances[i] = MathArrays.distance(WekaUtils.instanceValues(sample.get(i)),
                        WekaUtils.instanceValues(unlikeNeighbor));
            }
            minDist = median.evaluate(distances);
        }
        for (int i = 0; i < cliffedData.size(); i++) {
            Instance unlikeNeighbor = morph.getNearestUnlikeNeighbor(cliffedData.get(i), selectedData);
            if (unlikeNeighbor == null) {
                selectedData.add(cliffedData.get(i));
            } else {
                double distance = MathArrays.distance(WekaUtils.instanceValues(cliffedData.get(i)),
                        WekaUtils.instanceValues(unlikeNeighbor));
                if (distance > minDist) {
                    morph.morphInstance(cliffedData.get(i), cliffedData);
                    selectedData.add(cliffedData.get(i));
                }
            }
        }
    }
}

From source file:function.FilterResample.java

public static Instances filterResample(Instances inst) {
    Resample filter = new Resample();
    Instances instResample = null;//from www .j a va2s.c o m
    filter.setBiasToUniformClass(1.0);
    try {
        filter.setInputFormat(inst);
        filter.setNoReplacement(false);
        filter.setSampleSizePercent(100);
        instResample = Filter.useFilter(inst, filter);
    } catch (Exception e) {
        System.out.println("Error when resampling input data!");
        e.printStackTrace();
    }

    return instResample;
}

From source file:gyc.SMOTEBagging.java

License:Open Source License

/**
 * /*  w  ww. ja  v a  2  s.c  om*/
 * 100%majminSMOTE (k, a).
 * @param data
 * @param i
 * @return
 */
protected Instances randomSampling(Instances copia, int majC, int minC, int a, Random simplingRandom) {
    int[] majExamples = new int[copia.numInstances()];
    int[] minExamples = new int[copia.numInstances()];
    int majCount = 0, minCount = 0;
    // First, we copy the examples from the minority class and save the indexes of the majority
    // resample min at rate (Nmaj/Nmin)*a%
    int size = copia.attributeStats(copia.classIndex()).nominalCounts[majC] * a / 100;
    // class name
    String majClassName = copia.attribute(copia.classIndex()).value(majC);

    for (int i = 0; i < copia.numInstances(); i++) {
        if (copia.instance(i).stringValue(copia.classIndex()).equalsIgnoreCase(majClassName)) {
            // save index
            majExamples[majCount] = i;
            majCount++;
        } else {
            minExamples[minCount] = i;
            minCount++;
        }
    }

    /* random undersampling of the majority */
    Instances myDataset = new Instances(copia, 0);
    int r;
    //100%majC
    for (int i = 0; i < majCount; i++) {
        myDataset.add(copia.instance(majExamples[i]));
    }
    if (minCount == 0)
        return myDataset;
    //(Nmaj/Nmin)*a% minC
    for (int i = 0; i < size; i++) {
        r = simplingRandom.nextInt(minCount);
        myDataset.add(copia.instance(minExamples[r]));
    }
    myDataset.randomize(simplingRandom);

    if (size == 1) {
        try {
            //neighbor
            Resample filter = new Resample();
            filter.setInputFormat(myDataset);
            filter.setBiasToUniformClass(1.0);
            filter.setRandomSeed(simplingRandom.nextInt());
            myDataset = Filter.useFilter(myDataset, filter);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
    if (size > 1) {
        try {
            SMOTE filter = new SMOTE();
            filter.setInputFormat(myDataset); // filter capabilities are checked here
            //data.
            double value = 100.0 * majCount / size - 100;
            //Percentage
            filter.setPercentage(value);
            //if (nMin<5) filter.setNearestNeighbors(nMin);
            filter.setRandomSeed(simplingRandom.nextInt());
            //filterSMOTESMOTE
            myDataset = Filter.useFilter(myDataset, filter);
            //t.stop();
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

    return myDataset;
}

From source file:Helper.CustomFilter.java

public Instances resampling(Instances structure) {
    Resample filter = new Resample();
    Instances filteredIns = null;/*from   w  w  w .  jav  a2s.  c  om*/
    filter.setBiasToUniformClass(1.0);
    try {
        filter.setInputFormat(structure);
        filter.setNoReplacement(false);
        filter.setSampleSizePercent(100);
        filteredIns = Filter.useFilter(structure, filter);
    } catch (Exception e) {
        e.printStackTrace();
    }
    return filteredIns;
}

From source file:meansagnes.MeansAgnes.java

public void resample(double b, double z, int seed) {
    try {//from  ww  w .j  a  v  a2  s. c o  m
        System.out.println(data.toString() + "\n");
        Resample resampleFilter = new Resample();

        resampleFilter.setInputFormat(data);
        resampleFilter.setNoReplacement(false);
        resampleFilter.setBiasToUniformClass(b); // Uniform distribution of class
        resampleFilter.setSampleSizePercent(z);
        resampleFilter.setRandomSeed(seed);

        data = Filter.useFilter(data, resampleFilter);

        /*Random R = new Random();
        data.resample(R);*/
        System.out.println("HASIL RESAMPLE\n\n");
        System.out.println(data.toString() + "\n");
    } catch (Exception ex) {
        Logger.getLogger(MeansAgnes.class.getName()).log(Level.SEVERE, null, ex);
    }
}

From source file:trainableSegmentation.WekaSegmentation.java

License:GNU General Public License

/**
 * Homogenize number of instances per class
 *
 * @param data input set of instances/*from  ww w.jav a 2  s  .c  o  m*/
 * @return resampled set of instances
 */
public static Instances homogenizeTrainingData(Instances data) {
    final Resample filter = new Resample();
    Instances filteredIns = null;
    filter.setBiasToUniformClass(1.0);
    try {
        filter.setInputFormat(data);
        filter.setNoReplacement(false);
        filter.setSampleSizePercent(100);
        filteredIns = Filter.useFilter(data, filter);
    } catch (Exception e) {
        IJ.log("Error when resampling input data!");
        e.printStackTrace();
    }
    return filteredIns;

}

From source file:trainableSegmentation.WekaSegmentation.java

License:GNU General Public License

/**
 * Homogenize number of instances per class (in the loaded training data)
 *//*from  w w  w.j a  v  a  2  s .  com*/
public void homogenizeTrainingData() {
    final Resample filter = new Resample();
    Instances filteredIns = null;
    filter.setBiasToUniformClass(1.0);
    try {
        filter.setInputFormat(this.loadedTrainingData);
        filter.setNoReplacement(false);
        filter.setSampleSizePercent(100);
        filteredIns = Filter.useFilter(this.loadedTrainingData, filter);
    } catch (Exception e) {
        IJ.log("Error when resampling input data!");
        e.printStackTrace();
    }
    this.loadedTrainingData = filteredIns;
}