2013-03-20 19 views
9

Sono un grande fan del calcio (calcio) e anche interessato al Machine Learning. Come progetto per il mio corso ML sto provando a costruire un modello che preveda la possibilità di vincere per la squadra di casa, dati i nomi della squadra di casa e di trasferta. (Esigo il mio set di dati e di conseguenza creo punti basati su corrispondenze precedenti tra quelle 2 squadre)Prevedere i vincitori delle partite di calcio in base solo ai dati precedenti della stessa partita

Ho dati per diverse stagioni per tutte le squadre, ma ho i seguenti problemi che vorrei un consiglio con .. L'EPL (English Premier League) ha 20teams che si giocano a casa e fuori (380 partite totali in una stagione). Pertanto, in ogni stagione, le 2 squadre si giocano l'una con l'altra solo due volte.

Ho dati per gli ultimi 10+ anni, con conseguente 2 * 10 = 20 datapoint per le due squadre. Tuttavia, non voglio passare oltre 3 anni poiché ritengo che i team cambino abbastanza nel tempo (ManCity, Liverpool) e questo introdurrebbe solo più errori nel sistema.

Quindi questo si traduce in circa 6-8 punti di dati per ogni coppia di team. Tuttavia, ho diverse funzionalità (fino a 20+) per ogni punto di dati come obiettivi a tempo pieno, obiettivi a metà tempo, passaggi, tiri, gialli, rossi, ecc. Per entrambe le squadre, quindi posso includere caratteristiche come la forma recente, la casa recente forma, via di recente, ecc.

Tuttavia, l'idea di avere solo 6-8 punti di dati da addestrare sembra non essere corretta. Qualche idea su come potrei contrastare questo problema? (Se questo è un problema in primo luogo, ad es.)

Grazie!

MODIFICA: FWIW, ecco un collegamento al mio rapporto che ho compilato al completamento del mio progetto. https://www.dropbox.com/s/ec4a66ytfkbsncz/report.pdf. Non è una roba "fantastica", ma penso che alcune delle osservazioni che sono riuscito a suscitare siano state piuttosto interessanti (come la mia previsione ha funzionato molto bene per la Bundesliga perché il Bayern ha vinto il campionato tutto il tempo).

+0

Molto interessante. I tuoi set di dati sono pubblici in modo che anche altri possano sperimentarli? – schreon

+3

Sto usando questi http://www.football-data.co.uk/data.php – keithxm23

+0

@ keithxm23 quali strumenti hai usato? WEKA o minatore rapido? – user2137186

risposta

4

Questo è un problema interessante che non credo abbia una soluzione unica. Tuttavia, ci sono un paio di piccole cose che potrei provare se fossi nella tua posizione.

Condivido i dati relativi a circa 6-8 punti per classe di dati insufficienti per costruire un modello affidabile. Quindi proverei a modellare il problema in modo un po 'diverso. Per avere più dati per ogni classe, invece di avere 20 classi ne avrei solo due (casa/fuori) e aggiungerei due caratteristiche, una per il team che è in casa e l'altra per la squadra in trasferta. In questa configurazione, puoi ancora prevedere quale squadra vincerebbe se giocasse come casa o fuori, e il tuo problema ha più dati per produrre un risultato.

Un'altra idea sarebbe quella di prendere i dati da altri campionati europei. Dal momento che le squadre sono una caratteristica e non una classe, non dovrebbe aggiungere troppo rumore al tuo modello e potresti trarre beneficio dai dati aggiuntivi (supponendo che quelle funzioni siano valide in altri campionati)

+0

Hey, grazie per l'input Pedrom .. Sì, ho pensato di modellare i miei dati in questo modo .. Questo mi avrebbe permesso di avere circa 380 punti dati ogni stagione e questo potrei avere migliaia di punti di riferimento con cui lavorare. Tuttavia il problema che questo risolverebbe è solo "La possibilità della squadra di casa di vincere una partita" .. Restituirebbe lo stesso valore per, diciamo, una squadra di 3a Divisione che gioca una squadra della Champions League o per una squadra che gioca qualsiasi altra squadra a tutti .. – keithxm23

+1

@ keithxm23 Ehi, bello sapere di nuovo da te ... "La possibilità della squadra di casa di vincere una partita", non necessariamente. Dato che le tue caratteristiche includono la squadra di casa e la squadra ospite (e se includi ogni divisione come caratteristiche aggiuntive ancora meglio), l'uscita dovrebbe leggere "La possibilità della squadra di casa di vincere un gioco * dato * che la squadra di casa è A e fuori la squadra è B ". Ha senso? – Pedrom

+0

Oh! Quindi, per la squadra di casa, prevedi la possibilità di vincere dato il suo modulo di casa recente E poi per la squadra in trasferta, prevedi la possibilità di vincere vista la sua forma di trasferta recente .. e poi confronta queste 2 variabili e fai una predizione. Questa è un'ottima idea .. Quindi, stavo pensando a questo, come includere anche le conoscenze, in particolare sulle partite precedenti tra le due squadre (A e B), perché sono sicuro che avrebbe anche un valore immenso .. Quindi un'idea che ho pensato è stata, dopo aver calcolato in un punto nel tempo la "forma di casa" e la "via" per entrambe le squadre, anche calcolare come ciascuna squadra è andata .. – keithxm23

1

Non so se questo è ancora utile, ma funzionalità come obiettivi a tempo pieno, obiettivi a metà tempo, passaggi, colpi, gialli, rossi, ecc. sono caratteristiche che non si hanno per la nuova partita che si desidera classificare.

Tratterei questo come un problema di classificazione (si desidera classificare la corrispondenza in una delle 3 categorie: 1, X o 2) e aggiungere altre funzionalità che è possibile applicare anche alla nuova corrispondenza. cioè: il numero di giocatori mancanti (a causa di infortuni/cartellini rossi), il numero di vittorie/pareggi/sconfitte di ciascuna squadra immediatamente in fila PRIMA della partita, che è la squadra di casa (già citata), i gol segnati nel ultime partite in casa e fuori, ecc ...

Avere 6-8 partite è il vero problema.Questo set di dati è molto piccolo e ci sarebbe un sacco di over-fitting, ma se utilizzi funzionalità come quelle che ho citato, penso che potresti usare anche dati più vecchi.

1

Ho un sistema simile: una buona base per i dati di origine è football-data.co.uk. Ho usato le ultime N stagioni per ogni campionato e ho costruito un modello (credetemi, più di 3 anni è un must!). Dipende dalla tua funzione di criterio - se il criterio è più adatto o il massimo profitto puoi costruire il tuo modello di previsione.

Una cosa molto buona da sapere è che ogni campionato è diverso, anche il bookmaker dà diverse quote di vincita in casa sul favorito in Belgio rispetto alla quinta lega inglese, dove è possibile trovare quote di valore per esempio.

Al di fuori di questo è possibile compilare un modello interessante, ad esempio betting tips per battere i bookmaker su partite specifiche, utilizzando il modello e per avere scommesse di valore. Oppure puoi cercare di inseguire il maggior numero possibile di consigli per vincere, ma probabilmente guadagna meno (i pareggi guadagnano molti soldi anche se una minore quantità di pareggi sta vincendo).

Speriamo di averti dato qualche idea, per ulteriori informazioni non esitate a chiedere.