Beispiel #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();
            }
        }
Beispiel #2
0
        public static void Run()
        {
            Console.WriteLine("CSVMDemo");
            var class1 = DemoHelper.GenerateClass(0, 0.1, 0.1, 50);
            var class2 = DemoHelper.GenerateClass(1, 0.8, 0.8, 50);

            var trainData = class1.Concat(class2);

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

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

            parameters.Check(problem);

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

            var x    = new Point(0.9, 0.9).ToSvmNodes();
            var resx = model.Predict(x);

            Console.WriteLine(resx);

            var y    = new Point(0.1, 0.1).ToSvmNodes();
            var resy = model.Predict(y);

            Console.WriteLine(resy);
        }