LibSvmDemo.Demo.DemoHelper.Sinc C# (CSharp) Method

Sinc() public static method

public static Sinc ( double x ) : double
x double
return double
        public static double Sinc(double x)
        {
            return x == 0 ? 1 : Math.Sin(x) / x;
        }

Usage Example

Exemplo n.º 1
0
        public static void Run()
        {
            Console.WriteLine("EpsSVRDemo");
            var rnd = new Random();

            var trainData = DemoHelper.Range(-10.0, 10.01, 0.1).Select(val => new { X = val, Y = DemoHelper.Sinc(val) + (rnd.NextDouble() - 0.5) / 4 });

            var parameters = new SvmParameter
            {
                SvmType     = SvmType.EPSILON_SVR,
                KernelType  = KernelType.Rbf,
                Gamma       = 0.5,
                CacheSize   = 128,
                C           = 1,
                Eps         = 1e-3,
                P           = 0.1,
                Shrinking   = true,
                Probability = false
            };

            var problem = new SvmProblem
            {
                Y = trainData.Select(p => p.Y).ToArray(),
                X = trainData.Select(p => p.X.ToSvmNodes()).ToArray()
            };

            parameters.Check(problem);

            var model = Svm.Train(problem, parameters);

            foreach (var item in DemoHelper.Range(-1.0, 1.01, 0.1))
            {
                var x     = item.ToSvmNodes();
                var yPred = model.Predict(x);
                var yReal = DemoHelper.Sinc(item);
                Console.WriteLine("x: {0}", item);
                Console.WriteLine("y_real: {0}", yReal);
                Console.WriteLine("y_pred: {0}", yPred);
                Console.WriteLine();
            }
        }