2017-01-03 2 views
0

Предположим, что данные диафрагмы имеют 3 уникальных значения класса.Weka: Как найти distince значения атрибута?

@ATTRIBUTE class {Iris-setosa,Iris-versicolor,Iris-virginica} 

Как я могу получить эти значения с помощью API Weka? Ближайший я смог найти numDistinctValues ​​(), который я в настоящее время используют в качестве

System.out.println(data.numDistinctValues(data.numAttributes()-1)); 

Однако, это только дает отчетливое число классов, то есть 3. Я хочу, чтобы получить фактические значения, т.е. класса меток «Ирис setosa, Iris-лишай, Iris-virginica».

Мы можем найти различные значения классов с помощью экземпляров(), извлекая все метки классов, соответствующие каждому экземпляру, а затем найдем для них уникальные значения. Есть ли прямой способ извлечь эту информацию непосредственно из описания набора данных в формате ARFF?

ответ

2

я нашел простое решение

for (int i=0;i<data.classAttribute().numValues();i++) { 
     System.out.println(data.classAttribute().value(i)); 
    } 

В основном, мы находим количество значений в атрибуте класса, а затем итерацию по этому номеру, чтобы найти соответствующие значения, используя значение() метод.

0

Для числовых атрибутов, вы можете использовать этот код, чтобы получить диапазон ваших данных:

AttributeStats as = instances.attributeStats(index); 
double min = as.numericStats.min; 
double max = as.numericStats.max; 
Смежные вопросы