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"); }
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(); }
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); }