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 преобразованное пространство бесконечномерно (вы можете получить исходную точку на этом в Википедии, конечно)

  • Реализация Python OpenCV SVM
  • Python: как найти результат точности в алгоритме текстового классификатора SVM для многоканального класса
  • Масштабирование тестовых данных до 0 и 1 с помощью MinMaxScaler
  • AttributeError: объект 'module' не имеет атрибута 'SVM_LINEAR'
  • Почему scikit-learn SVM-классификатор работает так долго, используя небольшой процессор?
  • Запуск SVM быстрее в python
  • Прогнозирование с использованием ядра chi для многослойных изображений с использованием sklearn
  • Получение предупреждения об устаревании в Sklearn над массивом 1d, несмотря на отсутствие массива 1D
  • Python - лучший язык программирования в мире.