In termini di "lavoro SVM fuori" - ciò che renderà SVM più "impegnativo" è un modello più complesso che non è facilmente separabile, una dimensionalità più elevata e un set di dati più ampio e più denso.
prestazioni SVM degrada con:
- dimensioni Dataset aumenta (numero di punti di dati)
- sparsity diminuisce (meno zeri)
- aumenti dimensionalità (numero di attributi)
- Sofferenze vengono utilizzati kernel lineari (ei parametri del kernel possono rendere più complessa la valutazione del kernel )
variando i parametri di
Ci sono parametri che è possibile modificare per rendere SVM richiedere più tempo. Ovviamente i parametri influenzano la qualità della soluzione che si otterrà e potrebbero non avere senso usare.
Utilizzando C-SVM, la variazione di C provocherà diversi runtime. (Il parametro simile in nu-SVM è nu) Se il set di dati è ragionevolmente separabile, rendendo C più piccolo avrà un tempo di esecuzione più lungo perché SVM consentirà a più punti di allenamento di diventare vettori di supporto. Se il set di dati non è molto separabile, rendendo C più grande causerà tempi di esecuzione più lunghi perché in pratica si sta dicendo a SVM che si desidera una soluzione a margine stretto che si adatti strettamente ai dati e che richiederà molto più tempo per calcolare quando i dati non sono facilmente separato.
Spesso si scopre quando si esegue una ricerca di parametri che ci sono parametri che aumenteranno il tempo di calcolo senza aumenti apprezzabili dell'accuratezza.
Gli altri parametri sono i parametri del kernel e se li si varia per aumentare la complessità del calcolo del kernel, naturalmente il runtime SVM aumenterà. Il kernel lineare è semplice e sarà il più veloce; i kernel non lineari richiederanno ovviamente più tempo. Alcuni parametri potrebbero non aumentare la complessità di calcolo del kernel, ma imporrà un modello molto più complesso, che potrebbe richiedere molto tempo per SVM per trovare la soluzione ottimale.
dataset per l'utilizzo:
Il UCI Machine Learning Repository è una grande fonte di set di dati.
Il MNIST handwriting recognition dataset è una buona soluzione da utilizzare: è possibile selezionare in modo casuale sottoinsiemi di dati per creare set di dati di dimensioni sempre maggiori. Tieni presente che i dati al link contengono tutte le cifre, SVM è ovviamente binario, quindi dovrai ridurre i dati a due sole cifre o fare una sorta di SVM multi-classe.
Si può facilmente generare set di dati pure. Per generare un set di dati lineare, selezionare casualmente un vettore normale su un iperpiano, quindi generare un datapoint e determinare su quale lato dell'iperplano ricade per etichettarlo. Aggiungete un po 'di casualità per consentire ai punti entro una certa distanza dall'iperpiano di essere etichettati a volte in modo diverso. Aumentare la complessità aumentando la sovrapposizione tra le classi. Oppure generare un numero di cluster di punti normalmente distribuiti, etichettati come 1 o -1, in modo che le distribuzioni si sovrappongano ai bordi. L'esempio classico non lineare è una scacchiera. Genera punti ed etichettali in uno schema a scacchiera. Per rendere più difficile ingrandire il numero di quadrati, aumentare le dimensioni e aumentare il numero di punti dati. Dovrai ovviamente utilizzare un kernel non lineare per questo.
La duplicazione dei punti di allenamento non rende il problema più difficile. Poiché la maggior parte SVM richiede che l'intero set di dati si adatti alla memoria principale, ha senso che alla fine si verifichino errori di memoria. – karenu
quindi, come posso provare con un set di dati adeguato? Conoscete qualche esempio che potrei usare? – Manolete
Sì, se vedi la mia risposta, ho elencato un numero di set di dati disponibili. Inoltre, dovresti eseguire la sintonizzazione dei parametri per trovare i parametri migliori, troverai che mentre cerchi i parametri che ti danno la massima precisione alcuni impiegheranno più tempo ad allenarsi di altri. Dai un'occhiata alla Guida pratica dell'autore di libsvm: http://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0CFYQFjAA&url=http%3A%2F%2Fwww.csie.ntu .edu.tw% 2F ~ cjlin% 2Fpapers% 2Fguide% 2Fguide.pdf & ei = WtLhT46NO-jw0gG30pHVAw & usg = AFQjCNFol0McRktHC6gsBxKXqQMvmQUFeg – karenu