首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过C#运行weka

通过C#运行weka
EN

Stack Overflow用户
提问于 2012-03-02 17:59:41
回答 4查看 2K关注 0票数 0

我通过C#代码运行weka,代码如下所示。

代码语言:javascript
复制
 using System;

 class MainClass
 {
      public static void Main(string[] args)
 {
     Console.WriteLine("Hello Java, from C#!");
     classifyTest();
  }

  const int percentSplit = 66;
  public static void classifyTest()
  {
     try
     {
         weka.core.Instances insts = new weka.core.Instances(new java.io.FileReader("iris.arff"));
         insts.setClassIndex(insts.numAttributes() - 1);

         weka.classifiers.Classifier cl = new weka.classifiers.trees.J48();
         Console.WriteLine("Performing " + percentSplit + "% split evaluation.");

         //randomize the order of the instances in the dataset.
                     weka.filters.Filter myRandom = new weka.filters.unsupervised.instance.Randomize();
         myRandom.setInputFormat(insts);
                     insts = weka.filters.Filter.useFilter(insts, myRandom);

         int trainSize = insts.numInstances() * percentSplit / 100;
         int testSize = insts.numInstances() - trainSize;
         weka.core.Instances train = new weka.core.Instances(insts, 0, trainSize);

         cl.buildClassifier(train);
         int numCorrect = 0;
         for (int i = trainSize; i < insts.numInstances(); i++)
         {
             weka.core.Instance currentInst = insts.instance(i);
             double predictedClass = cl.classifyInstance(currentInst);
             if (predictedClass = insts.instance(i).classValue())
                 numCorrect++;
         }
         Console.WriteLine(numCorrect + " out of " + testSize + " correct (" +
                    (double)((double)numCorrect / (double)testSize * 100.0) + "%)");
     }
     catch (java.lang.Exception ex)
     {
         ex.printStackTrace();
     }
 }

 }
 //end of file Main.cs

我已经添加了Weka.dll和ikvm.JDK.Core.dll文件。但是当我尝试运行它时,我得到了这个错误

“java.io.file”的类型初始值设定项引发了异常

可能的问题是什么?

EN

回答 4

Stack Overflow用户

发布于 2016-05-27 11:34:13

问题是您没有添加所需的所有引用,您必须添加所有以ikvm.OpenJDK开头的dll文件,并且文件IKVM.Runtime.dll还确保您使用IKVM将weka.jar转换为weka.dll

票数 5
EN

Stack Overflow用户

发布于 2013-01-05 05:09:49

确保为IKVM.Runtime.dll和IKVM.Runtime.JNI.dll添加引用

票数 1
EN

Stack Overflow用户

发布于 2012-03-25 17:36:45

您没有指定"iris.arff"的路径,该文件可能不在应用程序的启动目录中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9531264

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档