Ejemplo n.º 1
0
    public void Test3()
    {
        var data = new List <float[]>();

        data.Add(new float[] { 1.0f, 0.7f, 1.0f, });
        data.Add(new float[] { -0.3f, -0.5f, -1.0f });
        data.Add(new float[] { 3.0f, 0.1f, 1.0f });
        data.Add(new float[] { -0.1f, -1.0f, -1.0f });
        data.Add(new float[] { -1.0f, 1.1f, -1.0f });
        data.Add(new float[] { 2.0f, -3.0f, 1.0f });

        // ref probs, not working
        var svm = new SVM();

        for (int i = 0; i < 400; ++i)
        {
            var index = Random.Range(0, data.Count);
            var x     = new Unit(data[index][0], 0.0f);
            var y     = new Unit(data[index][1], 0.0f);
            var label = data[index][2];

            svm.LearnFrom(x, y, label);

            if (i % 25 == 0)
            {
                Debug.LogFormat("training: {0}: accuracy: {1}", i, Evaluate(data, svm));
            }
        }
    }
Ejemplo n.º 2
0
        static void TraintSVM()
        {
            List <double[]> data   = new List <double[]>();
            List <int>      labels = new List <int>();

            data.Add(new[] { 1.2, 0.7 }); labels.Add(1);
            data.Add(new[] { -0.3, -0.5 }); labels.Add(-1);
            data.Add(new[] { 3.0, 0.1 }); labels.Add(1);
            data.Add(new[] { -0.1, -1.0 }); labels.Add(-1);
            data.Add(new[] { -1.0, 1.1 }); labels.Add(-1);
            data.Add(new[] { 2.1, -3 }); labels.Add(1);
            var svm = new SVM();

            double initAcc = EvalTrainingAccuracy(data, labels, svm);

            // the learning loop
            for (var iter = 0; iter < 400; iter++)
            {
                // pick a random data point
                int i     = _rnd.Next(data.Count);
                var x     = new Unit(data[i][0], 0.0);
                var y     = new Unit(data[i][1], 0.0);
                var label = labels[i];
                svm.LearnFrom(x, y, label);

                if (iter % 25 == 0)
                {
                    double acc = EvalTrainingAccuracy(data, labels, svm);
                    Console.WriteLine("Training accuracy at iter " + iter + ": " + acc);
                }
            }
        }