Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private double ComputeGiniIndex(Instances data, Attribute att) {
- Instances[] splitValue = splitData(data, att);
- int numInstances = data.numInstances();
- double gini = 0.00;
- for(int i = 0; i < splitValue.length; i++)
- if(splitValue[i].numInstances() > 0)
- gini += (double) (splitValue[i].numInstances() / numInstances) * getGINI(splitValue[i]);
- return gini;
- }
- private double getGINI(Instances data)
- {
- double numInstances = data.numInstances();
- double numClass[] = new double[data.numClasses()];
- double classData = 0.00;
- double gini = 1.00;
- for(int i = 0; i < numInstances; i++) {
- classData = data.get(i).classValue();
- try {
- numClass[(int)classData]++;
- } catch (NullPointerException ex) {
- ex.printStackTrace();
- }
- }
- for(int i = 0; i < numInstances; i++) {
- gini -= Math.pow(numClass[i] / numInstances, 2);
- }
- return gini;
- }
Add Comment
Please, Sign In to add comment