Classificatori di machine learning big-O o complessità


14

Per valutare le prestazioni di un nuovo algoritmo di classificazione, sto cercando di confrontare l'accuratezza e la complessità (big-O in formazione e classificazione). Dall'apprendimento automatico: una recensione ottengo un elenco completo dei classificatori supervisionati, anche una tabella di precisione tra gli algoritmi e 44 problemi di test dal deposito di dati UCI . Tuttavia, non riesco a trovare una recensione, un documento o un sito Web con il big-O per classificatori comuni come:

  • C4.5
  • RIPPER (Penso che questo potrebbe non essere possibile, ma chi lo sa)
  • ANN con Propagazione Posteriore
  • Bayesian ingenuo
  • K-NN
  • SVM

Se qualcuno ha qualche espressione per questi classificatori, sarà molto utile, grazie.


2
Potresti essere interessato al seguente articolo: thekerneltrip.com/machine/learning/… Disclaimer completo, è il mio blog :)
RUser4512

Vuoi rintracciare le posizioni in cui puntavano ora i dead link della domanda?
opaco

@ RUser4512 deliberazione davvero eccezionale sul blog! hai pensato di aggiungere anche la complessità dello spazio?
opaco

1
@matt Grazie :) sì, ma probabilmente in un altro articolo, ci sono anche molte cose da dire su questo!
RUser4512,

Risposte:


11

Sia = numero di esempi di addestramento, d = dimensionalità delle caratteristiche e c = numero di classi.Ndc

Quindi la formazione ha complessità:

  1. Naive Bayes è , tutto ciò che deve fare è calcolare la frequenza di ogni valore di caratteristica d i per ogni classe.O(Nd)di
  2. -NN è in O ( 1 ) (alcune persone sostengono addirittura che sia inesistente, ma la complessità spaziale dell'allenamento è O ( N d ) poiché è necessario memorizzare i dati che richiedono anche tempo).kO(1)O(Nd)
  3. SVM non lineare non approssimativo è o O ( N 3 ) a seconda del kernel. Puoi ottenere una O ( N 3 ) fino a O ( N 2.3 ) con alcuni trucchi.O(N2)O(N3)O(N3)O(N2.3)
  4. SVM approssimativo è dove R è il numero di iterazioni.O(NR)

Complessità dei test:

  1. Naive Bayes si trova in poiché è necessario recuperare i valori di funzione d per ciascuna delle classi c .O(cd)dc
  2. -NN è in O ( N d ) poiché è necessario confrontare il punto di prova con ogni punto di dati nel database.kO(Nd)

Fonte: "Macchine vettoriali di base: formazione SVM rapida su set di dati molto grandi" - http://machinelearning.wustl.edu/mlpapers/paper_files/TsangKC05.pdf

Mi dispiace non so degli altri.


6
O(n2)O(n3)

@MarcClaesen Il collegamento non funziona più e non si trova sulla macchina del ritorno. È lo stesso documento: leon.bottou.org/publications/pdf/lin-2006.pdf ?
parole per il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.