C# 如何从C调用WekaSharp命令#

C# 如何从C调用WekaSharp命令#,c#,f#,data-mining,weka,C#,F#,Data Mining,Weka,谢谢大家对我的F和C问题的帮助,我真的开始享受学习的成果了。我以前问过这样一个问题,我知道这与本论坛的目的是一致的,但我认为这是有用的,并将为我们所有的F#数据挖掘者提供一些帮助:-)。我正在利用尹朱的WekaSharp进行实验,我对F#和C#之间的计算速率感兴趣。我已经根据他在F#中的例子写了一段代码,我想在C#中做一个类似的例子,但不知道如何处理它。Yin Zhu已经创建了相同的代码来从名为WekaCSharp的C#访问这些函数,但他提供的示例并未真正涉及此操作。我不喜欢老是用我卑鄙的问题来

谢谢大家对我的F和C问题的帮助,我真的开始享受学习的成果了。我以前问过这样一个问题,我知道这与本论坛的目的是一致的,但我认为这是有用的,并将为我们所有的F#数据挖掘者提供一些帮助:-)。我正在利用尹朱的WekaSharp进行实验,我对F#和C#之间的计算速率感兴趣。我已经根据他在F#中的例子写了一段代码,我想在C#中做一个类似的例子,但不知道如何处理它。Yin Zhu已经创建了相同的代码来从名为WekaCSharp的C#访问这些函数,但他提供的示例并未真正涉及此操作。我不喜欢老是用我卑鄙的问题来烦他,所以如果有人有时间并且愿意,这里是F#脚本:

(*K-均值聚类算法*)
//加载数据集
让声纳=
System.IO.Path.Combine(\uuuu SOURCE\u DIRECTORY\uuuu,@.\..\data\KDDCup99.arff)
|>Dataset.readArff
|>Dataset.setClassIndexWithLastAttribute
//设置不同的参数
设Cs=[0.01;0.1;1.-10.-50.-100.-500.-1000.-2000.-5000.]
//使用参数集创建任务
让任务=
铯
|>List.map(func->Parameter.KNN.DefaultPara)
|>List.map(乐趣p->交叉验证(3,sonar,ClassifierType.KNN,p))
简介:tic()
//精度结果
让结果=
任务
|>Eval.evalBulkClassify
|>List.map Eval.getAccurance
Profile.toc(“顺序时间:”)
简介:tic()
让resultsParallel=
任务
|>Eval.evalBulkClassifyParallel
|>List.map Eval.getAccurance
toc(“并行(PSeq)时间:”)
再次,我很抱歉,如果我散布了这个论坛的意图,但这对我们所有学习在.NET中使用Weka的人都非常有用。以下是我到目前为止的情况:

class Program
    {

        static void Classify()
        {
            Instances dataSetForTrain = new Instances(new BufferedReader(
                new FileReader(@"C:\Users\Deines\Documents\School\Software\WekaSharp2012\data\iris.arff")));
            dataSetForTrain.setClassIndex(dataSetForTrain.numAttributes() - 1);

            string options = @"-P 100 -S 1 -I 10 -W weka.classifiers.bayes.NaiveBayes -- -M 2 -V 0.0010 -N 3 -S 1 -L -1";
            Bagging model = new Bagging();
            model.setOptions(options.Split(' '));
            model.buildClassifier(dataSetForTrain);


            // test the instances from iris.arff
            Instances dataSetForTest = new Instances(new BufferedReader(
                new FileReader(@"C:\Users\Deines\Documents\School\Software\WekaSharp2012\data\iris.arff")));

            dataSetForTest.setClassIndex(dataSetForTest.numAttributes() - 1);

            for (int i = 0; i < dataSetForTest.numInstances(); i++)
            {
                var inst = dataSetForTest.instance(i);
                int label = (int)model.classifyInstance(inst);
                System.Console.WriteLine(label);
            }

        }


        public static void Main(string[] args)
        {
            Classify();
        }
    }
类程序
{
静态无效分类()
{
Instances dataSetForTrain=新实例(新BufferedReader(
新的文件阅读器(@“C:\Users\Deines\Documents\School\Software\WekaSharp2012\data\iris.arff”);
dataSetForTrain.setClassIndex(dataSetForTrain.numAttributes()-1);
字符串选项=@“-P100-S1-I10-Wweka.classifiers.bayes.NaiveBayes--M2-V0.0010-N3-S1-L-1”;
装袋模式=新装袋();
model.setOptions(options.Split(“”));
model.buildClassifier(dataSetForTrain);
//测试iris.arff中的实例
Instances dataSetForTest=新实例(新BufferedReader(
新的文件阅读器(@“C:\Users\Deines\Documents\School\Software\WekaSharp2012\data\iris.arff”);
dataSetForTest.setClassIndex(dataSetForTest.numAttributes()-1);
对于(int i=0;i

非常感谢。

您应该发布您在翻译成C#时遇到困难的具体部分,以及您尝试过的内容。是的,先生。这里是我创建的thusfar,缺少的是并行执行和不同的参数:我现在担心的是问题过于集中在WekaSharp方面,而不是真正需要的方面。这个过程的难点在于通过C#在weka中执行并行和串行计算,并使用weka调用计算正确率。我正在尝试调用weka.classifiers.Evaluation.pctCorrect();在这方面工作。非常感谢。