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 } }
public void ValidateAllAttributesInIMLModels(IMLModel model) { Assert.True(Validator.TryValidateObject(model, new ValidationContext(model), null, true) , $"IMLModel {model.GetType()} is not validate"); }
public Engine(ILogger <Engine> logger, IPipeline pipeline, IMLModel mlModel, IAFINN afinn) { mainPredictor = mlModel; secondOpinionPredictor = afinn; _logger = logger; _pipeline = pipeline; }
/// <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); }
/// <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; }