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();
}
}