示例#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();
              }
        }
示例#2
0
        public static void Run()
        {
            Console.WriteLine("OneClassDemo");
              var trainData = DemoHelper.GenerateClass(0, 0.5, 0.5, 100);

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

              var problem = new SvmProblem
              {
            Y = trainData.Select(p => 1.0).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.5, 0.5).ToSvmNodes();
              var resy = model.Predict(y);
              Console.WriteLine(resy);

              var z = new Point(0.45, 0.45).ToSvmNodes();
              var resz = model.Predict(z);
              Console.WriteLine(resz);
        }
示例#3
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);
        }