Weka unlabeled attributedoes он должен быть частью экземпляра, чтобы быть классифицированным?

Легкое и быстрое сомнение. Допустим, мой ARFF выглядит так:

@attribute outlook { sunny, overcast, rainy }
@attribute temperature numeric
@attribute humidity numeric
@attribute windy { TRUE, FALSE }
@attribute play { yes, no }

@data
sunny, 85, 85, FALSE, no
sunny, 80, 90, TRUE, no
overcast, 83, 86, FALSE, yes
rainy, 70, 96, FALSE, yes
rainy, 68, 80, FALSE, yes
......

5 атрибутов (4 без атрибута класса). Должен ли я вводить значение для класса атрибута при создании экземпляра для его классификации? Нравиться "?" или «-1» или что-то в этом роде. Это что-то меняет? Пример:

ArrayList<Double> featureVector = new ArrayList<Double>();
featureVector.add((double) 0);
featureVector.add((double) 85);
featureVector.add((double) 85);
featureVector.add((double) 1);  
//featureVector.add((double) -1); -> Class attribute

Instances instances = classification.featureVectorToInstances(featureVector);
result = classification.classifyInstanceToString(instances.firstInstance());

И функции:

общедоступные экземпляры featureVectorToInstances (ArrayList featureVector) {

Instances instances = new Instances("Instances", attributes, 0);    
DenseInstance instance = new DenseInstance(attributes.size());

for(int i = 0; i < featureVector.size(); i++)

    instance.setValue(i, featureVector.get(i));

instances.add(instance);    
//Set class attribute
instances.setClassIndex(attributes.size()-1);

return instances;

}

public String classifyInstanceToString (Instance unlabeled) выдает исключение {

double clsLabel = cModel.classifyInstance(unlabeled);
unlabeled.setClassValue(clsLabel);
return unlabeled.classAttribute().value((int)clsLabel);

}

заранее спасибо


person Rafag    schedule 08.08.2013    source источник
comment
кто угодно?? прошло больше недели, а правильного ответа все еще нет ... :(   -  person Rafag    schedule 14.08.2013


Ответы (1)


если я правильно поняла:

вы должны предоставить этикетку для поездов. Зачем: алгоритм обучения строит модель, используя обучающие данные, затем, используя модель, он классифицирует новые экземпляры, а затем оценивает свои собственные прогнозы класса, сравнивая их с исходными метками. Таким образом, без этикеток оценка производительности алгоритма невозможна.

person Alina    schedule 08.08.2013
comment
Мммм, я не знаю, хорошо ли я объяснил. Да, необходимо предоставить метки для экземпляров поезда, но я имел в виду, если необходимо предоставить каждому экземпляру, который мы хотим классифицировать, значение атрибута класса (метка, которую мы хотим узнать!). Я добавляю код в основной пост ... может быть, теперь более понятно - person Rafag; 08.08.2013