Я пытаюсь использовать функцию K-ближайшего соседа библиотеки Accord, которая может работать с любым типом .
Моя цель - использовать его с данными Bitmap, но даже при копировании кода примера и его вставке я получаю эту ошибку:
Error 4 The best overloaded method match for 'Accord.MachineLearning.KNearestNeighbors<System.Drawing.Bitmap>.KNearestNeighbors(int, int, System.Drawing.Bitmap[], int[], Accord.Math.Distances.IDistance<System.Drawing.Bitmap>)' has some invalid arguments D:\...\WindowsFormsApplication1\WidgetControl.cs 295 49 Project_Ochare
Это действительно странно, потому что это точно как пример. Насколько я знаю, параметры должны работать. У меня есть основное ядро Accord, ядро расширения, математика, математические расширения, математический код, машинное обучение и статистика, добавленные в качестве ссылок.
Пробовал искать, но ответа не нашел..
Код примера такой же, как этот: http://accord-framework.net/docs/html/T_Accord_MachineLearning_KNearestNeighbors_1.htm
Что случилось?
Это их пример кода, в котором возникают ошибки:
private void __Test()
{
// The k-Nearest Neighbors algorithm can be used with
// any kind of data. In this example, we will see how
// it can be used to compare, for example, Strings.
string[] inputs =
{
"Car", // class 0
"Bar", // class 0
"Jar", // class 0
"Charm", // class 1
"Chair" // class 1
};
int[] outputs =
{
0, 0, 0, // First three are from class 0
1, 1, // And next two are from class 1
};
// Now we will create the K-Nearest Neighbors algorithm. For this
// example, we will be choosing k = 1. This means that, for a given
// instance, only its nearest neighbor will be used to cast a new
// decision.
// In order to compare strings, we will be using Levenshtein's string distance
KNearestNeighbors<string> knn = new KNearestNeighbors<string>(k: 1, classes: 2, inputs: inputs, outputs: outputs, distance: Distance.Levenshtein);
// After the algorithm has been created, we can use it:
int answer = knn.Compute("Chars"); // answer should be 1.
}
Это сообщения об ошибках, которые я получаю. Я сделал новый пустой проект только с кодом примера Accord для KNearest. Он хочет, чтобы я изменил Distance.Levenshtein на Distance.Levenshtein(), затем он говорит мне, что ему нужны параметры, независимо от того, как я его пишу или что добавляю, он дает ту же ошибку.
например Расстояние.Левенштейн("", ""), Расстояние.Левенштейн(0, 0) Расстояние.Левенштейн("",""), Расстояние.Левенштейн(новая строка1, новая строка1) и т. д.. все, что я мог придумать.
Расстояние. предлагает массу функций измерения, все они приводят к одной и той же ошибке.
Сообщения об ошибках:
Error 1 The best overloaded method match for 'Accord.MachineLearning.KNearestNeighbors<string>.KNearestNeighbors(int, int, string[], int[], Accord.Math.Distances.IDistance<string>)' has some invalid arguments D:\Dropbox\C#\KNearestTest\KNearestTest\Form1.cs 48 45 KNearestTest
Error 2 Argument 5: cannot convert from 'method group' to 'Accord.Math.Distances.IDistance<string>' D:\Dropbox\C#\KNearestTest\KNearestTest\Form1.cs 49 59 KNearestTest
Distance.Levenshtein
должно бытьDistance.Levenshtein()
, так как это метод, а не свойство. - person Gusman   schedule 24.01.2017Distance.Levenshtein
вместоDistance.Levenshtein("", "")
. Кроме того, вместо того, чтобы пытаться что-то делать, не зная, что вы делаете, почему бы не попробовать прочитать справку по API, а не только один из примеров? - person Gusman   schedule 24.01.2017