2016-07-27 6 views
1

Есть ли класс в libsvm, который может автоматически кодировать строковые/категориальные функции. Я нашел что-то под названием libsvmstringoutcomedatawriter. Какой тип кодирования используется выше? Одна горячая кодировка?кодирование категориальных переменных в libsvm

+0

У Cleartk libsvm есть класс ibsvmstringoutcomedatawriter .. –

ответ

0

Как ваши функции должны быть закодированы для LibSVM, зависит от ядра, которое вы используете с SVM. Например, существуют ядра строк, которые позволяют напрямую использовать строки как функции с SVM. LibSVM FAQ обсуждает реализацию строкового ядра, которое может использоваться с LibSVM. Я также нашел string kernel implementation in Python, хотя и не проверял его.

Что касается категориальных функций, то они могут использоваться со стандартными ядрами, доступными в LibSVM. Типичным способом кодирования категориальных функций является преобразование их в двоичные функции, где каждое категориальное значение представляется как значение 1 определенной функции. Например, для функции color={red, green, blue} мы можем иметь 3 функции red={0,1}, green={0,1}, blue={0,1}. Затем ядра, такие как Gaussian/RBF, должны иметь возможность обрабатывать данные без проблем.

+0

Но нужно ли мне делать эту кодировку вручную? И я пытаюсь кодировать функции, которые являются тегами POS. Любые подробности о них? –

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