2013-07-16 15 views
7

Я пытаюсь проверить свою модель с новым набором данных. Я сделал тот же шаг предварительной обработки, что и для построения моей модели. Я сравнил два файла, но проблем нет. У меня есть все атрибуты (train vs test dataset) в том же порядке, одинаковые имена атрибутов и типы данных. Но все же я не могу решить проблему. Оба файла тренируются и тестируются, похоже, похожи, но исследователь weka дает мне ошибку, говоря, что Train и тестовый набор несовместимы. Как разрешить эту ошибку? Есть ли способ сделать файл test.arff в качестве train.arff? Пожалуйста, помогите мне.Поезд и тестовый комплект несовместимы с ошибкой в ​​weka?

Here is the screenshot for file comparision

+0

Мне немного сложно понять ваш вопрос. Можете ли вы показать больше деталей? –

+0

Привет, AnnieKimless, Спасибо за ваш ответ. Я построил классификационную модель с набором данных.arff, и теперь я пытаюсь предсказать результат для тестового файла test.arff с помощью weka explorer. Оба файла тренируются и тестируются, похоже, похожи, но weka explorer ошибочно говорит, что Train и тестовый набор несовместимы. Как разрешить эту ошибку? Есть ли способ сделать формат файла test.arf как train.arff? – suren

+2

Все три атрибута являются номинальными атрибутами, за которыми следуют все возможные значения, указанные в '{}'. Одно из моих предположений заключается в том, что возможные значения не совпадают. Например, для атрибута «RESOURCE» в тестовом файле нет «199», а в учебном файле. Как вы думаете? –

ответ

6

То же самое с комментарием, что я оставил после постановки задачи:

Все три атрибута являются номинальными атрибутами следуют все возможные значения, приводимые «{}». Одно из моих предположений заключается в том, что возможные значения не совпадают. Например, для атрибута RESOURCE в тестовом файле нет 199, а в учебном файле.

2

Смотреть следующий answer, ваш train.arff и test.arff должны иметь тот же заголовок. Согласно вашему сравнению, они похожи, но не одинаковы.

+0

Привет, Атилла, я получил решение. Проблема состоит в том, что заголовки аналогичны, но не одинаковы. Я изменил и обманул его. Большое вам спасибо за вашу помощь. – suren

0

Посмотрите, существует ли разница между похожими и одинаковыми, ваш train.arrf и test.arrf должны иметь один и тот же заголовок, а если нет, тогда вы должны скопировать заголовок train.arrf и вставить его в свой test.arrf как новый заголовок.

3

После борьбы с той же проблемой в течение дня. Я выяснил два способа заставить обученную модель работать с установленным набором тестов.

Способ 1. Используйте поток знаний. Например, что-то вроде: CSVLoader (для набора поездов) -> classAssigner -> TrainingSetMaker -> (классификатор по вашему выбору) -> ClassfierPerformanceEvaluator - TextViewer. CSVLoader (для тестового набора) -> classAssigner -> TestgSetMaker -> (тот же экземпляр класса выше) -> PredictionAppender -> CSVSaver. Затем загрузите данные из CSVLoader или arffLoder для обучающего набора. Модель будет обучена. После этого загружаются данные с загрузчика для тестового набора. Он будет оценивать модель (например, классификатор) на поставляемом тестовом наборе, и вы можете увидеть результат из текстового редактора (подключенного к ClassifierPerformanceEvaluator) и получить сохраненный результат из CSVSaver или arffSaver, подключенных к дополнительному столбцу PredictionAppender. в выходном файле будет добавлен «classfied as». В моем случае я использовал "?" для столбца класса в поставляемом тестовом наборе, если метки классов недоступны.

Способ 2. Объединить набор для обучения и тестирования в один файл. Тогда тот же самый фильтр может быть применен как к тренировочному, так и к тестовому набору. Затем вы можете отделить набор тренировок и набор тестов, применяя фильтр экземпляра. Так как я использую "?" как метка класса в тестовом наборе. Он не отображается в индексах фильтра экземпляра. Поэтому просто выберите те индексы, которые вы можете видеть в значениях атрибутов, которые нужно удалить при применении фильтра экземпляра. Вы получите только данные теста. Сохраните его и загрузите в тестовый комплект поставки на странице классификатора. В это время он будет работать. Я думаю, это атрибут класса, который вызывает НЕ-совместимую поездку и тестовый набор. Так как многие classfier требует номинального атрибута класса. Значение которого преобразуется в индекс к доступным значениям атрибута класса в соответствии с http://weka.wikispaces.com/Why+do+I+get+the+error+message+%27training+and+test+set+are+not+compatible%27%3F

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