コード例 #1
0
        public void Train(IWebApplication webApplication, IMLModel mlModel)
        {
            foreach (string watcher in this.Watchers)
            {
                Core.UIMatrix.AddElement(webApplication, watcher);
            }

            foreach (ModelDefinitionState validModel in this.Valid)
            {
                var validation = validModel.RunValidation(webApplication, mlModel,
                                                          this, validModel, true);
#if TRACE
                Console.WriteLine($"Validation matrix: {validation}");
#endif
            }

            foreach (ModelDefinitionState validModel in this.Invalid)
            {
                var validation = validModel.RunValidation(webApplication, mlModel,
                                                          this, validModel, false);
#if TRACE
                Console.WriteLine($"Validation matrix: {validation}");
#endif
            }
        }
コード例 #2
0
 public void ValidateAllAttributesInIMLModels(IMLModel model)
 {
     Assert.True(Validator.TryValidateObject(model,
                                             new ValidationContext(model),
                                             null, true)
                 , $"IMLModel {model.GetType()} is not validate");
 }
コード例 #3
0
 public Engine(ILogger <Engine> logger, IPipeline pipeline, IMLModel mlModel, IAFINN afinn)
 {
     mainPredictor          = mlModel;
     secondOpinionPredictor = afinn;
     _logger   = logger;
     _pipeline = pipeline;
 }
コード例 #4
0
        /// <summary>
        /// Run 'valid' and 'invalid' validations.
        /// </summary>
        /// <param name="webApplication">Web application handler.</param>
        /// <param name="mlModel">ML model context.</param>
        /// <param name="modelDefiner">Model definer context.</param>
        /// <param name="validModel">Valid or invalid model context.</param>
        /// <param name="valid">Validity.</param>
        /// <returns>Matrix.</returns>
        public IList <double> RunValidation(IWebApplication webApplication, IMLModel mlModel, IModelDefinition modelDefiner, IModelDefinitionState validModel, bool valid)
        {
            Core.UIMatrix.Init(webApplication);

            foreach (string watcher in modelDefiner.Watchers)
            {
                Core.UIMatrix.AddElement(webApplication, watcher);
            }

            foreach (ModelDefinitionAction action in validModel.Actions)
            {
                switch (action.Action)
                {
                case "SetValue":
                    Application.DOM.IDomElement genericElement =
                        new GenericElement(webApplication.Driver)
                    {
                        Name = action.Selector
                    };

                    (genericElement as GenericElement).SetValue(action.Value?.ToString());
                    break;
                }
            }

            IList <double> matrix =
                Core.UIMatrix.CalculateMatrices(webApplication);

            mlModel.WriteDataToCsv(csvFilePath: "Data/modelData.csv",
                                   features: matrix, validity: valid);

            webApplication.Driver.Navigate().GoToUrl(webApplication.Url);

            return(matrix);
        }
コード例 #5
0
        /// <summary>
        /// Run Bayes Point Machine.
        /// </summary>
        /// <param name="mlModel">Machine learning model context.</param>
        /// <param name="y">Y feature.</param>
        /// <param name="w">Features vector.</param>
        public static void Run(IMLModel mlModel, VariableArray <bool> y, Variable <Vector> w)
        {
            // Get Y feature range.
            Range j = y.Range.Named("metal");

            // Vector data of incomes length.
            Vector[] xdata = new Vector[mlModel.Data.Count()];

            // Vector data.
            xdata = (from dblArr in (from data in mlModel.Data
                                     select(from d in data select d))
                     select Vector.FromList(dblArr.ToList())).ToArray();

            // Create observed variable based on xdata with validity range.
            VariableArray <Vector> obs = Variable.Observed(xdata, j).Named("obs");

            // Create noise.
            double noise = mlModel.Noise;

            y[j] = Variable.GaussianFromMeanAndVariance(Variable.InnerProduct(w, obs[j]).Named("innerProduct"), noise) > 0;
        }