Наборы данных для тестирования нелинейных SVM - PullRequest
7 голосов
/ 07 мая 2011

Я внедряю нелинейный SVM и хочу проверить свою реализацию на простых, не линейно разделимых данных. Google не помог мне найти то, что я хочу. Подскажите, пожалуйста, где я могу найти такие данные? Или, по крайней мере, как я могу генерировать такие данные вручную?

Спасибо

Ответы [ 4 ]

5 голосов
/ 09 мая 2011

Что ж, SVM являются классификаторами двух классов - то есть эти классификаторы размещают данные по обе стороны от одной границы решения.

Поэтому я хотел бы предложить набор данных, состоящий только из двух классов (это не является строго необходимым, потому что, конечно, SVM может разделять более двух классов, передавая классификатор несколько раз (последовательно) по данным, этоэто сложно сделать во время первоначального тестирования).

Так, например, вы можете использовать набор данных радужной оболочки, связанный с ответом Скотта;он состоит из трех классов, класс I линейно отделим от классов II и III;Класс II и III не являются линейно разделимыми.Если вы хотите использовать этот набор данных, для удобства вы можете предпочесть удалить класс I (примерно первые 50 строк данных), так что остается система с двумя классами, в которой два оставшихся класса не являются линейно разделимыми,

Набор данных iris довольно мал (150 x 4 или 50 строк / класс x четыре функции) - в зависимости от того, где вы находитесь в ходе тестирования прототипа SVM, это может быть именно то, что вам нужно, или выхочу больший набор данных.

Интересным семейством наборов данных, состоящих всего из двух классов и определенно нелинейно разделяемых, являются анонимизированные наборы данных, предоставленные сайтом мега-знакомств eHarmony (никакой принадлежности).В дополнение к данным радужной оболочки я предпочитаю использовать эти наборы данных для оценки прототипа SVM, поскольку они представляют собой большие наборы данных с довольно большим количеством функций, которые все еще состоят только из двух нелинейно разделяемых классов.

Мне известноиз двух мест, из которых вы можете получить эти данные.Первый сайт имеет один набор данных (загрузка кода PCI, глава 9, matchmaker.csv), состоящий из 500 точек данных (строка) и шести функций (столбцы).Хотя с этим набором проще работать, данные более или менее представлены в «сыром» виде и потребуют некоторой обработки, прежде чем вы сможете их использовать.

второй источник для этих данных, содержит два набора данных eHarmony, один из которых состоит из более чем полумиллиона строк и 59 функций.Кроме того, эти два набора данных подверглись существенной обработке, так что единственной задачей, необходимой перед передачей их в SVM, является обычное изменение масштаба функций.

2 голосов
/ 07 мая 2011

Конкретный набор данных, который вам нужен, будет сильно зависеть от вашего выбора функции ядра, поэтому кажется, что самый простой способ - это просто создать игрушечный набор данных самостоятельно.

Некоторые полезные идеи:

  • Концентрические круги
  • Спиральные классы
  • Вложенные банановые классы

Если вам нужен только случайный набор данных, который не может быть линейно разделен, могу ли я предложить набор данных Iris ? Это многомерный набор данных, в котором хотя бы пара рассматриваемых классов не являются линейно разделимыми.

Надеюсь, это поможет!

1 голос
/ 16 мая 2011

Вы можете начать с простых наборов данных, таких как радужная оболочка или две луны, которые линейно неразделимы.Как только вы будете удовлетворены, вы можете перейти к большим наборам данных из репозитория UCI ML, классификационным наборам данных .

Обязательно сравните и сравните результаты со стандартными решателями SVM, такими как libSVM и SVM-light.

0 голосов
/ 13 апреля 2015

Если вы программируете на Python, вы можете использовать несколько функций в пакете sklearn.datasets.samples_generator для ручной генерации вложенного набора данных в форме луны, набора данных концентрических окружностей и т. Д. Здесь - это страница графиков этих наборов данных.

И если вы не хотите генерировать набор данных вручную, вы можете обратиться к этому веб-сайту , где в разделе «наборов форм» вы можете загрузить этот набор данных и напрямую протестировать их. .

...