Sto usando LinearSVC dalla libreria di scikit-learn e mi chiedo se sia possibile estrarre in qualche modo i vettori che il mio modello utilizza dopo l'allenamento per fare previsioni. Ho provato a google per qualche tempo, ma senza fortuna. Qualcuno lo sa?scikit-learn, linearsvc - come ottenere i vettori di supporto dall'SMM addestrato?
risposta
Purtroppo sembra che non ci sia modo di farlo. LinearSVC chiama liblinear (see relevant code) ma non recupera i vettori, solo i coefficienti e l'intercetta.
Un'alternativa sarebbe quella di utilizzare SVC con il kernel 'lineare' (libsvm invece di liblinear based), ma anche poly
, dbf
e sigmoid
kernel supportare questa opzione:
from sklearn import svm
X = [[0, 0], [1, 1]]
y = [0, 1]
clf = svm.SVC(kernel='linear')
clf.fit(X, y)
print clf.support_vectors_
uscita:
[[ 0. 0.]
[ 1. 1.]]
scale liblinear meglio per un numero elevato di campioni, ma per il resto sono per lo più equivalenti.
Grazie, Elyase. Se userò altri tipi di SVC disponibili in scikit-learn, sarà possibile restituire i vettori (o come chiamarli correttamente se uso il kernel polynomal) in qualche modo? –
@MaximHaytovich, Sì, ho aggiornato la mia risposta. – elyase
Questo potrebbe aiutarti.
clf = svm.SVC(kernel='rbf',C=0.05)
clf.fit(traindata,y)
print clf.support_vectors_
Questo collegamento può fornire ulteriori informazioni se necessario. http://scikit-learn.org/stable/modules/svm.html
non sono sicuro se aiuta, ma ero alla ricerca di qualcosa di simile e la conclusione è stata che se:
clf = svm.LinearSVC()
Allora questo:
clf.decision_function(x)
è uguale a questo:
clf.cof_.dot(x) + clf.intercept_
- 1. Doc2vec: come ottenere i vettori di documenti
- 2. AppCompat 23.3 I vettori di supporto non funzionano più?
- 3. Come eliminare veramente i vettori
- 4. Incollare due vettori con combinazioni di elementi tutti i vettori
- 5. Come si applica effettivamente un modello addestrato?
- 6. Come confrontare i vettori con Boost.Test?
- 7. come concatenare i vettori in Eigen?
- 8. Come confrontare i vettori approssimativamente in Eigen?
- 9. I vettori vengono ridimensionati automaticamente?
- 10. Ottenere quaternion per ruotare tra due vettori
- 11. Come posso ottenere caratteri comuni a due vettori in C++?
- 12. Python scikit-learn: esportazione del classificatore addestrato
- 13. Ottenere il valore di alcuni pesi in un modello addestrato da TensorFlow
- 14. Come estrarre i vettori di velocità dal flusso ottico denso?
- 15. Come stampare i vettori di matematica 2d con matplotlib?
- 16. Come posso esprimere il tipo di "takeWhile per i vettori"?
- 17. Memorizza i vettori come voci del frame di dati?
- 18. Conversione del modello Tensorflow addestrato in protobuf
- 19. Come posso ottenere il massimo pairwise tra due vettori?
- 20. Come ottenere la correlazione dei due vettori in python
- 21. Salva classificatore addestrato Naive Bayes in NLTK
- 22. Libreria di supporto Android 23.2 i drawable vettoriali sono sfocati
- 23. C++ vettori non come array
- 24. C++: vettori di sottrazione
- 25. Algoritmo di tipo Levenshtein con i vettori numerici
- 26. Come disegnare vettori (vettori fisici 2D/3D) in MATLAB?
- 27. Comprimere/ottimizzare i vettori in PDF
- 28. Delphi - Impossibile ottenere HMAC-SHA256 per passare i vettori di prova RFC 4231
- 29. $ non è valido per i vettori atomici
- 30. come salvare/caricare un modello addestrato in H2o?
Intendo i vettori di supporto, 'LinearSVC' in realtà non li usa affatto. –
'LinearSVC' non usa il vettore di supporto, ma il concetto esiste ancora e potrebbe essere ancora utile. –