带有 IKVM 的 C# 中 Weka 的 LIbSVM

Posted

技术标签:

【中文标题】带有 IKVM 的 C# 中 Weka 的 LIbSVM【英文标题】:LIbSVM of Weka in C# with IKVM 【发布时间】:2016-12-31 04:04:39 【问题描述】:

我在 C# 中使用 weka 机器学习库和 IKVM。到目前为止,它运行得很好,但是,我在使用 libSVM 包时遇到了问题。

当我想在C#中实例化libsvm分类器时出现问题(找不到类),建议:

AbstractClassifier classifier = (AbstractClassifier)java.lang.Class.forName("weka.classifiers.functions.LibSVM").newInstance();     

我尝试了什么:

将 libsvm.dll 和 weka.dll 添加到项目中(从 libsvm.jar 和 weka.jar 转换而来) 将 libsvm.jar 和 weka.jar 合并为一个 dll 并将其添加到项目中(使用 ikvm 或 ilmerge)

请注意,该软件包已安装,因为它出现在

的结果中
WekaPackageManager.getInstalledPackages();

有没有人通过 IKVM 在 C# 中使用 Weka 和 LibSVM 成功?

谢谢, 波顿

【问题讨论】:

【参考方案1】:

我有同样的问题,但我从网站上找到了解决方案:here。

我使用 weka.jar(版本 3.6)并从 weka 3.8 获取 libsvm 包 HOME/wekafiles/packages/LibSVM

第 1 步。您将需要:weka.jar、Libsvm.jar(LibSVM/LibSVM.jar)、libsvm.jar (LibSVM/lib/libsvm.jar)。

步骤 2. 将 Libsvm.jar 重命名为 Libsvm1.jar。

步骤 3. 在 IKVM 中运行:打开命令行并进入 ikvm 的 bin 文件夹

    ikvmc.exe -sharedclassloader -target:library weka.jar libsvm.jar LibSVM1.jar

步骤 4. 在您​​的 C# 项目中引用生成的 weka.dll。

步骤 5.c# 中的示例代码

LibSVM svm = new LibSVM();
svm.setOptions(weka.core.Utils.splitOptions("-S 3 -K 2 -D 3 -G 0.0 -R 0.0 -N 0.5 -M 40.0 -C 1.0 -E 0.001 -P 0.1 -seed 1"));
svm.buildClassifier(dataset);

【讨论】:

以上是关于带有 IKVM 的 C# 中 Weka 的 LIbSVM的主要内容,如果未能解决你的问题,请参考以下文章

Weka中的实例分类

UCanAccess、IKVM 和 C#

C#调用java类jar包方法

C# 调用Jar包的方法

WEKA 配置指南

如何在我的 Java 代码中使用带有 Weka 的 LibSVM?