Quina diferència hi ha entre C-SVM i nu-SVM?


Resposta 1:

El nu-SVM va ser proposat per Scholkopf et al té l'avantatge d'utilitzar un paràmetre nu per controlar el nombre de vectors de suport. El paràmetre C de la formulació SVM ordinària es substitueix per un paràmetre nu que és delimitat per 0 i 1. Anteriorment, el paràmetre C podria haver pres qualsevol valor positiu, per tant, aquest llig addicional és beneficiós en la seva implementació.

El paràmetre nu representa el límit inferior i superior del nombre d’exemples que són vectors de suport i que es troben al costat equivocat de l’hiperplà, respectivament.

Ara, malgrat el nou enllaç, el nu-SVM és comparativament difícil d’optimitzar i sovint el temps d’execució no es pot escalar en comparació amb el C-SVM.


Resposta 2:

Els SVM utilitzen hiperplans per realitzar la classificació. Mentre realitzen classificacions mitjançant SVM, hi ha 2 tipus de SVM

  • C SVMNu SVM

C i nu són paràmetres de regularització que ajuden a implementar una penalització sobre les classificacions errònies que es realitzen mentre se separen les classes. Així ajuda a millorar la precisió de la sortida.

C oscil·la entre 0 i infinit i pot ser difícil d’estimar i utilitzar. Una modificació per a això va ser la introducció de nu que funciona entre 0-1 i que representa el límit inferior i superior del nombre d’exemples que són vectors de suport i que es troben al costat equivocat de l’hiperplà.

Ambdues tenen un poder de classificació similar comparatiu, però el nou SVM ha estat més difícil d'optimitzar


Resposta 3:

És en gran mesura una qüestió d’interpretabilitat. Hi ha qui sembla que és més fàcil d’interpretar que C. Mentre que nu es troba en un rang més petit que C (que va des de 0 fins a l’infinit), encara heu de cercar la graella pel nivell de reglarisació adequat i, passat un cert punt, no hi ha cap sentit. augmentant C de totes maneres. A més, C tendeix a provar-se a escala de registre, mentre que l'elecció de nu és superior a una escala lineal.

En termes de temps de solució, SMO i variants haurien de resoldre tots dos aproximadament al mateix temps. No sóc conscient d’un solucionador lineal / primari de nu-SVM de codi obert, de manera que aquest és un inconvenient d’utilitzar nu-SVM en problemes superiors als que libsvm pot tractar còmodament (però no hauria de ser massa difícil codificar-ne un). Dit això, he provat C-SVM lineal / primari (sklearn SGD o lineal SVC mitjançant funcions de Fourier / nystroem) vs. nu-SVM de Libsvm, i he trobat que libsvm sol ser una opció millor (per a precisió, flexibilitat i temps) . El meu problema era un conjunt de dades extremadament desequilibrat, amb aproximadament 20 quilòmetres, 20 a 100 funcions, si això ajuda.