我是accord.net
的新手,我试图将以下代码从此page逐步应用到Visual Studio C#
的简单应用程序中
应用“标准分类问题”部分的代码没有问题,但是当我尝试在运行时应用“朴素贝叶斯”部分的代码时,我发现了一个例外unhandled exception of type System.AggregateException occurred in mscorlib.dll
没有进一步的描述。
这在以下命令中发生var nb = learner.Learn(inputs, outputs)
我的代码如下
DataTable table = new celReader("examples.xls").GetWorksheet("Classification - Yin Yang");
// Convert the DataTable to input and output vectors
double[][] inputs = table.ToArray<double>("X", "Y");
int[] outputs = table.Columns["G"].ToArray<int>();
// Plot the data
ScatterplotBox.Show("Yin-Yang", inputs, outputs).Hold();
var learner = new NaiveBayesLearning<NormalDistribution>();
// Estimate the Naive Bayes
var nb = learner.Learn(inputs, outputs); // this is where exception is thrown
// Classify the samples using the model
int[] answers = nb.Decide(inputs);
// Plot the results
ScatterplotBox.Show("Expected results", inputs, outputs);
ScatterplotBox.Show("Naive Bayes results", inputs, answers).Hold();
我的程序的堆栈跟踪
最佳答案
从您在帖子中指示的同一页面下载的examples.xls似乎有错误/不兼容/过时的数据。在G列中,使用Accord v3.4.2-alpha将所有-1替换为0(第2至51行)可以解决问题。