Интерпретация модели LibSVM - PullRequest
1 голос
/ 21 октября 2011

Мне нужно классифицировать некоторые значения между двумя классами.У меня есть около 30 значений, которые я могу использовать в качестве обучающего набора, и каждое значение имеет 10 различных измерений.Я использую libSVM (в Python), и кажется, что он работает довольно хорошо.

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

Например, рассмотрим следующий пример:

y, x = [1,1,1,-1,-1,-1],[[1,-1],[1,0],[1,1],[-1,-1],[-1,0],[-1,1]]
prob  = svm_problem(y, x)
param = svm_parameter()
param.kernel_type = LINEAR
param.C = 10
m = svm_train(prob, param)
svm_save_model('model_file', m)

Понятно, что второе измерение элементов списка x бесполезно для классификации этого набора данных.

Мой вопрос:

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

1 Ответ

0 голосов
/ 08 апреля 2012

Немного поздно, но:

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

Только вы можете знать, какие функции хороши, а какие нет. Вы должны найти их вручную / мозгом.

...