2013-06-11 12 views
9

Ho circa 4000 post sul blog con me. Voglio classificare tutti i messaggi in base ai seguenti valoriAlgoritmi di classifica

Upvote Count => P 
Comments Recieved => C 
Share Count => S 
Created time in Epoch => E 
Follower Count of Category which post belongs to => F (one post has one category) 
User Weight => U (User with most number of post have biggest weight) 

Mi aspetto una risposta in pseudo codice.

+0

Voto per chiudere come troppo ampio. –

risposta

19

Il tuo problema rientra nella categoria regression (link). In termini di apprendimento automatico, hai una raccolta di features (link) (che elencherai nella tua domanda) e hai un punteggio con il punteggio che vuoi prevedere dato quelle caratteristiche.

Ciò che Ted Hopp ha suggerito è fondamentalmente un linear predictor function (link). Potrebbe essere un modello troppo semplice per il tuo scenario.

Considerare l'utilizzo di logistic regression (link) per il problema. Ecco come andresti a usarlo.

1. creare il modello di apprendimento dataset

selezionato casualmente alcuni m post del blog dal set di 4000. Dovrebbe essere un piccolo insieme abbastanza che si può comodamente guardare attraverso questi m post del blog a mano.

Per ognuno dei post del blog m, valutare quanto è "buono" con un numero da 0 a 1. Se è d'aiuto, puoi pensare a questo come ad usare 0, 1, 2, 3, 4 "stelle" per i valori 0, 0.25, 0.5, 0.75, 1.

Ora hai post del blog m ognuno con un set di funzionalità e un punteggio.

È possibile espandere il set di funzionalità per includere funzionalità derivate. Ad esempio, è possibile includere il logaritmo di "Conteggio in eccesso", "Commenti ricevuti", "Numero di condivisioni" e "Conteggio follower". e potresti includere il logaritmo del numero di ore tra "ora" e "ora di creazione".

2. Imparare il vostro modello

Usa discesa del gradiente di trovare un modello di regressione logistica che misura il vostro set di dati del modello-learning. È necessario partizionare il set di dati in training, convalida e test set in modo da poter eseguire le rispettive fasi nel processo di apprendimento del modello.

Non mi dilungherò più su questa sezione perché Internet è pieno di dettagli ed è un processo in scatola.

link

Wikipedia:

3. Applica il tuo modello

aver imparato il tuo modello di regressione logistica, è ora possibile applicare per predire il punteggio per quanto è "buono" un nuovo post sul blog! Calcola semplicemente il set di funzionalità (e funzionalità derivate), quindi usa il tuo modello per mappare quelle caratteristiche a un punteggio.

Ancora una volta, Internet è pieno dei dettagli per questa sezione, che è un processo in scatola.


Se avete domande, assicuratevi di chiedere!

Se sei interessato a saperne di più sull'apprendimento automatico, dovresti prendere in considerazione l'assunzione di the free online Stanford Machine Learning course on Coursera.org. (Non sono affiliato con Stanford o Coursera.)

+0

Ritengo davvero che questo modello sia eccessivo. Come suggeriva Ted, vuoi capire quanto sia importante ciascun fattore/caratteristica e calcolare un punteggio. Questo è esattamente ciò che questa risposta chiede di fare nel passaggio 1. Come assegneresti un rango ai post dei blog in un set di allenamento razionale e coerente senza assegnare alcuni pesi alle caratteristiche di pertinenza. Ora se hai assegnato pesi esplicitamente, allora il problema è già risolto, perché usare un algoritmo di regressione per "prevedere" il rango. – Gmu

+1

@Gmu Dopo aver mangiato in un ristorante, guardando un film, leggendo un libro, ecc., Potresti valutare l'esperienza complessiva su una scala da 0 a 5 stelle? Quando valuti il ​​ristorante, stai consapevolmente basando la tua valutazione su caratteristiche di livello molto basso come "Contenuto Grasso", "Contenuto di carboidrati", "Cordialità del server", ecc. E poi combinandole con pesi che hai deliberatamente deciso? Probabilmente no. Eppure è possibile valutare i ristoranti "in modo razionale e coerente" (in una certa misura). –

+0

grazie per aver chiarito. quindi sta facendo emergere i pesi latenti che la tua mente inconsciamente sta assegnando. Quantificazione del Qualitativo assumendo coerenza nelle risposte/punteggi qualitativi. – Gmu

9

Suggerirei una media ponderata dei singoli punteggi per ciascun post del blog. Assegna un peso che rifletta sia l'importanza relativa di ciascun valore sia le differenze nella scala del valore (ad esempio, E sarà un numero molto elevato rispetto agli altri valori). Poi calcolare:

rank = wP * P + wC * C + wS * S + wE * E + wF * F + wU * U; 

non si fornisce alcuna informazione circa l'importanza relativa di ogni valore o anche quello che i valori medi in termini di rango. Quindi è impossibile essere più specifici su questo. (Un tempo di creazione precedente spinge verso l'alto o verso il basso in classifica? Se inattivo, allora dovrebbe essere negativo.)