У меня есть набор данных, содержащий смесь числовых и номинальных атрибутов. Я хочу преобразовать все номинальные атрибуты в наборе данных в числовые, чтобы я мог применить ядро классификатора SVM (PolyKernel и RBFKernel), которое работает только с числовыми атрибутами. Любая помощь будет принята с благодарностью. К вашему сведению, я уже пробовал NominalToBinary Filter (Это не совсем то, что я хочу)
Как выполнить преобразование атрибутов из номинальных в числовые в WEKA?
Ответы (3)
Вы можете преобразовать все имена меток для атрибута с помощью RenameNominalValues . Обратите внимание, что все эти новые метки должны быть числовыми, поэтому вам может потребоваться изменить их, как показано ниже:
Как только это будет сделано, вы можете сохранить файл .ARFF и изменить запись в вашем списке атрибутов с:
@attribute a0 {false,true,maybe}
to
@attribute a0 numeric
После сохранения перезагрузите документ, и, надеюсь, все загрузится нормально.
В качестве альтернативы вы можете попробовать свое любимое приложение для работы с электронными таблицами, если преобразование ваших данных обратно в ARFF не будет проблемой.
Надеюсь это поможет!
Нет прямого фильтра для преобразования номинальных данных в числовые данные. Если ваш номинальный атрибут имеет 2 значения (ПОЛ: МУЖСКОЙ, ЖЕНСКИЙ), вы можете легко применить фильтр к неконтролируемым фильтрам от номинального к двоичному.
Но если у вас более двух вариантов атрибута, вы не можете использовать номинальный в двоичный. Поэтому вам нужно использовать фильтр Rename Nominal vales. Здесь вы можете преобразовать номинальное значение в числовое значение. Например: если в вашем наборе данных есть атрибут с именем region и для значений есть INNER_CITY, TOWN, SUBURBAN, SUBURBAN, вы можете легко преобразовать эти номинальные значения с помощью фильтра Rename Nominal Value. .
Существует форма замены значения, вам нужно только добавить значения, как показано ниже. ВНУТРЕННИЙ_ГОРОД: 0, ГОРОД: 1, ПРИГОРОД: 2, ПРИГОРОД: 3
вы можете увидеть свои результаты.
OrdinalToNumeric
. Разве это не сработает?
- person Pavindu; 12.06.2021
Фильтр NominalToNumeric
(пакет: weka.filters.unsupervised.attribute
), который является частью ADAMS, позволяет делать именно это . Вы можете либо использовать внутреннее представление (то есть порядок меток, начинающийся с 0), либо, если в метке есть числовая часть, которая может быть преобразована в число, использовать регулярные выражения для преобразования этих подстрок.
ADAMS также предлагает Weka Investigator, более мощный инструмент, чем Weka Explorer. Просто скачайте adams-ml-app-snapshot снимок, чтобы получить доступ к этому фильтру.