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

Is it possible to pass a character array in weka.core.instance instead of .arff file

我正在做一个面部表情识别的项目。我正在使用 c# 中的 weka 库对从 matlab .dll 文件中收集的特征进行分类(作为 .Net 程序集集成在 c# 中)。

weka.core.Instances(new java.io.FileReader("dataset.arff"))

是否可以在上面的代码中读取数组而不是 .arff 文件。

可以将数组值存储到 .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 文件的一些指南。