2011-02-28 4 views
1

J'utilise des SVMs de régression en python et je me demande s'il y a un moyen d'obtenir une valeur de "confiance-mesure" pour ses prédictions.La confiance de régression en utilisant SVMs en python

Auparavant, lorsque j'utilisais des SVM pour la classification binaire, j'étais capable de calculer une valeur de type confiance à partir de la 'marge'. Voici quelques pseudo-code montrant comment je suis arrivé une valeur de confiance:

# Begin pseudo-code 
import svm as svmlib 

prob = svmlib.svm_problem(labels, data) 
param = svmlib.svm_parameter(svm_type=svmlib.C_SVC, kernel_type = svmlib.RBF) 
model = svmlib.svm_model(prob, param) 

# get confidence 
confidence = self.model.predict_values_raw(sample_to_classify) 

J'imagine que plus le nouvel échantillon est à partir des données de formation, plus la confiance, mais je suis à la recherche d'une fonction qui pourrait aider à calculer une estimation raisonnable pour cela.

Mon problème (haut niveau) est la suivante:

  • J'ai une fonction F (x), où x est un vecteur de grande dimension
  • F (x) peut être calculé mais est très lent
  • Je veux former une régression SVM l'approximer
  • Si je peux trouver des valeurs de « x » qui ont une faible confiance de prédiction, je peux ajouter ces points et reconvertir (aka. apprentissage actif)

Est-ce que quelqu'un a déjà obtenu/utilisé des valeurs de confiance/marge de régression-SVM auparavant?

+1

Vous aimeriez peut-être essayer cette question sur http://metaoptimize.com/qa c'est un clone de la communauté d'apprentissage automatique. – fairidox

+1

Vous obtiendrez une réponse plus rapide à votre problème à http://stats.stackexchange.com/ – matcheek

+0

Merci pour les suggestions. Je vais vérifier ces sites. – Ciaran

Répondre

1

Jetez un oeil à cette réponse similaire sur Stack de retour en Janvier. La réponse choisie était sur place en ce qui concerne combien il est difficile d'obtenir des mesures de confiance sur les méthodes d'ajustement non-paramétrique. Il y a probablement quelque chose de type bayésien que vous pourriez faire, mais ce n'est probablement pas possible avec la bibliothèque Python SVM: Prefer one class in libsvm (python).

+0

Hmmm, cette question fait référence à la classification SVM, mais je cherche une solution pour SVM 'Regression' – Ciaran

+0

Okay. La régression et la classification sont fondamentalement du même côté de la pièce. Dans le monde de la modélisation paramétrique, nous commençons par formuler des hypothèses sur le modèle, comment les erreurs sont réparties, etc., et cela constitue la base de notre évaluation de l'adéquation du modèle. Étant donné une approche non paramétrique comme SVM, vous devrez utiliser un certain type de technique de validation croisée (c.-à-d., Apprendre à apprendre, valider avec un ensemble de tests) et vous cherchez un type de proxy bayésien. pour la qualité de l'ajustement. C'est pourquoi j'ai signalé ce lien. – Marc

Questions connexes