2013-07-09 3 views
0

Я использую функцию svmtrain для libsvm для 3-х задач класса и 2 класса. По другим причинам я хочу построить таблицу поиска на основе границ решения из результатов svmtrain.Создать таблицу поиска из данных обучения libsvm в matlab

LUT имеет 3 измерения - по одному для каждой функции, и каждая запись представляет собой либо -1, либо 1 (-> проблема класса 2).

Есть ли у кого-нибудь представление о том, как данные обучения могут использоваться для построения таблицы поиска?

ответ

1

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

Гиперплана в n-мерном пространстве всегда разделяет ее на две части. Вы не можете определить, на какой стороне находится точка, в общем случае, используя меньше n измерений. Подход таблицы поиска не работает.

Рассмотрим следующую гиперплоскость в двух измерениях: x1 + x2 = 0 и вы хотите «классифицировать» точку на основе одного измерения, например. (x1val,?) -> x1val +? > 0. Это невозможно.

Edit:

Все еще не уверены, что вы пытаетесь сделать. Если вы просто хотите заключить в таблицу свой учебный набор, просто предскажите его с вашей моделью и структурируйте результаты так, как вы хотите.

Я не вижу причин для этого, поэтому, я думаю, я не понимаю, что вы хотите делать.

+0

Я думаю, мой вопрос не был достаточно ясным: точки, которые я хочу классифицировать, также трехмерны. Ссылаясь на ваш пример 2d: должно быть возможно определить, на какой стороне гиперплоскости находится точка (x1val, x2val). –

+0

Вот как я это понял. Но вы не можете классифицировать упомянутые точки на основе только одного из трех измерений. Это то, что вы хотите сделать с LUT? –

+0

как я только что отредактировал в своем ответе, классификация основана на всех трех измерениях. –

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