Member 14509829 Ответов: 0

Код C# для запуска WEKA


я использую тот же код в C# (visual studio 2017) и включил IKVM.OpenJDK.*.dll (последняя версия )и weka.dll в проекте.

код:

private void button1_Click(object sender, EventArgs e)
        {
            class_test(); 
        }

const int percentSplit = 60;
        public void class_test()
        {
            string resualt = "";

            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();    // choose type of classifer algorithms 

                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++;
                }

                System.Console.WriteLine(numCorrect + " out of " + testSize + " correct (" +
                    (double)((double)numCorrect / (double)testSize * 100.0) + "%)");
            }
            catch (java.lang.Exception ex)
            {
                ex.printStackTrace();
            }
        }


Но я получаю следующие ошибки:

первый :

The type Reader is defined in an assembly that is not referenced. You must add a reference assembly 'vislib, Version=1.0.5000.0, Cultureneutral PublicKey Token-b0315f7f11d50a3a choose 


на линии :

weka.core.Instances insts = new weka.core.Instances(new java.io.FileReader("iris.arff"));


на

новый weka.core.Экземпляры


второй :

Argument 1 : cannot convert from 'java.io.FileReader' to 'weka.core.instances


на той же линии :

weka.core.Instances insts = new weka.core.Instances(new java.io.FileReader("iris.arff"));


на

(new java.io.FileReader("iris.arff"));


Что я уже пробовал:

чтобы решить вторую ошибку, я попытался добавить Ikvm.GUN.classpath.dll для другой более старой версии в качестве ссылки, но я получаю следующую ошибку:

The type FileReader exists in both 'IKVM.GNU.Classpath, Version= 0.12.0.0, Culture=neutral, PublicKey Token13235d27fcbfff58 and 'IKVM.Open/DK.Core Version=7.2.4630.5, Culture=neutral, PublicKey Token: 13235d271cbfff58


Я не знаю ,как я могу решить эту проблему?

пожалуйста, кто-нибудь может мне помочь ?

BillWoodruff

Я предлагаю вам связаться с проектом WEKA:

https://www.cs.waikato.ac.nz/~ml/weka/help.html

Richard Deeming

Что произошло, когда вы добавили ссылку на vislib сборка, как упоминалось в первом сообщении об ошибке?

0 Ответов