/// <summary>
        /// Sets up noise hyper-parameters.
        /// </summary>
        /// <param name="noiseHyperparameters">The noise hyper-parameters.</param>
        private void SetNoiseHyperparameters(NoiseHyperparameters noiseHyperparameters)
        {
            Debug.Assert(noiseHyperparameters != null, "Valid noise hyperparameters must be provided.");

            this.inferenceAlgorithm.AffinityNoiseVariance      = noiseHyperparameters.AffinityVariance;
            this.inferenceAlgorithm.UserThresholdNoiseVariance = noiseHyperparameters.UserThresholdVariance;
        }
Exemple #2
0
        /// <summary>
        /// Initializes a new instance of the <see cref="CommunityTrainingAlgorithm"/> class.
        /// </summary>
        /// <param name="iterationCount">The number of inference iterations to perform.</param>
        /// <param name="traitCount">The number of traits the algorithm will try to learn.</param>
        /// <param name="useSharedUserThresholds">Indicates whether to use shared user thresholds.</param>
        /// <param name="noiseHyperparameters">The noise-related hyper-parameters.</param>
        /// <param name="userHyperparameters">The user-related hyper-parameters.</param>
        /// <param name="itemHyperparameters">The item-related hyper-parameters.</param>
        /// <param name="userFeatureHyperparameters">The user feature related hyper-parameters.</param>
        /// <param name="itemFeatureHyperparameters">The item feature related hyper-parameters.</param>
        public CommunityTrainingAlgorithm(
            int iterationCount,
            int traitCount,
            bool useSharedUserThresholds,
            NoiseHyperparameters noiseHyperparameters,
            UserHyperparameters userHyperparameters,
            ItemHyperparameters itemHyperparameters,
            FeatureHyperparameters userFeatureHyperparameters,
            FeatureHyperparameters itemFeatureHyperparameters)
        {
            this.inferenceAlgorithm = new MatchboxCommunityTraining_EP();

            Debug.Assert(iterationCount > 0, "The number of iterations must be positive.");
            this.iterationCount = iterationCount;

            Debug.Assert(traitCount > 0, "The number of traits must be positive.");
            this.inferenceAlgorithm.TraitCount = traitCount;

            this.inferenceAlgorithm.UseSharedUserThresholds = useSharedUserThresholds;

            this.SetNoiseHyperparameters(noiseHyperparameters);
            this.SetUserHyperparameters(userHyperparameters);
            this.SetItemHyperparameters(itemHyperparameters);
            this.SetUserFeatureHyperparameters(userFeatureHyperparameters);
            this.SetItemFeatureHyperparameters(itemFeatureHyperparameters);
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="RatingPredictionAlgorithm"/> class.
 /// </summary>
 /// <param name="noiseHyperparameters">The noise hyper-parameters.</param>
 public RatingPredictionAlgorithm(NoiseHyperparameters noiseHyperparameters)
 {
     this.inferenceAlgorithm = new MatchboxRatingPrediction_EP();
     this.SetNoiseHyperparameters(noiseHyperparameters);
 }