样本Accord.NET Naive-Bayes

时间:2017-02-17 13:28:26

标签: c# .net machine-learning naivebayes accord.net

我是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();

我的程序的堆栈跟踪

enter image description here

1 个答案:

答案 0 :(得分:1)

从您在帖子中指明的同一页面下载的 examples.xls 似乎包含错误/不兼容/过时的数据。在 G 列中,将所有 -1 替换为 0 (第2行到第51行)可以解决问题,使用 Accord v3.4.2-阿尔法

enter image description here

enter image description here

enter image description here