WEKA использует значения классов для решения дерева решений?

Я новичок в WEKA и ML, поэтому, пожалуйста, извините мое невежество в следующем. Я потратил несколько часов, пытаясь понять это, поэтому, надеюсь, кто-то может указать мне правильное направление:

Я пытаюсь запустить дерево решений J48 по данным для USDJPY. Данные были загружены через файл .csv, а значение класса имеет номинальный тип, точнее, значение TRUE или FALSE, если USDJPY торговалась более чем на 1% выше после 20 сессий. Проблема в том, что когда я запускаю алгоритм, дерево решений просто использует значение класса для решения проблемы, что бесполезно. Есть атрибуты * 22, отличные от атрибута класса, из которых я хочу предсказать атрибут класса.

При сравнении моего набора данных с примером набора данных «стекло» я не могу найти никакой разницы между ними, которая объяснила бы мою проблему. "glass.arff" работает, как и ожидалось, когда я запускаю J48 (с идентичными настройками), пытаясь предсказать значение класса (тип стекла) с помощью других атрибутов (т.е. некоторые предположения получаются неверными).

Что мне здесь не хватает? вот список атрибутов:

@ATTRIBUTE date NUMERIC
@ATTRIBUTE open NUMERIC
@ATTRIBUTE high NUMERIC
@ATTRIBUTE low NUMERIC
@ATTRIBUTE close NUMERIC
@ATTRIBUTE 1daypctchg NUMERIC
@ATTRIBUTE smavg50onclose NUMERIC
@ATTRIBUTE smavg100onclose NUMERIC
@ATTRIBUTE smavg200onclose NUMERIC
@ATTRIBUTE ubb2 NUMERIC
@ATTRIBUTE bollma2 onclose NUMERIC
@ATTRIBUTE lbb2 NUMERIC
@ATTRIBUTE bollwjpybgn NUMERIC
@ATTRIBUTE %bjpybgn NUMERIC
@ATTRIBUTE rsi NUMERIC
@ATTRIBUTE ma50>100 {FALSE,TRUE}
@ATTRIBUTE ma50>200 {FALSE,TRUE}
@ATTRIBUTE ma100>200 {FALSE,TRUE}
@ATTRIBUTE up1pct5d? {FALSE,TRUE}
@ATTRIBUTE up1pct20d? {FALSE,TRUE}
@ATTRIBUTE dwn1pct5d? {FALSE,TRUE}
@ATTRIBUTE dwn1pct20d? {FALSE,TRUE}

person trock2000    schedule 17.09.2016    source источник
comment
Используете ли вы пользовательский интерфейс Weka или API Java?   -  person stackoverflowuser2010    schedule 17.09.2016
comment
Я использую интерфейс Weka.   -  person trock2000    schedule 17.09.2016
comment
Вы отмечаете столбец класса как класс в пользовательском интерфейсе? Это заставит алгоритм избегать использования класса в качестве функции.   -  person stackoverflowuser2010    schedule 17.09.2016
comment
как это сделать? Я думал, что последний (самый правый) столбец в вашем наборе данных по умолчанию соответствует классу? Я также подтвердил, что самый правый столбец выделен жирным шрифтом в окне предварительного просмотра (если это что-то значит) - я даже пытался изменить класс через раскрывающееся меню на вкладках предварительной обработки и классификации - я что-то упустил?   -  person trock2000    schedule 17.09.2016
comment
Да, самый правый столбец должен быть классом. Если вы выполнили все шаги, чтобы определить правильный столбец для класса, то я не знаю, в чем проблема. Можете дать ссылку на набор данных?   -  person stackoverflowuser2010    schedule 18.09.2016
comment
Кроме того, что вы подразумеваете под Когда я запускаю алгоритм, дерево решений просто использует значение класса для решения проблемы? Вы имеете в виду, что результат классификации имеет 100% точность или что древовидное представление в выходных данных J48 показывает, что верхним узлом решения является значение класса?   -  person stackoverflowuser2010    schedule 18.09.2016
comment
К сожалению, у меня нет ссылки - это ежедневные данные по USDJPY за 45 лет, загруженные из Bloomberg в файл csv - как еще я могу поделиться ими с вами напрямую?   -  person trock2000    schedule 18.09.2016
comment
Можете ли вы опубликовать около 20 строк данных и сказать, что это за столбцы?   -  person stackoverflowuser2010    schedule 18.09.2016
comment
конечно, но где я могу сделать это здесь? к большому/не отформатированному для раздела комментариев.....   -  person trock2000    schedule 18.09.2016
comment
Просто добавьте его в конец основного вопроса и примените форматирование образца кода. Вы сказали, что это всего 7 атрибутов, верно?   -  person stackoverflowuser2010    schedule 18.09.2016
comment
Теперь у меня есть четкое представление о том, в чем проблема - мой .csv на самом деле имел 22 атрибута (раньше было семь, извините за путаницу) - поэтому я сократил его до 7, чтобы опубликовать для вас здесь, но запустил его снова сначала на 7, и он работал правильно с этим новым файлом! разве я не должен использовать 22 атрибута?   -  person trock2000    schedule 18.09.2016
comment
Он должен иметь возможность использовать любое количество атрибутов, если класс постоянно находится в одном и том же столбце.   -  person stackoverflowuser2010    schedule 18.09.2016
comment
Если мой ответ поможет решить вашу проблему, пожалуйста, примите его ниже.   -  person stackoverflowuser2010    schedule 18.09.2016
comment
что вы имеете в виду, когда класс постоянно находится в одном и том же столбце? он все еще не работает - форматирование было отключено, когда я пытался опубликовать заголовок набора данных, но я добавил список атрибутов в формате .arff - вы случайно не видите ничего?   -  person trock2000    schedule 18.09.2016
comment
Вы сказали, что у вас есть данные в формате CSV. Убедитесь, что все строки имеют одинаковое количество полей, и убедитесь, что класс всегда находится в последнем столбце.   -  person stackoverflowuser2010    schedule 18.09.2016
comment
Кроме того, вы можете удалить необычные символы из имен ваших атрибутов, например › или % или ? и т. д.   -  person stackoverflowuser2010    schedule 18.09.2016


Ответы (1)


Weka (и ее реализация J48) должна иметь возможность классифицировать ваши данные, если класс достоверности постоянно находится в одном и том же столбце вашего файла .csv.

person stackoverflowuser2010    schedule 17.09.2016
comment
спасибо - я думаю, что понял теперь - удалив другие логические столбцы, я смог заставить алгоритм работать так, как ожидалось - person trock2000; 18.09.2016
comment
Рад слышать. - person stackoverflowuser2010; 18.09.2016