Basic UsageΒΆ
The sports-betting package provides a set of classes that help to download sports betting data. Additionally, it includes a backtesting engine to evaluate the performance of machine learning models.
The dataloader objects and their methods can be used to download sports
betting data. For each data source or combination of data sources a
corresponding dataloader class is provided. For example, the
FTESoccerDataLoader
class can be used to
download soccer historical data and fixtures from FiveThirtyEight:
from sportsbet.datasets import FTESoccerDataLoader
dataloader = FTESoccerDataLoader()
X_train, Y_train, O_train = dataloader.extract_train_data()
X_fix, Y_fix, O_fix = dataloader.extract_fixtures_data()
Similarly the, FDSoccerDataLoader
class can be used to download
soccer historical data and fixtures from Football-Data.co.uk:
from sportsbet.datasets import FDSoccerDataLoader
dataloader = FDSoccerDataLoader(param_grid={'league': ['Italy', 'Spain'], 'year': [2019, 2020]})
X_train, Y_train, O_train = dataloader.extract_train_data(odds_type='pinnacle')
X_fix, Y_fix, O_fix = dataloader.extract_fixtures_data()
There is also a dataloader that combines the above two sources:
from sportsbet.datasets import SoccerDataLoader
dataloader = SoccerDataLoader(param_grid={'league': ['France'], 'year': [2019, 2020]})
X_train, Y_train, O_train = dataloader.extract_train_data(odds_type='pinnacle')
X_fix, Y_fix, O_fix = dataloader.extract_fixtures_data()
Bettor classes like ClassifierBettor
provide an easy way to backtest a model and get the value bets:
from sportsbet.evaluation import ClassifierBettor
num_features = [
col
for col in X_train.columns
if X_train[col].dtype in (np.dtype(int), np.dtype(float))
]
X_train = X_train[num_features]
bettor = ClassifierBettor(KNeighborsClassifier())
bettor.backtest(X_train, Y_train, O_train)
value_bets = bettor.bet(X_fix[num_features], O_fix)