示例 Accord.NET 朴素贝叶斯

Sample Accord.NET Naive-Bayes

我是 accord.net 的新手,我正在尝试将此 page 中的以下代码逐步应用到 Visual Studio C#

的简单应用程序中

"Standard classification problems" 部分的代码已毫无问题地应用,但是当我尝试在 运行 期间应用 "Naive Bayes" 部分的代码时,我遇到了一个异常描述

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

我程序的堆栈跟踪

从您在 post 中指定的同一页面下载的 examples.xls 似乎有 bad/incompatible/outdated 数据。在 G 列中,将所有 -1 替换为 0(第 2 至 51 行)就可以了,使用 Accord v3.4.2-alpha.