2015-10-28 2 views
1

Как я могу использовать сводную статистику (среднее значение, отклонение, ect) в командной строке Weka CLI (командной строки)?Статистика статистики Weka в CLI

Я знаю, что есть команда «AttributeStats», но как мне написать код?

Например, у меня есть данные «D: \ data.arff», как я могу найти среднее значение и дисперсию каждой переменной с использованием CLI-кодирования?

ответ

1

После долгого поиска я нашел этот код, который можно использовать в Java для поиска сводной статистики переменных в WEKA.

package weka.api; 
//import required classes 
import weka.experiment.Stats; 
import weka.core.AttributeStats; 
import weka.core.Instance; 
import weka.core.Instances; 
import weka.core.converters.ConverterUtils.DataSource; 

public class AttInst { 
    public static void main(String args[]) throws Exception{ 
     //load dataset 
     DataSource source = new DataSource("D:/y.arff"); 
     //get instances object 
     Instances data = source.getDataSet(); 
     //set class index .. as the last attribute 
     if (data.classIndex() == -1) { 
      data.setClassIndex(data.numAttributes() - 1); 
     } 
     //get number of attributes (notice class is not counted) 
     int numAttr = data.numAttributes() - 1; 
     for (int i = 0; i < numAttr; i++) { 
      //check if current attr is of type nominal 
      if (data.attribute(i).isNominal()) { 
       System.out.println("The "+i+"th Attribute is Nominal"); 
       //get number of values 
       int n = data.attribute(i).numValues(); 
       System.out.println("The "+i+"th Attribute has: "+n+" values"); 
      }   

      //get an AttributeStats object 
      AttributeStats as = data.attributeStats(i); 
      int dC = as.distinctCount; 
      System.out.println("The "+i+"th Attribute has: "+dC+" distinct values"); 

      //get a Stats object from the AttributeStats 
      if (data.attribute(i).isNumeric()){ 
       System.out.println("The "+i+"th Attribute is Numeric"); 
       Stats s = as.numericStats; 
       System.out.println("The "+i+"th Attribute has min value: "+s.min+" and max value: "+s.max+" and mean value: "+s.mean+" and stdDev value: "+s.stdDev); 
      } 

    } 


    } 
} 
Смежные вопросы