Example #1
0
            /// <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);
            }
Example #2
0
        /// <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));
        }
Example #3
0
            /// <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);
            }
Example #4
0
            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);
            }
Example #5
0
            /// <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);
            }
Example #6
0
            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);
            }
Example #7
0
            /// <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);
            }