是否可以在weka.core.instance中传递字符数组而不是.arff文件

时间:2017-05-12 14:41:19

标签: c# matlab weka

我正在开展面部表情识别项目。我在c#中使用weka库来分类从matlab的<File Id="prunsrv.exe" Name="prunsrv.exe" Source="E:\Service\prunsrv.exe" Keypath="yes" /> 文件中收集的功能(在c#中集成为.Net程序集)。

.dll

是否可以在上面的代码中读取数组而不是weka.core.Instances(new java.io.FileReader("dataset.arff")) 文件。

1 个答案:

答案 0 :(得分:0)

可以将数组值存储到.arff文件中。

要创建它,您可以执行以下操作,

    string[] lines = { "@ATTRIBUTE sepallength  NUMERIC",
   "@ATTRIBUTE sepalwidth   NUMERIC",
   "@ATTRIBUTE petallength  NUMERIC",
   "@ATTRIBUTE petalwidth   NUMERIC",
   "@ATTRIBUTE class        {Iris-setosa,Iris-versicolor,Iris-virginica}",
   "@DATA"};

System.IO.File.WriteAllLines(@"C:\Users\Public\TestFolder\somefile.arff",
lines);

然后对于数据部分,您可以将数组用于每一行。

 string[] dataLines = { "5.1,3.5,1.4,0.2,Iris-setosa",
   "4.9,3.0,1.4,0.2,Iris-setosa",
   "4.7,3.2,1.3,0.2,Iris-setosa",
   "4.6,3.1,1.5,0.2,Iris-setosa",
   "5.0,3.6,1.4,0.2,Iris-setosa",
   "5.4,3.9,1.7,0.4,Iris-setosa"};

using (System.IO.StreamWriter file = 
                new System.IO.StreamWriter(@"C:\Users\Public\TestFolder\somefile.arff", true))
            {
                foreach (string line in dataLines)
                {
                    file.WriteLine(line);
                }
            }

Here是waikato为Weka提供的.arff文件的一些指南。