Ninjas Practicing Multidimensionality

    soccer-predictor

    0.0.2 • Public • Published

    Soccer Predictor

    Latest npm version Build Status Dependency Status devDependency Status Test Coverage

    A JS library that predicts soccer match outcomes using basic mathematics.

    Installation

    Use yarn or npm to install.

    yarn add soccer-predictor           # yarn 
    npm install soccer-predictor --save # npm 

    Install locally

    git clone https://github.com/CookPete/soccer-predictor.git
    cd soccer-predictor
    yarn # or npm install 
    npm run build

    Testing locally

    npm test # Run tests 

    Usage

    import { analyseResults, calculateProbabilities } from 'soccer-predictor'
     
    // Some basic example data
    const results = [
      { homeTeam: 'Team A', awayTeam: 'Team B', homeGoals: 1, awayGoals: 0 },
      { homeTeam: 'Team B', awayTeam: 'Team C', homeGoals: 2, awayGoals: 1 },
      { homeTeam: 'Team C', awayTeam: 'Team A', homeGoals: 1, awayGoals: 3 }
    ]
     
    // Function to map match data to soccer-predictor data
    function getMatchDetails (match) {
      return {
        homeTeamName: match.homeTeam,
        awayTeamName: match.awayTeam,
        homeGoals: match.homeGoals,
        awayGoals: match.awayGoals
      }
    }
     
    // Parse results into an array of teams with calculated stats
    const teams = analyseResults(results, getMatchDetails)
     
    // Use calculateProbabilities to calculate the chance of
    // various outcomes of a match between two teams
    const probabilities = calculateProbabilities(teams[0], teams[1])
     
    console.log(probabilities.result) // Probability of a home win, away win or draw
    // {
    //   home: 0.657541673613264,
    //   draw: 0.252533180170396,
    //   away: 0.089924594462736
    // }
     
    console.log(probabilities.scores[1][0]) // Probability of a 1-0 result
    // 0.2300324502673927
     
    console.log(probabilities.over['2.5']) // Probability of over 2.5 goals
    // 0.2895346409101279
     
    console.log(probabilities.btts.yes) // Probability of both teams to score
    // 0.2429353553660894
     

    For more examples, see examples.

    FAQ

    How does it work?

    There are plenty of articles available that go into depth about basic poisson prediction. Essentially the library parses a series of match results and provides functions to return a rough percentage likelyhood of various outcomes of a match between two teams.

    Further reading:

    Isn’t it called football?

    Yes, but football-predictor seems too ambigious. Everyone knows what soccer is.

    Keywords

    none

    Install

    npm i soccer-predictor

    DownloadsWeekly Downloads

    4

    Version

    0.0.2

    License

    CC0-1.0

    Last publish

    Collaborators

    • cookpete