Algoritmo di apprendimento automatico per il posizionamento


10

Ho un insieme di elementi che posso descrivere in base a caratteristiche. Così:Xn

Xio:{cio1,cio2,...,cion}|XioX

dove è la valutazione (numerica) per l'elemento secondo le caratteristiche . Quindi i miei elementi possono essere visualizzati come punti in uno spazio di dimensioni.ciojiojn

Secondo le mie letture, esistono algoritmi come il "Classificatore di Bayes" che può fornirmi un tipo di risposta "sì" o "no" su qualsiasi elemento del mio set, a condizione che io abbia usato un "set di addestramento" costituito da alcuni elementi del mio set e il risultato atteso dell'algoritmo. Sulla base di tali dati, l'algoritmo dovrebbe essere in grado di prendere qualsiasi altro elemento, non parte del set di training, e fornire una risposta "sì" o "no" basata su ciò che ha appreso grazie al set di training. Questo è fantastico se hai qualche tipo di idea di cosa ti aspetti (set di allenamento) ma non sei sicuro delle regole specifiche che portano a quel risultato.

Quello che vorrei fare con i miei dati non è ottenere un tipo di risposta "sì" o "no", ma vorrei introdurre una classifica all'interno degli elementi. Alcuni di loro sono "migliori" di altri. Proprio come per il filtro Bayes, ho un'idea generica di cosa mi aspetto. Potrei così generare una "classifica di formazione" tratta da un sottoinsieme dei miei elementi, che inserirò nel MLA. Sulla base di quell'allenamento sarebbe in grado di classificare il mio intero set.

Per fare ciò vedo due approcci:

  1. A ciascun elemento verrebbe assegnato un punteggio dall'MLA, quindi classificarli in base al punteggio.
  2. L'MLA sarebbe in grado di prendere due elementi e e determinare quale è meglio (confronti a coppie). Usa quicksort usando quell'operazione di confronto.XioXj

Nota: in base a un punteggio la funzione a coppie è banale da implementare e, in base a una funzione a coppie, è banale generare un punteggio, quindi questi sono solo due approcci per ottenere gli stessi risultati.

Esistono esempi di MLA che possono fornire una funzione di punteggio o una funzione di confronto a coppie?

EDIT: Al fine di aggiungere più contesto: attualmente i miei oggetti sono classificati secondo un algoritmo che genera un punteggio (numero reale) per ogni articolo effettuando calcoli sul . Mentre la classifica generata è abbastanza corretta, spesso devo modificare l'algoritmo per modificarlo in qualche modo perché posso vedere chiaramente alcuni elementi che non sono classificati in base a quello che mi sarei aspettato.cioj

Quindi attualmente il mio processo di progettazione è:

  1. Fatti un'idea di quale sarebbe una classifica perfetta
  2. Prova a derivare (manualmente) un algoritmo che classificherebbe gli oggetti in questo modo
  3. Osservare i risultati
  4. Adatta l'algoritmo

Quindi ho pensato agli MLA poiché il punto di partenza del mio processo è quello che potrebbe essere usato come dati di addestramento. Probabilmente inizierei prendendo l'attuale rango, scambiando gli oggetti in base alle mie esigenze e alimentandolo.

Risposte:


3

Molti algoritmi di classificazione fanno già esattamente quello che stai cercando, ma spesso presentano le loro risposte agli utenti sotto forma di un giudizio binario (o n-way). Ad esempio, SVMLight è un'implementazione dell'algoritmo di classificazione della macchina vettoriale di supporto; le persone lo usano comunemente per esprimere giudizi binari su alcuni set di dati. Ciò che accade sotto il cofano, tuttavia, è che l'algoritmo assegna ai dati giudizi di fiducia firmati. Questi sono compresi tra -1,0 e 1,0 e sono quelli che dovresti usare per classificare i tuoi dati!


2

Sembra che tu possa usare l'analisi di regressione . Inoltre, probabilmente devi assegnare punteggi (numeri reali) agli elementi del tuo set di allenamento, se non li hai. Anche se puoi semplicemente utilizzare il rango come valore obiettivo, ti farà ottenere un modello scadente se hai solo un piccolo set di campioni di allenamento.


0

Penso che ti aspetti troppo dagli algoritmi di machine learning. Un computer non può decidere se l'articolo 1 è migliore dell'articolo 2 da solo. Quello che un algoritmo di Machine Learning può fare è se gli dai alcuni esempi in cui hai valutato un elemento 1 in modo che sia migliore dell'articolo 2, allora può imparare a classificare gli elementi [1]. Tuttavia, hai ancora bisogno di dati di addestramento in cui fornisci esempi di articoli e con informazioni sul fatto che l'articolo 1 sia maggiore dell'articolo 2 per tutti gli articoli nei dati di allenamento.

[1] http://www.cs.cornell.edu/people/tj/svm_light/svm_rank.html


Grazie mille per il link. E capisco perfettamente che dovrò fornire un set di addestramento all'algoritmo in modo che possa classificare gli elementi successivi.
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.