Cómo obtener los pesos de las características.

Estoy tratando con un conjunto de datos altamente desequilibrado y mi idea es obtener valores de ponderaciones de características de mi modelo libSVM . Por ahora, estoy bien con el kernel lineal, donde puedo obtener pesos de características, pero cuando uso rbf o poly , no rbf alcanzar mi objective.

Aquí estoy usando sklearn para mi modelo y es fácil obtener ponderaciones de características para el kernel lineal utilizando .coef_ . ¿Puede alguien ayudarme a hacer lo mismo para rbf o poly ? Lo que he tratado de hacer hasta ahora se da a continuación:

 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_ 

Esto no solo es imposible, como se indica en la documentación :

Pesos asignados a las características (coeficientes en el problema primordial). Esto solo está disponible en el caso de kernel lineal.

pero tampoco tiene sentido. En SVM lineal, el plano de separación resultante está en el mismo espacio que las entidades de entrada. Por lo tanto, sus coeficientes se pueden ver como ponderaciones de las “dimensiones” de la entrada.

En otros kernels, el plano de separación existe en otro espacio, como resultado de la transformación del kernel del espacio original. Sus coeficientes no están directamente relacionados con el espacio de entrada. De hecho, para el kernel rbf el espacio transformado es de dimensión infinita (puede obtener un punto de partida en Wikipedia, por supuesto).