带有 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的主要内容,如果未能解决你的问题,请参考以下文章