Example usage for weka.core Instances deleteAttributeAt

List of usage examples for weka.core Instances deleteAttributeAt

Introduction

In this page you can find the example usage for weka.core Instances deleteAttributeAt.

Prototype



public void deleteAttributeAt(int position) 

Source Link

Document

Deletes an attribute at the given position (0 to numAttributes() - 1).

Usage

From source file:PreparingSteps.java

public double getSourceFitnessValue(int foldnumber, int N, Debug.Random rand, Instances data,
        double[] food_source, Evaluation eval, Classifier classifier) {
    double fitness = 0;
    int girildi = 0;
    Instances data1 = data;

    for (int j = 0; j < N - 1; j++) {
        if (food_source[j] == 0) {
            data1.deleteAttributeAt(j - girildi);
            girildi += 1;//w  ww . jav a  2 s  . c  o m
        }

    }

    try {
        eval.crossValidateModel(classifier, data1, foldnumber, rand);
        fitness = eval.weightedFMeasure();
    } catch (Exception ex) {
        ex.printStackTrace();
    }

    return fitness;
}

From source file:PreparingSteps.java

public Instances deleteattributefromData(Instances data, double[] food_source) {
    int girildi = 0;
    int N = data.numAttributes();

    for (int j = 0; j < food_source.length; j++) {
        if (food_source[j] == 0) {
            data.deleteAttributeAt(j - girildi);
            girildi += 1;//from www. j a v  a  2s  . c om
        }
    }
    return data;
}

From source file:LabeledItemSet.java

License:Open Source License

/**
 * Splits the class attribute away. Depending on the invert flag, the instances without class attribute or only the class attribute of all instances is returned
 * @param instances the instances//from   w  w  w  . ja v a 2s .  c o m
 * @param invert flag; if true only the class attribute remains, otherweise the class attribute is the only attribute that is deleted.
 * @throws Exception exception if instances cannot be splitted
 * @return Instances without the class attribute or instances with only the class attribute
 */
public static Instances divide(Instances instances, boolean invert) throws Exception {

    Instances newInstances = new Instances(instances);
    if (instances.classIndex() < 0)
        throw new Exception("For class association rule mining a class attribute has to be specified.");
    if (invert) {
        for (int i = 0; i < newInstances.numAttributes(); i++) {
            if (i != newInstances.classIndex()) {
                newInstances.deleteAttributeAt(i);
                i--;
            }
        }
        return newInstances;
    } else {
        newInstances.setClassIndex(-1);
        newInstances.deleteAttributeAt(instances.classIndex());
        return newInstances;
    }
}

From source file:adams.ml.data.InstancesView.java

License:Open Source License

/**
 * Returns a spreadsheet containing only the input columns, not class
 * columns./* www  . j  av a 2  s .co  m*/
 *
 * @return      the input features, null if data conists only of class columns
 */
@Override
public SpreadSheet getInputs() {
    Instances data;

    if (m_Data.classIndex() == -1)
        return this;

    data = new Instances(m_Data);
    data.setClassIndex(-1);
    data.deleteAttributeAt(m_Data.classIndex());

    return new InstancesView(data);
}

From source file:au.edu.usyd.it.yangpy.snp.ParallelGenetic.java

License:Open Source License

/**
 * constrain data set with a given SNP subset
 * //from  w  w w.ja v a2  s .  c o  m
 * @param cId   chromosome Id
 * @param train   training instances
 * @param test   test instances
 */
public double computeFitess(int cId) throws Exception {

    Instances cTrain = new Instances(cvTrain);
    Instances cTest = new Instances(cvTest);

    int len = 0;
    for (int i = 0; i < chro[cId].length; i++) {
        if (chro[cId][i] != -1) {
            len++;
        }
    }

    int[] deleteList = new int[data.numAttributes() - 1 - len];

    int delId = 0;
    for (int i = 0; i < data.numAttributes() - 1; i++) {

        boolean testContain = false;

        for (int j = 0; j < chro[cId].length; j++) {
            if (i == chro[cId][j]) {
                testContain = true;
            }
        }

        if (testContain == false) {
            deleteList[delId] = i;
            delId++;
        }
    }

    Arrays.sort(deleteList);
    // reverse the array 
    for (int i = 0; i < deleteList.length / 2; ++i) {
        int temp = deleteList[i];
        deleteList[i] = deleteList[deleteList.length - i - 1];
        deleteList[deleteList.length - i - 1] = temp;
    }

    for (int i = 0; i < deleteList.length; i++) {
        cTrain.deleteAttributeAt(deleteList[i]);
        cTest.deleteAttributeAt(deleteList[i]);
    }

    ////////////////////////////////////////////
    // compute fitness
    double fitness = 0.0;

    //boolean useDiversity = false;

    if (mode.equals("v")) {
        System.out.println("---------------------------------------------");
        System.out.println(" subset " + (cId + 1) + ":");
        System.out.println();
    }

    Ensemble classifier = new Ensemble(cTrain, cTest);
    classifier.ensemble(mode);
    double blockScore = classifier.blocking();
    double voteScore = classifier.voting();
    double diversityScore = 0.0;

    if (currGener < (terGener - (terGener / 5))) {
        if (diversity.equals("K")) {
            diversityScore = classifier.kappaDiversity();
        } else {
            diversityScore = classifier.doubleFaultDiversity();
        }
    }

    blockScore = Math.round(blockScore * 10000.0) / 10000.0;
    voteScore = Math.round(voteScore * 10000.0) / 10000.0;

    if (diversityScore != 0.0) {
        diversityScore = Math.round(diversityScore * 10000.0) / 10000.0;
        fitness = blockScore * 0.45 + voteScore * 0.45 + diversityScore * 0.1;
    } else {
        fitness = blockScore * 0.5 + voteScore * 0.5;
    }

    // average accuracy of five classifiers.
    if (mode.equals("v")) {
        System.out.println("block (average) AUC: " + blockScore);
        System.out.println("majority voting AUC: " + voteScore);

        if (diversityScore != 0.0) {
            if (diversity.equals("K")) {
                System.out.println("kappa diversity: " + diversityScore);
            } else {
                System.out.println("double fault diversity: " + diversityScore);
            }
        }
    }

    avgFitness += fitness;
    return fitness;

}

From source file:cezeri.feature.selection.FeatureSelectionInfluence.java

public static Influence[] getMostDiscriminativeFeature(String filePath, Classifier model) {
    Influence[] ret = null;/*from   w ww.j  ava 2s. c  o m*/
    try {
        Instances data = DataSource.read(filePath);
        ret = new Influence[data.numAttributes() - 1];
        data.setClassIndex(data.numAttributes() - 1);
        // other options
        int seed = 1;
        int folds = 10;
        // randomize data
        Instances randData = new Instances(data);
        Random rand = new Random(seed);
        randData.randomize(rand);
        Evaluation evalBase = getEvaluation(randData, model, folds);
        double accBase = evalBase.correct() / evalBase.numInstances() * 100;
        double nf = randData.numAttributes();

        for (int j = 0; j < nf - 1; j++) {
            ret[j] = new Influence();
            String str = randData.attribute(j).name();
            Attribute att = randData.attribute(j);
            randData.deleteAttributeAt(j);
            Evaluation evalTemp = getEvaluation(randData, model, folds);
            double accTemp = evalTemp.correct() / evalTemp.numInstances() * 100;
            double tempInfluence = accBase - accTemp;
            ret[j].attributeName = str;
            ret[j].infVal = tempInfluence;
            randData.insertAttributeAt(att, j);
        }
        sortInfluenceArray(ret);
    } catch (Exception ex) {
        Logger.getLogger(FeatureSelectionInfluence.class.getName()).log(Level.SEVERE, null, ex);
    }
    return ret;
}

From source file:cezeri.utils.FactoryInstance.java

public static Instances getSubsetData(Instances data, String[] attList) {
    Instances temp = new Instances(data);
    for (int i = 0; i < data.numAttributes(); i++) {
        if (!temp.attribute(0).equals(temp.classAttribute())) {
            temp.deleteAttributeAt(0);
        }/*  w  ww  .  j  a v  a 2 s  . c  o m*/
    }
    double[][] m = new double[attList.length + 1][data.numInstances()];
    for (int i = 0; i < attList.length; i++) {
        int n = attList.length - 1 - i;
        String str = attList[n];
        Attribute t = data.attribute(str);
        double[] d = data.attributeToDoubleArray(t.index());
        m[n] = d;
        temp.insertAttributeAt(t, 0);
    }
    m[attList.length] = data.attributeToDoubleArray(data.classIndex());
    m = CMatrix.getInstance(m).transpose().get2DArrayDouble();

    FastVector att = new FastVector();
    for (int i = 0; i < temp.numAttributes(); i++) {
        att.addElement(temp.attribute(i));
    }
    Instances ret = new Instances(temp.relationName(), att, m.length);
    for (int i = 0; i < m.length; i++) {
        Instance ins = new Instance(m[0].length);
        for (int j = 0; j < m[0].length; j++) {
            ins.setValue(j, m[i][j]);
        }
        ret.add(ins);
    }
    ret.setClassIndex(temp.classIndex());

    return ret;
}

From source file:ChiSquare.Chi.java

public double[] PValues(Instances d) throws Exception {
    Instances data = new Instances(d);
    data.deleteAttributeAt(0);
    double[] pValues = new double[data.numAttributes() - 1];
    double[] chiValues = ChiValues(d);
    for (int i = 0; i < pValues.length; i++) {
        pValues[i] = pochisq(chiValues[i], data.numInstances() - 1);
    }/*from w  w  w .ja  v a 2 s  . c  o  m*/
    return pValues;
}

From source file:classify.Classifier.java

public static void setAttributeValues(Instances data) {
    Instance example;//from  ww  w .  j a  va  2s .  com
    String[][] savedData = new String[data.numInstances()][10];
    for (int i = 0; i < data.numInstances(); i++) {
        example = data.instance(i);
        savedData[i][0] = example.stringValue(0);
        savedData[i][1] = example.stringValue(3);
        savedData[i][2] = example.stringValue(4);
        savedData[i][3] = example.stringValue(5);
        savedData[i][4] = example.stringValue(6);
        savedData[i][5] = example.stringValue(8);
        savedData[i][6] = example.stringValue(9);
        savedData[i][7] = example.stringValue(11);
        savedData[i][8] = example.stringValue(12);
        savedData[i][9] = example.stringValue(15);
    }

    //add in values for discrete attributes
    //A1
    FastVector attVals = new FastVector();
    attVals.addElement("b");
    attVals.addElement("a");
    data.deleteAttributeAt(0);
    data.insertAttributeAt(new Attribute("A1", attVals), 0);

    //A4
    attVals = new FastVector();
    attVals.addElement("u");
    attVals.addElement("y");
    attVals.addElement("l");
    attVals.addElement("t");
    data.deleteAttributeAt(3);
    data.insertAttributeAt(new Attribute("A4", attVals), 3);

    //A5
    attVals = new FastVector();
    attVals.addElement("g");
    attVals.addElement("p");
    attVals.addElement("gg");
    data.deleteAttributeAt(4);
    data.insertAttributeAt(new Attribute("A5", attVals), 4);

    //A6
    attVals = new FastVector();
    attVals.addElement("c");
    attVals.addElement("d");
    attVals.addElement("cc");
    attVals.addElement("i");
    attVals.addElement("j");
    attVals.addElement("k");
    attVals.addElement("m");
    attVals.addElement("r");
    attVals.addElement("q");
    attVals.addElement("w");
    attVals.addElement("x");
    attVals.addElement("e");
    attVals.addElement("aa");
    attVals.addElement("ff");
    data.deleteAttributeAt(5);
    data.insertAttributeAt(new Attribute("A6", attVals), 5);

    //A7
    attVals = new FastVector();
    attVals.addElement("v");
    attVals.addElement("h");
    attVals.addElement("bb");
    attVals.addElement("j");
    attVals.addElement("n");
    attVals.addElement("z");
    attVals.addElement("dd");
    attVals.addElement("ff");
    attVals.addElement("o");
    data.deleteAttributeAt(6);
    data.insertAttributeAt(new Attribute("A7", attVals), 6);

    //A9
    attVals = new FastVector();
    attVals.addElement("t");
    attVals.addElement("f");
    data.deleteAttributeAt(8);
    data.insertAttributeAt(new Attribute("A9", attVals), 8);

    //A10
    attVals = new FastVector();
    attVals.addElement("t");
    attVals.addElement("f");
    data.deleteAttributeAt(9);
    data.insertAttributeAt(new Attribute("A10", attVals), 9);

    //A12
    attVals = new FastVector();
    attVals.addElement("t");
    attVals.addElement("f");
    data.deleteAttributeAt(11);
    data.insertAttributeAt(new Attribute("A12", attVals), 11);

    //A13
    attVals = new FastVector();
    attVals.addElement("g");
    attVals.addElement("p");
    attVals.addElement("s");
    data.deleteAttributeAt(12);
    data.insertAttributeAt(new Attribute("A13", attVals), 12);

    //Class
    attVals = new FastVector();
    attVals.addElement("+");
    attVals.addElement("-");
    data.deleteAttributeAt(15);
    data.insertAttributeAt(new Attribute("C", attVals), 15);

    for (int i = 0; i < data.numInstances(); i++) {

        if (!"?".equals(savedData[i][0])) {
            data.instance(i).setValue(0, savedData[i][0]);
        }

        if (!"?".equals(savedData[i][1])) {
            data.instance(i).setValue(3, savedData[i][1]);
        }

        if (!"?".equals(savedData[i][2])) {
            data.instance(i).setValue(4, savedData[i][2]);
        }

        if (!"?".equals(savedData[i][3])) {
            data.instance(i).setValue(5, savedData[i][3]);
        }

        if (!"?".equals(savedData[i][4])) {
            data.instance(i).setValue(6, savedData[i][4]);
        }

        if (!"?".equals(savedData[i][5])) {
            data.instance(i).setValue(8, savedData[i][5]);
        }

        if (!"?".equals(savedData[i][6])) {
            data.instance(i).setValue(9, savedData[i][6]);
        }

        if (!"?".equals(savedData[i][7])) {
            data.instance(i).setValue(11, savedData[i][7]);
        }

        if (!"?".equals(savedData[i][8])) {
            data.instance(i).setValue(12, savedData[i][8]);
        }

        if (!"?".equals(savedData[i][9])) {
            data.instance(i).setValue(15, savedData[i][9]);
        }
    }
}

From source file:cn.ict.zyq.bestConf.bestConf.BestConf.java

License:Open Source License

public static ArrayList<String> preprocessInstances(Instances retval) {
    double[][] cMatrix;
    ArrayList<String> result = new ArrayList<String>();
    ArrayList<String> deleteAttNames = new ArrayList<String>();
    PrincipalComponents pc = new PrincipalComponents();
    HashMap<Integer, ArrayList<Integer>> filter = new HashMap<Integer, ArrayList<Integer>>();
    try {/* w  ww  . j  a va2s . c  o  m*/
        pc.buildEvaluator(retval);
        cMatrix = pc.getCorrelationMatrix();
        for (int i = 0; i < cMatrix.length; i++) {
            ArrayList<Integer> record = new ArrayList<Integer>();
            for (int j = i + 1; j < cMatrix.length; j++)
                if (cMatrix[i][j] >= correlationFactorThreshold
                        || cMatrix[i][j] <= -correlationFactorThreshold) {
                    record.add(j);
                }
            if (record.size() != 0) {
                filter.put(i, record);
            }
        }
        Iterator<Map.Entry<Integer, ArrayList<Integer>>> iter = filter.entrySet().iterator();
        while (iter.hasNext()) {
            Map.Entry<Integer, ArrayList<Integer>> entry = iter.next();
            ArrayList<Integer> arr = entry.getValue();
            for (int i = 0; i < arr.size(); i++)
                if (arr.get(i) != cMatrix.length - 1
                        && !deleteAttNames.contains(retval.attribute(arr.get(i)).name())) {
                    deleteAttNames.add(retval.attribute(arr.get(i)).name());
                }
            if (arr.contains(cMatrix.length - 1)) {
                result.add(retval.attribute(Integer.parseInt(entry.getKey().toString())).name());
            }
        }
        for (int i = 0; i < deleteAttNames.size(); i++) {
            retval.deleteAttributeAt(retval.attribute(deleteAttNames.get(i)).index());
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
    return result;
}