Я пытаюсь создать модель TrueSkill с двумя командами и 5 игроками с anfer.net. Однако при выводе навыков, средства распространения становятся слишком большими или маленькими. Несмотря на то, что я использую выдуманные игроки и матчи здесь, я получаю аналогичные результаты с данными из реального мира. < /P>
Я подозреваю, что подводя выступления игроков команды - это проблема, поскольку при ограничении отдельных результатов в соответствии с результатами дают разумные оценки навыков.
Я пытаюсь создать модель TrueSkill с двумя командами и 5 игроками с anfer.net. Однако при выводе навыков, средства распространения становятся слишком большими или маленькими. Несмотря на то, что я использую выдуманные игроки и матчи здесь, я получаю аналогичные результаты с данными из реального мира. < /P> [code]using Microsoft.ML.Probabilistic.Distributions; using Microsoft.ML.Probabilistic.Factors; using Microsoft.ML.Probabilistic.Models; using Microsoft.ML.Probabilistic.Collections; using Microsoft.Data.Analysis; using System; using System.Collections.Generic; using System.Linq; using System.Numerics; using System.Text; using System.Threading.Tasks; using System.Collections; using System.Security.Cryptography; using System.IO; using System.Security.Policy; using System.Reflection;
var nGames = 32; var nPlayers = 10; var mu = 25.0; var sigma = 8.333; var beta = 4.1667;
var teamSize = new Range(5).Named("TeamSize"); var games = new Range(nGames).Named("Game"); var players = new Range(nPlayers).Named("Player");
var playerSkills = Variable.Array(players).Named("Skill");
var winner_lineups = Variable.Array(Variable.Array(teamSize), games).Named("t1Lineups"); var loser_lineups = Variable.Array(Variable.Array(teamSize), games).Named("t2Lineups");
var w_performances = Variable.Array(Variable.Array(teamSize), games); var l_performances = Variable.Array(Variable.Array(teamSize), games);
using (Variable.ForEach(players)) { playerSkills[players] = Variable.GaussianFromMeanAndPrecision(mu, 1 / (sigma* sigma));
}
using (var game = Variable.ForEach(games)) { var gameIndex = game.Index; using (var n = Variable.ForEach(teamSize)) { var playerIndex = n.Index; w_performances[gameIndex][playerIndex] = Variable.GaussianFromMeanAndPrecision(playerSkills[winner_lineups[gameIndex][playerIndex]], 1 / (beta* beta)).Named("w_player_performance"); l_performances[gameIndex][playerIndex] = Variable.GaussianFromMeanAndPrecision(playerSkills[loser_lineups[gameIndex][playerIndex]], 1 / (beta* beta)).Named("l_player_perfomance"); }
}
var w_performance = Variable.Sum(w_performances[games]); var l_performance = Variable.Sum(l_performances[games]); Variable.ConstrainTrue(w_performance > l_performance);
var inferenceEngine = new InferenceEngine(); inferenceEngine.NumberOfIterations = 10; var inferredSkills = inferenceEngine.Infer(playerSkills);
foreach(var playerSkill in inferredSkills) { Console.WriteLine(playerSkill); }
}
} } < /code> output: < /p> Compiling model...done. Iterating: .........| 10 Gaussian(25, 69,44) Gaussian(25, 69,44) Gaussian(25, 69,44) Gaussian(25, 69,44) Gaussian(-6,574e+04, 26,68) Gaussian(-4,68e+04, 14,8) Gaussian(-4,889e+04, 10,78) Gaussian(-4,889e+04, 10,78) Gaussian(-4,889e+04, 10,78) Gaussian(-4,889e+04, 10,78) [/code] Использование TrueSkillThroughtime https://github.com/glandfred/trueskillthroughtime.py с теми же образцами данных и значениями, которые должны соответствовать той же модели, дают следующие результаты: [code]N(mu=26.223, sigma=3.618) N(mu=26.223, sigma=3.618) N(mu=26.223, sigma=3.618) N(mu=26.223, sigma=3.618) N(mu=16.821, sigma=3.618) N(mu=33.179, sigma=3.618) N(mu=23.777, sigma=3.618) N(mu=23.777, sigma=3.618) N(mu=23.777, sigma=3.618) N(mu=23.777, sigma=3.618) [/code] Я подозреваю, что подводя выступления игроков команды - это проблема, поскольку при ограничении отдельных результатов в соответствии с результатами дают разумные оценки навыков.
Я использую Trueskill, чтобы попытаться создать систему рейтингов для теннисного турнира среди моих друзей. Игры проводятся 1 на 1, поэтому я пробую следующее:
from trueskill import Rating, quality_1vs1, rate_1vs1
Я использую Trueskill, чтобы попытаться создать систему рейтингов для теннисного турнира среди моих друзей. Игры проводятся 1 на 1, поэтому я пробую следующее:
from trueskill import Rating, quality_1vs1, rate_1vs1
У меня есть довольно простой скрипт, который я хочу использовать для вызова команды каждый час для бота Discord. Проблема в том, что Discord не распознает команду, которую я отправляю, как команду, а только как сообщение. Например, «/cooldown»...