LibSVM Формат ввода - PullRequest
       10

LibSVM Формат ввода

4 голосов
/ 13 марта 2011

Я хочу представить набор помеченных экземпляров (данных) в файле для подачи в LibSVM в качестве обучающих данных.Для проблемы, упомянутой в этом вопросе.Это будет включать,

  1. Дата входа
  2. Время входа
  3. Местоположение (код страны?)
  4. День недели
  5. Подлинность (0 - Не Подлинный, 1 - Подлинный) - Метка

Как мне отформатировать эти данные для ввода в SVM?

Ответы [ 2 ]

4 голосов
/ 14 марта 2011

Вы спрашиваете о формате данных или как конвертировать данные?Для последнего вам придется экспериментировать, чтобы найти правильный способ сделать это.Общая идея заключается в том, чтобы преобразовать ваши данные в атрибут номинального или порядкового значения.Некоторые из них просты - # 4, # 6 - некоторые из них будут жесткими - # 1- # 3.

Например, вы можете представить # 1 как три атрибута дня, месяца и года или только один, преобразовав его в UNIX-подобную временную метку.

IP еще сложнее - нет простого способа превратить его в значимую порядковую величину.Использование каждого IP-адреса в качестве номинального атрибута может быть бесполезным в зависимости от вашей проблемы.

Как только вы поймете это, преобразуйте свои данные, проверьте документы LibSVM.Общий формат сопровождается: то есть +1 1:0 2:0 .. и т. Д.

1 голос
/ 17 апреля 2011

Я полагаю, что в предыдущих ответах есть неустановленное предположение.Неустановленное предположение состоит в том, что пользователи libSVM знают, что им следует избегать помещения категориальных данных в классификатор.

Например, libSVM не будет знать, что делать с кодами стран.Если вы пытаетесь предсказать, какие посетители, скорее всего, что-то купят на вашем сайте, у вас могут возникнуть проблемы, если в списке кодов стран США находится между Чадом и Нигером.Выпуклость из США, вероятно, искажает прогнозы для стран, расположенных рядом с ней.

Чтобы исправить это, я бы создал одну категорию для каждой рассматриваемой страны (и, возможно, категорию «другая»).Затем для каждого экземпляра, который вы хотите классифицировать, я бы установил все категории стран на ноль, кроме того, к которому принадлежит экземпляр.(Чтобы сделать это с разреженным форматом libSVM, это не имеет большого значения).

...