/// <summary> /// Gets the <see cref="BiasedCommunityModelRunner" /> results. /// </summary> /// <param name="runner"> /// The runner. /// </param> /// <returns> /// The dictionary of results. /// </returns> public static Dictionary <string, object> GetBiasedCommunityTrainingResults(ModelRunnerBase runner) { var result = GetModelTrainingResults(runner); if (runner is BiasedCommunityModelRunner biasedCommunityRunner) { var communityCpts = new Dictionary <string, Dirichlet[]>(); for (var i = 0; i < biasedCommunityRunner.CommunityCpt.Count; i++) { communityCpts[i.ToString()] = biasedCommunityRunner.CommunityCpt[i]; } var plottableCommunityCpts = PlotData.GetWorkerCpts( communityCpts, runner.DataMapping); var communityCptsPerc = PlotData.GetWorkerCpts( communityCpts, runner.DataMapping, true); result["CommunityCpts"] = plottableCommunityCpts; result["CommunityCptsPerc"] = communityCptsPerc; result["WorkerCommunities"] = biasedCommunityRunner.WorkerCommunities; result["WorkerCommunityCounts"] = biasedCommunityRunner.WorkerCommunityCounts; } return(result); }
/// <summary> /// Gets the <see cref="BiasedWorkerModelRunner" /> results. /// </summary> /// <param name="runner"> /// The runner. /// </param> /// <param name="maximumNumberWorkers"> /// The maximum number of workers for whom to return results.. /// </param> /// <returns> /// The dictionary of results. /// </returns> public static Dictionary <string, object> GetBiasedWorkerTrainingResults(ModelRunnerBase runner, int maximumNumberWorkers = 20) { var result = GetModelTrainingResults(runner); if (runner is BiasedWorkerModelRunner biasedWorkerRunner) { var prominentWorkers = GetProminentWorkers(runner.DataMapping.Data, maximumNumberWorkers); var prominentWorkerCpts = biasedWorkerRunner.WorkerCpt .Where(kvp => prominentWorkers.Contains(kvp.Key)).ToDictionary(kvp => kvp.Key, kvp => kvp.Value); var workerCpts = PlotData.GetWorkerCpts( prominentWorkerCpts, runner.DataMapping); var workerCptsPerc = PlotData.GetWorkerCpts( prominentWorkerCpts, runner.DataMapping, true); result["ProminentWorkerCpts"] = workerCpts; result["ProminentWorkerCpts"] = workerCptsPerc; } return(result); }