Ejemplo n.º 1
0
 public static void TrainConveyorInvoke(AppConfig newAppConfig, string modelCreateQuery)
 {
     ForecastTrainer.TrainConveyor(newAppConfig, modelCreateQuery, "LightGbm");
     ForecastTrainer.TrainConveyor(newAppConfig, modelCreateQuery, "FastTree");
     ForecastTrainer.TrainConveyor(newAppConfig, modelCreateQuery, "LbfgsPoissonRegression");
     ForecastTrainer.TrainConveyor(newAppConfig, modelCreateQuery, "FastTreeTweedie");
     ForecastTrainer.TrainConveyor(newAppConfig, modelCreateQuery, "FastForest");
     ForecastTrainer.TrainConveyor(newAppConfig, modelCreateQuery, "Sdca");
     //Not work with R2Threshold in model
     ForecastTrainer.TrainConveyor(newAppConfig, modelCreateQuery, "Ols");
 }
Ejemplo n.º 2
0
        static void Main(string[] args)
        {
            AppConfig newAppConfig     = new AppConfig();
            string    modelCreateQuery = "SELECT CAST(SkillId as varchar(100)) as SkillId, CAST(AgentsOnCall as REAL) as AgentsOnCall, CAST(PrevCallsCount as REAL) as QueueLength, CAST(BaseAvailAgents as REAL) as BaseAvailAgents, CAST(R1AvailAgents as REAL) as R1AvailAgents, CAST(R2AvailAgents as REAL) as R2AvailAgents,CAST(R1Threshold as REAL) as R1Threshold,CAST(R2Threshold as REAL) as R2Threshold, CAST(WaitTime as REAL) as WaitTime FROM _EwtCalls2";


            ForecastTrainer.TrainConveyorInvoke(newAppConfig, modelCreateQuery);

            //ForecastExecutor.ExecuteConveyor(newAppConfig, modelCreateQuery);

            Console.WriteLine("Press Enter");
            Console.ReadLine();
        }
Ejemplo n.º 3
0
        public static void TrainConveyor(AppConfig appConfig, string modelCreateQuery, string TrainerType)
        {
            string    _modelSaveBasePath = TrainerType + "Model.zip";
            string    _modelSaveFullPath = Path.Combine(Environment.CurrentDirectory, "Data", _modelSaveBasePath);
            MLContext mlContext          = new MLContext();
            IDataView dataView           = Program.DataExtract(mlContext, appConfig, modelCreateQuery);

            DataOperationsCatalog.TrainTestData dataSplit = mlContext.Data.TrainTestSplit(dataView, testFraction: 0.2);
            IDataView trainData    = dataSplit.TrainSet;
            IDataView testData     = dataSplit.TestSet;
            var       basePipeline = BasePipelineBuilder(mlContext, trainData);

            ITransformer waitTimeModel = null;

            switch (TrainerType)
            {
            case "LightGbm":
                waitTimeModel = ForecastTrainer.WaitTimeTrainWithLightGbm(mlContext, trainData, basePipeline);
                break;

            case "FastTree":
                waitTimeModel = ForecastTrainer.WaitTimeTrainWithFastTree(mlContext, trainData, basePipeline);
                break;

            case "LbfgsPoissonRegression":
                waitTimeModel = ForecastTrainer.WaitTimeTrainWithLbfgsPoissonRegression(mlContext, trainData, basePipeline);
                break;

            case "FastTreeTweedie":
                waitTimeModel = ForecastTrainer.WaitTimeTrainWithFastTreeTweedie(mlContext, trainData, basePipeline);
                break;

            case "FastForest":
                waitTimeModel = ForecastTrainer.WaitTimeTrainWithFastForest(mlContext, trainData, basePipeline);
                break;

            case "Sdca":
                waitTimeModel = ForecastTrainer.WaitTimeTrainWithSdca(mlContext, trainData, basePipeline);
                break;

            case "Ols":
                waitTimeModel = ForecastTrainer.WaitTimeTrainWithOls(mlContext, trainData, basePipeline);
                break;

            default:
                waitTimeModel = ForecastTrainer.WaitTimeTrainWithLightGbm(mlContext, trainData, basePipeline);
                break;
            }
            mlContext.Model.Save(waitTimeModel, dataView.Schema, _modelSaveFullPath);
            EvaluateWaitTime(mlContext, waitTimeModel, testData, TrainerType);
        }