List of usage examples for weka.core Instance value
public double value(Attribute att);
From source file:myID3.MyId3.java
/** * Classifies a given test instance using the decision tree. * * @param instance the instance to be classified * @return the classification// ww w . j a v a 2 s . co m * @throws NoSupportForMissingValuesException if instance has missing values */ public double classifyInstance(Instance instance) throws NoSupportForMissingValuesException { if (instance.hasMissingValue()) { throw new NoSupportForMissingValuesException("Id3: no missing values, " + "please."); } if (currentAttribute == null) { return classValue; } else { return nodes[(int) instance.value(currentAttribute)].classifyInstance(instance); } }
From source file:myID3.MyId3.java
/** * Computes class distribution for instance using decision tree. * * @param instance the instance for which distribution is to be computed * @return the class distribution for the given instance * @throws NoSupportForMissingValuesException if instance has missing values *//* w w w .j a v a2 s . c o m*/ public double[] distributionForInstance(Instance instance) throws NoSupportForMissingValuesException { if (instance.hasMissingValue()) { throw new NoSupportForMissingValuesException("Id3: no missing values, " + "please."); } if (currentAttribute == null) { return classDistribution; } else { return nodes[(int) instance.value(currentAttribute)].distributionForInstance(instance); } }
From source file:myid3andc45classifier.Model.MyC45.java
@Override public double classifyInstance(Instance instance) { int i = 0;/*from ww w . j av a 2 s .com*/ if (attribute == null) { return label; } else { boolean numeric = false; for (int j = 0; j < instance.numAttributes(); j++) { if (instance.attribute(j).isNumeric()) { if (instance.attribute(j).name().equalsIgnoreCase(attribute.name().split(" ")[0])) { numeric = true; break; } i++; } } if (numeric) { double threshold = Double.parseDouble(attribute.name().split(" ")[1]); //System.out.println("WOWW!!! " + attribute.name() + " threshold is " + threshold); double val = (double) instance.value(i); if (val <= threshold) { return successors[(int) attribute.indexOfValue("<=" + threshold)].classifyInstance(instance); //instance.setValue(attribute, "<="+threshold); } else { return successors[(int) attribute.indexOfValue(">" + threshold)].classifyInstance(instance); //instance.setValue(attribute, ">"+threshold); } } return successors[(int) instance.value(attribute)].classifyInstance(instance); } }
From source file:myid3andc45classifier.Model.MyC45.java
public Instances[] splitInstancesByAttribute(Instances data, Attribute attr) throws Exception { //Split data menjadi beberapa instances sesuai dengan jumlah jenis data pada atribut Instances[] splitData = new Instances[attr.numValues()]; for (int i = 0; i < attr.numValues(); i++) { splitData[i] = new Instances(data, data.numInstances()); }//from ww w .j a v a 2s . c om Enumeration instanceEnum = data.enumerateInstances(); while (instanceEnum.hasMoreElements()) { Instance inst = (Instance) instanceEnum.nextElement(); splitData[(int) inst.value(attr)].add(inst); } for (int i = 0; i < splitData.length; i++) { splitData[i].compactify(); } return splitData; }
From source file:myid3andc45classifier.Model.MyID3.java
@Override public double classifyInstance(Instance instance) throws NoSupportForMissingValuesException { //Periksa apakah instance memiliki missing value if (instance.hasMissingValue()) { throw new NoSupportForMissingValuesException("MyID3: no missing values, please"); }/*from ww w .j a va 2 s . c om*/ if (attribute == null) { return label; } else { return successors[(int) instance.value(attribute)].classifyInstance(instance); } }
From source file:myJ48.MyJ48.java
/** * Computes class distribution for instance using decision tree. * * @param instance the instance for which distribution is to be computed * @return the class distribution for the given instance * @throws NoSupportForMissingValuesException if instance has missing values *///from w w w .j a v a 2 s . c o m public double[] distributionForInstance(Instance instance) throws NoSupportForMissingValuesException { if (instance.hasMissingValue()) { throw new NoSupportForMissingValuesException("Missing value error"); } if (currentAttribute == null) { return classDistribution; } else { return nodes[(int) instance.value(currentAttribute)].distributionForInstance(instance); } }
From source file:NaiveBayes.NaiveBayes.java
@Override public double classifyInstance(Instance last) { double prob[] = new double[last.classAttribute().numValues()]; for (int classIndex = 0; classIndex < last.attribute(last.classIndex()).numValues(); classIndex++) {//classifikasi double temp = 1; int i = 0; for (Atribut attr : getList()) { if (i == last.classIndex()) i++;//w w w . j a v a 2 s . co m //System.out.println(attr.getName()+"="+last.attribute(i).name()); temp *= attr.getFrekuensiNilai(last.attribute(last.classIndex()).value(classIndex), last.toString(i), last.value(i), last.attribute(i).isNumeric()) / numEachClass[classIndex]; i++; } double res; res = numEachClass[classIndex] / last.numAttributes() * temp; prob[classIndex] = res; } return maxIndex(prob); }
From source file:NaiveBayes.NaiveBayes13514004.java
@Override public void buildClassifier(Instances i) { //Algoritma/* w w w. j a va 2 s.com*/ origin = new Instances(i); //Menghitung jumlah attribute dan kelas numAtt = i.numAttributes() - 1; numClass = i.numClasses(); //Inisialisasi matrix 3 dimensi data = new int[numAtt][numClass][0]; prob = new double[numAtt][numClass][0]; kelasdata = new int[numClass]; kelasprob = new double[numClass]; Enumeration<Instance> enu1 = i.enumerateInstances(); while (enu1.hasMoreElements()) { Instance ins = enu1.nextElement(); Enumeration<Attribute> enu_t = i.enumerateAttributes(); int x = 0; while (enu_t.hasMoreElements()) { Attribute att = enu_t.nextElement(); numDis = att.numValues(); data[x][(int) ins.classValue()] = new int[numDis]; prob[x][(int) ins.classValue()] = new double[numDis]; x++; } } //Mengisi matriks Frekuensi Enumeration<Instance> enu2 = i.enumerateInstances(); while (enu2.hasMoreElements()) { Instance ins = enu2.nextElement(); Enumeration<Attribute> enu_t = i.enumerateAttributes(); int x = 0; while (enu_t.hasMoreElements()) { Attribute att = enu_t.nextElement(); data[x][(int) ins.classValue()][(int) ins.value(att)]++; x++; } kelasdata[(int) ins.classValue()]++; } //Menghitung probabilitas kelas double numInstances = (double) i.numInstances(); for (int y = 0; y < numClass; y++) { kelasprob[y] = (double) kelasdata[y] / numInstances; } //Mengisi matriks probabilitas Enumeration<Instance> enu3 = i.enumerateInstances(); while (enu3.hasMoreElements()) { Instance ins = enu3.nextElement(); Enumeration<Attribute> enu_t = i.enumerateAttributes(); int x = 0; while (enu_t.hasMoreElements()) { Attribute att = enu_t.nextElement(); int sumDis = Utils.sum(data[x][(int) ins.classValue()]); numDis = att.numValues(); for (int z = 0; z < numDis; z++) { int y = (int) ins.classValue(); prob[x][y][z] = ((double) data[x][y][z] / (double) sumDis); } x++; } } }
From source file:NaiveBayes.NaiveBayes13514004.java
@Override public double[] distributionForInstance(Instance instnc) throws Exception { Attribute ins;//from w w w . j a v a 2 s . c o m double[] result = new double[numClass]; //Algoritma //Menghitung probabilitas for (int j = 0; j < numClass; j++) { result[j] = kelasprob[j]; Enumeration<Attribute> e2 = instnc.enumerateAttributes(); int i = 0; while (e2.hasMoreElements()) { ins = e2.nextElement(); result[j] = result[j] * prob[i][j][(int) instnc.value(ins)]; i++; } } return result; }
From source file:net.sf.bddbddb.order.MyId3.java
License:LGPL
/** * Classifies a given test instance using the decision tree. * //from ww w .j a v a 2 s .c om * @param instance * the instance to be classified * @return the classification */ public double classifyInstance(Instance instance) { if (m_Attribute == null) { return m_ClassValue; } else if (instance.isMissing(m_Attribute)) { try { // Use superclass implementation, which uses distributionForInstance. return super.classifyInstance(instance); } catch (Exception x) { x.printStackTrace(); Assert.UNREACHABLE(); return 0.; } } else { return m_Successors[(int) instance.value(m_Attribute)].classifyInstance(instance); } }