/// <summary> /// Create a script generation query. /// </summary> /// <param name="model">The model to use.</param> /// <param name="ds">The donut script to create a python script for.</param> /// <returns></returns> public static OrionQuery CreateScriptGenerationQuery(Model model, IDonutScript ds) { var qr = new OrionQuery(OrionOp.CreateScript); var p = new JObject(); var features = new JArray(); var ign = model.GetRootIntegration(); var sourceCol = ign.GetModelSourceCollection(model); foreach (var feature in ds.Features) { JToken ftrObj = FeatureToJson(feature); features.Add(ftrObj); } BsonDocument featuresDoc = MongoHelper.GetCollection(sourceCol).AsQueryable().FirstOrDefault(); var featuresCols = featuresDoc.Elements.Where(x => x.Name != "_id"); JToken dataFlags = GetModelDataFlags(model, featuresCols); var targets = CreateTargetsDef(ds.Targets.ToArray()); p["features"] = features; p["targets"] = targets; p["model_id"] = model.Id; p["data_flags"] = dataFlags; p["use_featuregen"] = model.UseFeatures; qr["params"] = p; return(qr); }
/// <summary> /// /// </summary> /// <param name="orionQuery"></param> /// <returns></returns> public async Task <JToken> Query(OrionQuery orionQuery) { if (orionQuery is null) { return(null); } var token = orionQuery.Serialize(); return(await Query(token)); }
/// <summary> /// /// </summary> /// <param name="url"></param> /// <param name="formatting"></param> /// <returns></returns> public static OrionQuery CreateDataDescriptionQuery(string url, JObject formatting) { var qr = new OrionQuery(OrionOp.AnalyzeFile); var fileParams = new JObject(); fileParams["src"] = url; fileParams["src_type"] = "collection"; fileParams["formatting"] = formatting; qr["params"] = fileParams; return(qr); }
public static OrionQuery CreateDataDescriptionQuery(DataIntegration ign, IEnumerable <ModelTarget> targets) { var qr = new OrionQuery(OrionOp.AnalyzeFile); var data = new JObject(); data["src"] = ign.Collection; data["src_type"] = "collection"; data["targets"] = CreateTargetsDef(targets.ToArray()); data["formatting"] = new JObject(); qr["params"] = data; return(qr); }
/// <summary> /// /// </summary> /// <param name="url"></param> /// <param name="formatting"></param> /// <returns></returns> public static OrionQuery CreateProjectGenerationRequest(TrainingTask task) { var qr = new OrionQuery(OrionOp.GenerateProject); var fileParams = new JObject(); var groupBy = new JObject(); var script = task.Script; //groupBy["hour"] = 0.5; //groupBy["day_unix"] = true; fileParams["script"] = GetTrainingScript(new [] { task }); fileParams["client"] = task.User.UserName; fileParams["name"] = task.Model.ModelName; qr["msg"] = fileParams; return(qr); }
public static OrionQuery CreateTargetParsingQuery(Model newModel) { if (newModel.Targets == null || newModel.Targets.Count == 0) { return(null); } var qr = new OrionQuery(OrionOp.ParseTargets); var fileParams = new JObject(); var collections = new JArray(); var rootCollection = newModel.GetFeaturesCollection(); collections.Add(rootCollection); fileParams["targets"] = CreateTargetsDef(newModel.Targets.ToArray()); fileParams["collections"] = collections; qr["params"] = fileParams; return(qr); }
/// <summary> /// TODO: Simplify /// </summary> /// <param name="model"></param> /// <param name="ign"></param> /// <param name="trainingTasks"></param> /// <returns></returns> public static OrionQuery CreateTrainQuery( Model model, DataIntegration ign, IEnumerable <TrainingTask> trainingTasks) { var rootIntegration = ign; var qr = new OrionQuery(OrionOp.Train); var parameters = new JObject(); var models = new JObject(); var dataOptions = new JObject(); var autoModel = new JObject(); trainingTasks = trainingTasks.ToList(); var flags = GetModelDataFlags(model, null); parameters["client"] = model.User.UserName; parameters["experiment_name"] = $"Model{model.Id}"; //Todo update.. parameters["targets"] = CreateTargetsDef(model.Targets.ToArray()); parameters["tasks"] = new JArray(trainingTasks.Select(x => x.Id).ToArray()); parameters["script"] = GetTrainingScript(trainingTasks); models["auto"] = autoModel; // GridSearchCV - param_grid var sourceCol = ign.GetModelSourceCollection(model); dataOptions["db"] = sourceCol; dataOptions["start"] = null; dataOptions["end"] = null; dataOptions["scoring"] = "auto"; dataOptions["collection"] = flags["collection"]; //Get fields from the mongo collection, these would be already generated features, so it's safe to use them BsonDocument featuresDoc = MongoHelper.GetCollection(sourceCol).AsQueryable().FirstOrDefault(); var fields = GetFieldsList(featuresDoc, rootIntegration); dataOptions["fields"] = fields; parameters["models"] = models; parameters["options"] = dataOptions; parameters["model_id"] = model.Id; qr["params"] = parameters; return(qr); }