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

问题描述 投票:0回答:1

我正在开展一个面部表情识别项目。我在c#中使用weka库来分类从matlab的.dll文件收集的功能(集成在c#中作为.Net程序集)。

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

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

c# matlab weka
1个回答
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文件的一些指南。

© www.soinside.com 2019 - 2024. All rights reserved.