Esempio di rete neurale per classificare caratteristiche multidimensionali in due insiemi
-
26-09-2019 - |
Domanda
Sto cercando un buon esempio di codice sorgente di una rete neurale supervisionata che accetta più di due funzioni (a differenza di molti XY-esempi) ed i dati classifica i in due set. Da quello che ho letto, una Support Vector Machine (SVM) potrebbe essere una soluzione?
Tutti gli esempi di classificazione che ho trovato sono bidimensionali. Qui ci sono alcuni:
- strato singolo peceptron
- SVM (Support Vector Machine) in CSharp
- SVM.NET -. Davvero bello, ma ancora di input bidimensionale
Sto cercando di distinguere eventi rari da un certo numero di ingressi che sono normalmente stabili. Caratteristiche sono coppie chiave-valore in cui il valore di solito può discretizzati come un piccolo numero. dati di allenamento disponibili per la prima categoria è enorme, ma solo con alcuni gruppi di formazione per la seconda categoria, se questo fa la differenza.
Esempio Training Set
categoria A
[2, 1, 0, 1, 4, 3] -> A
[1, 1, 2, 3, 3, 0] -> A
[0, 0, 1, 3, 2, 0] -> A
Categoria B
[0, 4, 4, 4, 4, 3] -> B
Classifying Esempio
[1, 3, 4, 4, 4, 0] -> ??? (probably B)
Un voto di fiducia, per esempio. "85% certo di B", sarebbe utile per distinguere una soglia per un evento raro.
E 'una rete neurale la soluzione migliore e ci sono tutte le librerie .NET con questo in built-?
Soluzione
In realtà, tutte queste tecniche di apprendimento automatico hanno i loro pro e contro. In con NN (singolo strato percettrone), è necessario considerare se si dispone di dati di allenamento abbastanza. Tecnicamente parlando, è necessario essere in grado di coprire tutte le celle all'interno delle dimensioni per avere un buon risultato.
SVM d'altra parte, cerca di trovare un confine che separa i punti dati, quindi se avete lacune nei settori che non sono vicino a questo confine, va bene.
Ci sono 5-6 classificatori intorno +/- d'amplificazione e ad essere onesti, sembra che la maggior parte del tipo di tempo del classificatore è scelto soggettivamente. D'altra parte, alcune persone utilizzano più classificatori e confrontare il risultato.
Con OpenCV, è così facile da pluggin un classificatore di diverso e quindi si è sulla strada giusta per esso. Ho usato OpenCV in C ++ con classificatori NN per il mio progetto e il risultato è stato molto buono: