Scikits Learn: как получить вес функций

Я имею дело с очень несбалансированным набором данных, и моя идея – получить значения весов функций из моей модели libSVM . На данный момент я в порядке с линейным ядром, где я могу получить вес элементов, но когда я использую rbf или poly , я не могу достичь своей цели.

Здесь я использую sklearn для своей модели, и легко получить весовые коэффициенты для линейного ядра с использованием .coef_ . Может ли кто-нибудь помочь мне сделать то же самое для rbf или poly ? То, что я пытался сделать до сих пор, приведен ниже:

 svr = SVC(C=10, cache_size=200, class_weight='auto', coef0=0.0, degree=3.0, gamma=0.12,kernel='rbf', max_iter=-1, probability=True, random_state=0,shrinking=True, tol=0.001, verbose=False) clf = svr.fit(data_train,target_train) print clf.coef_ 

One Solution collect form web for “Scikits Learn: как получить вес функций”

Это не только невозможно, как указано в документации :

Массы, приписываемые функциям (коэффициенты в основной задаче). Это доступно только в случае линейного ядра.

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

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

  • Сочетание поиска сетки и перекрестной проверки в scikit learn
  • Python scikit-learn SVM Classifier "ValueError: найден массив с тусклым 3. Ожидаемый <= 2"
  • Предупреждающие сообщения при использовании python
  • Подготовьте данные для классификации текста с помощью Scikit Learn SVM
  • Предпочитаете один класс в libsvm (python)
  • libsvm для построения кривых ROC
  • scikit-learn SVM.SVC () чрезвычайно медленный
  • Python: преобразовать матрицу в положительную полуопределенную
  • Python - лучший язык программирования в мире.