/// <summary> /// Predicts the results for given PMML and CSV file and serialize the results in a CSV file /// </summary> public Table PredictResult(Table inputTable, string pmmlPath) { //Get PMML Evaluator instance PMMLEvaluator evaluator = new PMMLEvaluatorFactory(). GetPMMLEvaluatorInstance(pmmlPath); string[] predictedCategories = null; //Predict the value for each record using the PMML Evaluator instance for (int i = 0; i < inputTable.RowCount; i++) { var iris = GetDataObject(inputTable, i); //Get result PredictedResult predictedResult = evaluator.GetResult(iris, null); if (i == 0) { //Get the predicted propability fields predictedCategories = predictedResult.GetPredictedCategories(); //Initialize the output table InitializeTable(inputTable.RowCount, predictedResult.PredictedField, predictedCategories); } //Add predicted value outputTable[i, 0] = predictedResult.PredictedValue; } return(outputTable); }
/// <summary> /// Predicts the results for given PMML and CSV file and serialize the results in a CSV file /// </summary> public Table PredictResult(Table inputTable, string pmmlPath) { Stream pmmlStream = new FileStream(pmmlPath, FileMode.Open, FileAccess.Read); //Get PMML Evaluator instance PMMLEvaluator evaluator = new PMMLEvaluatorFactory(). GetPMMLEvaluatorInstance(pmmlStream); string[] predictedCategories = null; //Predict the value for each record using the PMML Evaluator instance for (int i = 0; i < inputTable.RowCount; i++) { var audit = GetDataObject(inputTable, i); //Get result PredictedResult predictedResult = evaluator.GetResult(audit, null); if (i == 0) { //Get the predicted propability fields predictedCategories = predictedResult.GetPredictedCategories(); //Initialize the output table InitializeTable(inputTable.RowCount, predictedResult.PredictedField, predictedCategories); } //Add predicted value outputTable[i, 0] = predictedResult.PredictedValue; for (int j = 1; j <= predictedCategories.Length; j++) { outputTable[i, j] = predictedResult.GetPredictedProbability(predictedCategories[j - 1]); } } return(outputTable); }
/// <summary> /// Predicts the results for given PMML and CSV file and serialize the results in a CSV file /// </summary> public Syncfusion.PMML.Table PredictResult(string[] input, string pmmlPath) { //Get PMML Evaluator instance PMMLEvaluator evaluator = new PMMLEvaluatorFactory(). GetPMMLEvaluatorInstance(pmmlPath); string[] predictedCategories = null; int i = 0; foreach (string s in input) { string[] words = s.Split(' '); var record = new { field_0 = words[0], field_1 = words[1], field_2 = words[2] }; PredictedResult predictedResult = evaluator.GetResult(record, null); if (i == 0) { //Get the predicted propability fields predictedCategories = predictedResult.GetPredictedCategories(); //Initialize the output table InitializeTable(input.Length, predictedCategories); } //Add predicted value outputTable[i, 0] = predictedResult.PredictedValue; i++; } return(outputTable); }
/// <summary> /// Gets predicted result of input values as observable collection /// </summary> /// <param name="inputTable">current page input values</param> /// <param name="pageSize">page size</param> /// <returns>observable collection of predicted results</returns> private ObservableCollection <BusinessObject> PredictResult(Table inputTable, int pageSize) { //Get PMML Evaluator instance PMMLEvaluator evaluator = new PMMLEvaluatorFactory(). GetPMMLEvaluatorInstance(viewModel.GetPMMLPath(pmmlPath)); //Initialize the output table InitializeTable(inputTable.RowCount); //Gets the start index of page selected int startIndex = sfDataPager.PageIndex * sfDataPager.PageSize; //Predict the value for each record using the PMML Evaluator instance for (int i = 0; i < inputTable.RowCount; i++) { //Get input values as dictionary object Dictionary <string, object> iris = inputTable.ColumnNames.ToDictionary(column => column, column => inputTable[i, column]); //Get result PredictedResult predictedResult = evaluator.GetResult(iris, null); //Add predicted value outputTable[i, 0] = predictedResult.PredictedValue; for (int j = 1; j <= predictedResult.GetPredictedCategories().Length; j++) { outputTable[i, j] = predictedResult.GetPredictedProbability(predictedResult.GetPredictedCategories()[j - 1]); } //Adds predicted species result to the collection for visualization if (!predictedSpeciesCollection.ContainsKey((startIndex + i + 1).ToString())) { iris.Add("predictedSpecies", predictedResult.PredictedValue); iris.Add("species_Setosa", predictedResult.GetPredictedProbability(predictedResult.GetPredictedCategories()[0])); iris.Add("species_Versicolor", predictedResult.GetPredictedProbability(predictedResult.GetPredictedCategories()[1])); iris.Add("species_Virginica", predictedResult.GetPredictedProbability(predictedResult.GetPredictedCategories()[2])); predictedSpeciesCollection.Add((startIndex + i + 1).ToString(), iris); } } // Merges the selected page inputs and their output values var result = viewModel.MergeTable(inputTable, outputTable, inputDataTable); return(result); }
/// <summary> /// Predicts the results for given PMML and CSV file and serialize the results in a CSV file /// </summary> public Table PredictResult(string[] input, string pmmlPath) { //Get PMML Evaluator instance PMMLEvaluator evaluator = new PMMLEvaluatorFactory(). GetPMMLEvaluatorInstance(pmmlPath); string[] predictedCategories = null; int i = 0; foreach (string s in input) { string[] predictedandInput = s.Split(','); string[] inputField = predictedandInput[1].Split(' '); var record = new { field_0 = inputField[0], field_1 = inputField[1], field_2 = inputField[2], field_3 = inputField[3], field_4 = inputField[4], field_5 = inputField[5], field_6 = inputField[6], field_7 = inputField[7] }; PredictedResult predictedResult = evaluator.GetResult(record, null); if (i == 0) { //Get the predicted propability fields predictedCategories = predictedResult.GetPredictedCategories(); //Initialize the output table InitializeTable(input.Length, predictedCategories); } //Add predicted value outputTable[i, 0] = predictedResult.PredictedDoubleValue; i++; } return(outputTable); }