List of usage examples for weka.core Instances deleteAttributeAt
public void deleteAttributeAt(int position)
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; }