numaralı web sitesine Python
API'sini kullanarak bahis koyan bir bot yazma sürecindeyim. Oyundayken futbol (futbol) maçlarına bahis oynamak istiyorum.Python'da Probabalistic Dize Eşleştirme
Oyunlardan canlı veriler vermek için bir XML feed'i kodladım, ancak XML feed'i Betfair'in kullandığı her zaman futbol takımları için aynı adı kullanmaz. Örneğin, Manchester United Betfair'e atıfta bulunulduğunda, örneğin "Man United" veya "Man United" ya da başka bir varyant kullanılsa da "Man Utd" kullanabilir. Popüler pazarlarla sınırlı değilim, bu yüzden standart bir Betfair'e XML ad dönüştürme tablosunu oluşturmak mümkün değil.
İki veri kaynağının aynı ekiplere başvurduğunu gösteren bazı bilgiler vermek için bir çeşit olasılık dizesi eşleştirmesi kullanmaya çalışıyorum.
Şimdiye kadar Papaz ile oynadım ancak ben train
guesser
karakter içine dizesini kırmak zorunda gibi ben düzgün kullanıyorum sanmıyorum, bazı Bayes hesaplamaları yapmak için görünüyor. Daha sonra her bir harfin her bir isimle ilişkilendirilme olasılığını ortalarım, bunun matematiksel olarak yanlış olduğunun farkındayım ama bunun uygun bir sezgisel test olabileceğini düşündüm. Geçerli kurulum ile üretilen
import scorefeed
from reverend.thomas import Bayes
guesser = Bayes()
teams=['home','away']
def train(team_no, name):
for char in name:
guesser.train(teams[team_no], char)
def untrain(team_no, name):
for char in name:
guesser.untrain(teams[team_no], char)
def guess(name):
home_guess = 0.0
away_guess = 0.0
for char in name:
if len(guesser.guess(char)) > 0:
for guess in guesser.guess(char):
if guess[0] == teams[0]:
home_guess = home_guess + guess[1]
print home_guess
if guess[0] == teams[1]:
away_guess = away_guess + guess[1]
print away_guess
home_guess = home_guess/float(len(name))
away_guess = away_guess/float(len(name))
probs = [home_guess, away_guess]
return probs
def game_match(betfair_game_string, feed_home, feed_away):
home_team = betfair_game_string[0:betfair_game_string.find(' V ')]
away_team = betfair_game_string[betfair_game_string.find('V')+2:len(betfair_game_string)]
train(0, home_team)
train(1, away_team)
probs = []
probs.append(guess(feed_home)[0])
probs.append(guess(feed_away)[1])
untrain(0, home_team)
untrain(1, away_team)
return probs
print game_match("Man Utd V Lpool", "Manchester United", "Liverpool")
olasılık [0.4705411764705883, 0.5555]
geçerli:
İşte benim kodudur. Herhangi bir fikir veya gelişme için çok minnettar olurum.
DÜZENLEME: Başka bir düşüncem vardı, bunun Betfair ve feed'deki aynı eşleşme olasılığı olmasını istiyorum. Ama bu bana ilk ismin eşleşmesi olasılığını ve ikinci ismin eşleşmesini sağlıyor. Birinci ve ikinci isimlerin eşleşmesi olasılığını bulmam gerek. Benim olasılık düzelterek üzerine
def prob_match(probs):
prob_not_home = 1.0 - probs[0]
prob_not_away = 1.0 - probs[1]
prob_not_home_and_away = prob_not_home*prob_not_away
prob_home_and_away = 1.0 - prob_not_home_and_away
return prob_home_and_away
Hala farklı yöntemlerle veya mevcut aynı şeyi yapmak kütüphaneler veya ipuçları önerileri için önerilerinizi takdir ederiz: Bu nedenle bana daha makul sonuçlar verir görünmektedir aşağıdaki işlevini kodlu var hesaplamaları.
Bu sorunu çözdünüz mü? – briankip
Hiçbir zaman doğru bir şekilde çözmedim, bulduğum en iyi çözüm düzenlemeye koyduğum şeyi kullanmaktı. Günümüzde denemek istediğim birkaç şey var, belki de iki dizenin soundex kodlamasını karşılaştırmak, ya da LSTM ya da bir şey kullanarak tekrarlayan bir sinir ağı. – James