Проблемы с загрузкой учебного набора данных в LibSVMSharp
Если кто-то знаком с libSVM ( https://www.csie.ntu.edu.tw/~cjlin/libsvm/), я работаю с libSVMsharp, что, как мне кажется, в оболочке C#.
На своем github они приводят следующий пример того, как написать простую классификацию, используя SVM:
SVMProblem problem = SVMProblemHelper.Load(@"dataset_path.txt");
SVMProblem testProblem = SVMProblemHelper.Load(@"test_dataset_path.txt");
SVMParameter parameter = new SVMParameter();
parameter.Type = SVMType.C_SVC;
parameter.Kernel = SVMKernelType.RBF;
parameter.C = 1;
parameter.Gamma = 1;
SVMModel model = SVM.Train(problem, parameter);
double target[] = new double[testProblem.Length];
for (int i = 0; i < testProblem.Length; i++)
target[i] = SVM.Predict(model, testProblem.X[i]);
double accuracy = SVMHelper.EvaluateClassificationProblem(testProblem, target);
Все это имеет смысл: загрузка данных обучения с указанным путем и то же самое с данными испытаний... Ну, вот где я сталкиваюсь с проблемами.
Я хотел протестировать это в C# просто для того, чтобы полностью понять, как это работает, прежде чем реализовывать его в более крупном проекте, над которым я работал. У меня есть небольшая программа под названием Program.cs (я знаю, что она очень оригинальная), а в ЖЕ ПАПКЕ у меня есть train.txt и test.txt. Итак, у нас есть папка, содержащая Program.cs, train.txt и test.txt, а также некоторые другие стандартные материалы, которые создаются при создании проекта в Visual Studio.
Так что этот фрагмент моего кода выглядит так:
SVMProblem trainingSet = SVMProblemHelper.Load(@"train.txt");
SVMProblem testSet = SVMProblemHelper.Load(@"test.txt");
trainingSet = trainingSet.Normalize(SVMNormType.L2);
testSet = testSet.Normalize(SVMNormType.L2);
и так далее. Тем не менее, когда я запускаю это, он в основном говорит, что переменная "trainingSet" является нулевой, потому что SVMProblemHelper фактически не удалось загрузить train.txt.
Я чувствую, что есть явно очевидное решение этого, но я полностью потерян. Я не совсем уверен, что происходит здесь. В функции SVMProblemHelper.Load в основном говорится, что она установит переменную (в данном случае trainingSet) равной нулю, если не сможет найти нужный файл. Но как это не найти файл? Он находится в том же каталоге, что и файл.cs. Я не уверен, что мне не хватает, но я не могу понять это.
Любая помощь приветствуется!