private static SupportVectorRegressionSolution SvmGridSearch(IRegressionProblemData problemData, out svm_parameter bestParameters, out int nSv, out double cvMse)
    {
        bestParameters = SupportVectorMachineUtil.GridSearch(out cvMse, problemData, svmParameterRanges, numberOfFolds, shuffleFolds, maximumDegreeOfParallelism);
        double trainingError, testError;
        string svmType      = svmTypes[bestParameters.svm_type];
        string kernelType   = kernelTypes[bestParameters.kernel_type];
        var    svm_solution = SupportVectorRegression.CreateSupportVectorRegressionSolution(problemData, problemData.AllowedInputVariables, svmType, kernelType,
                                                                                            bestParameters.C, bestParameters.nu, bestParameters.gamma, bestParameters.eps, bestParameters.degree, out trainingError, out testError, out nSv);

        return(svm_solution);
    }
        /***************************************************/

        public static PyObject ToPython(this SupportVectorRegression regressor)
        {
            return(regressor.SkLearnModel);
        }
        /*************************************/

        public static Tensor Infer(SupportVectorRegression model, Tensor x)
        {
            return(new Tensor(BH.Engine.MachineLearning.Base.Compute.Invoke(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Namespace, "SupportVectorRegression.infer", model, x)));
        }