private double CalculatePlayerFixturePredictedScore(FutureFixture futureFixture, PlayerForm playerForm, IList<Player> allPlayers) { var oppositionStrength = _teamStrengthCalculator.CalculateTeamStrength(futureFixture.OppositionClubCode, allPlayers); var formRelativeToOppositionStrength = playerForm.NormalisedPointsPerGame / oppositionStrength.TeamStrengthMultiplier; var locationRatio = futureFixture.Home ? _predictorParameters.HomeAdvantageMultiplier : 1 / _predictorParameters.HomeAdvantageMultiplier; return formRelativeToOppositionStrength * locationRatio; }
private static void LogPlayerForm(Player player, PlayerForm playerForm, ILogger logger) { logger.Log(Tag.Prediction, string.Format("{0} {1} - Previous Season: {2} mins, {3} pts", playerForm.NormalisedPointsPerGame.ToFormatted(), player.Name, playerForm.PreviousSeasonMinutesPlayed, playerForm.PreviousSeasonTotalPointsScored)); }
private PlayerForm CreatePlayerFormFromPastSeason(Season season) { var playerForm = new PlayerForm(); if (season != null && season.MinutesPlayed > 0) { playerForm.PreviousSeasonTotalPointsScored = season.TotalPointsScored; playerForm.PreviousSeasonMinutesPlayed = season.MinutesPlayed; var pointsPerMinute = season.TotalPointsScored / (double)season.MinutesPlayed; playerForm.NormalisedPointsPerGame = pointsPerMinute * 90; } return playerForm; }