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

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

Introduction

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

Prototype

public void setSampleSizePercent(double newSampleSizePercent) 

Source Link

Document

Sets the size of the subsample, as a percentage of the original set.

Usage

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

License:Apache License

@Override
public void apply(Instances testdata, Instances traindata) {

    final int[] counts = traindata.attributeStats(traindata.classIndex()).nominalCounts;
    if (counts[1] < counts[0]) {
        Instances negatives = new Instances(traindata);
        Instances positives = new Instances(traindata);

        for (int i = traindata.size() - 1; i >= 0; i--) {
            if (Double.compare(1.0, negatives.get(i).classValue()) == 0) {
                negatives.remove(i);/*from  w w w. j a  va 2s .  co  m*/
            }
            if (Double.compare(0.0, positives.get(i).classValue()) == 0) {
                positives.remove(i);
            }
        }

        Resample resample = new Resample();
        resample.setSampleSizePercent((100.0 * counts[0]) / counts[1]);
        try {
            resample.setInputFormat(traindata);
            positives = Filter.useFilter(positives, resample);
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
        traindata.clear();
        for (int i = 0; i < negatives.size(); i++) {
            traindata.add(negatives.get(i));
        }
        for (int i = 0; i < positives.size(); i++) {
            traindata.add(positives.get(i));
        }
    }
}

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);
    resample.setBiasToUniformClass(1.0);

    Instances traindataSample;/*  w  w  w.  ja v a  2 s.c o m*/
    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  av a 2  s . c  o  m

    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;/* www  .  j  av a2  s  .  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:Helper.CustomFilter.java

public Instances resampling(Instances structure) {
    Resample filter = new Resample();
    Instances filteredIns = null;/*from w ww  .j  a  v a2  s.  c o  m*/
    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  w  w w . j  a  v  a 2  s.  com*/
        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 www.  j av a  2s .c om*/
 * @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   ww w .ja v a  2  s .  c  o m
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;
}