问题描述
-
尽管使用了weka,但我有像libSVM和RseslibKnn这样的模型,当我在Matlab中调用它们时却找不到它们 enter image description here 我注意到实际上它们不是目录“分类器”模型的一部分。 enter image description here
base_folder = cd;
cd 'C:\Program Files'
javaaddpath("weka-3-8-4/weka.jar");
% 加载 arff 训练集
l = javaObject("weka.core.converters.ArffLoader");
l.setFile(javaObject("java.io.File","weka-3-8-4/data/weka_BEST_train_ESS.arff"));
tr = l.getDataSet;
tr.toString;
% 构建分类器
c = javaObject("weka.classifiers.functions.MultilayerPerceptron");
tr.setClassIndex(tr.numAttributes - 1);
c.buildClassifier(tr);
c.toString;
% 加载 arff 测试集
l = javaObject("weka.core.converters.ArffLoader");
l.setFile(javaObject("java.io.File","weka-3-8-4/data/weka_BEST_test_ESS.arff"));
ts = l.getDataSet;
ts.toString;
% 验证
e = javaObject("weka.classifiers.Evaluation",tr);
e.evaluateModel(c,ts); %??????????????????????????????????????????????????? ????????????????????????
e.toSummaryString;
% 回到当前文件夹
cd (base_folder)
解决方法
回答第一个问题:
libSVM 和 RseslibKnn 是单独的 Weka 包中可用的模型,需要另外安装在 Weka 中。要安装包,请运行 Weka 包管理器(Weka GUI 选择器中的菜单工具 -> 包管理器)并安装 LibSVM 和 Rseslib 包。带有 java jar 的包安装在 wekafiles 目录中。在 Windows 上,默认为 C:\Users\ <username>\wekafiles\packages
。
我不知道 Matlab,但我想要使用来自额外 Weka 软件包的模型,您还需要在 Weka 中安装软件包后将软件包 jar 文件添加到 Matlab javapath:
javaaddpath("C:\Users\\wekafiles\packages\Rseslib\rseslib.jar");
javaaddpath("C:\Users\\wekafiles\packages\LibSVM\LibSVM.jar");
或者,您可以直接从包提供商的网站下载库,解压缩它们并将 jar 添加到 Matlab javapath: