Używam LinearSVC z biblioteki naukowego scikit i zastanawiam się, czy możliwe jest jakoś wyciągnąć wektory, które mój model używa po treningu do przewidywania. Próbowałem google przez jakiś czas, ale bez szczęścia. Ktokolwiek wie?scikit-learn, linearsvc - jak uzyskać wektory pomocnicze od wyszkolonego SVM?
Odpowiedz
Niestety wydaje się, że nie ma sposobu, aby to zrobić. LinearSVC wywołuje liblinear (see relevant code), ale nie pobiera wektorów, tylko współczynniki i punkt przecięcia.
Alternatywą byłoby użyć SVC z 'liniowym' jądra (libsvm zamiast liblinear based), ale również poly
, dbf
i sigmoid
jądra obsługują tę opcję:
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_
wyjściowa:
[[ 0. 0.]
[ 1. 1.]]
liblinear skaluje się lepiej do dużej liczby próbek, ale poza tym są w większości równoważne.
Dzięki, Elyase. Jeśli będę używał innych typów SVC dostępnych w nauce scikit, czy będzie możliwe zwrócenie wektorów (lub jak je poprawnie nazwać, jeśli użyję opisów wielomianowych) w jakiś sposób? –
@MaximHaytovich, Tak, zaktualizowałem swoją odpowiedź. – elyase
To może ci pomóc.
clf = svm.SVC(kernel='rbf',C=0.05)
clf.fit(traindata,y)
print clf.support_vectors_
Ten link może więcej informacji w razie potrzeby. http://scikit-learn.org/stable/modules/svm.html
Nie jestem pewien, czy to pomaga, ale szukałem czegoś podobnego, a wniosek, że jeżeli:
clf = svm.LinearSVC()
Wtedy to:
clf.decision_function(x)
jest równa:
clf.cof_.dot(x) + clf.intercept_
- 1. LInearSVC vs. SVC (kernel = 'linear'): Sprzeczne argumenty?
- 2. Python scikit-learn: eksportowanie wyszkolonego klasyfikatora
- 3. „$ Pomocnicze jest niezdefiniowana”
- 4. Szkolenie Opencv 3 SVM
- 5. Wyjaśnienie {caret} train (tuneLength =) i metody SVM od {kernlab}
- 6. Vectorized SVM gradientu
- 7. Funkcje pomocnicze w kakao
- 8. Jak porównać wektory z Boost.Test?
- 9. jak połączyć wektory w Eigen?
- 10. Elasticsearch: Jak przechowywać wektory terminowe
- 11. Podstawowy SVM wdrożony w MATLAB
- 12. Przekształcanie wyszkolonego modelu Tensorflow na protobuf
- 13. Wizualizacja SVM w MATLAB
- 14. Jak uzyskać ciąg od dataPackageView.GetDataAsync()
- 15. Jak uzyskać ciąg od AsyncTask?
- 16. Jak gildie wektory ciągu znaków w R
- 17. Przetwarzanie języka naturalnego - Konwersja funkcji tekstowych na wektory funkcji
- 18. Gdzie można przechowywać funkcje pomocnicze?
- 19. rspec nie ładuje pliki pomocnicze
- 20. Kompleksowość szkolenia Linear SVM
- 21. svm skalowanie wartości wejściowych
- 22. Marshaling wektory wskaźników
- 23. Spark - Jak korzystać z wyszkolonego modelu rekomendującego w produkcji?
- 24. Porównaj dwa wektory nierównych długościach, aby uzyskać logiczną tablicę
- 25. Funkcje pomocnicze w specyfikacji Kiwi
- 26. Jak korzystać z SVM w Weka?
- 27. Jak używać SVM do rozpoznawania ludzi?
- 28. std :: vector std :: wektory sąsiedztwo
- 29. W jakich parametrach są SVC i LinearSVC w ekwiwalencie scikit-learn?
- 30. uzyskać SharedPreferences od usługi
Mam na myśli wektory pomocnicze, "LinearSVC" w ogóle ich nie używa. –
'LinearSVC' nie korzysta z wektora wsparcia, ale koncepcja nadal istnieje i może być nadal przydatna. –