在matlab中训练weka模型:如何评估?想念某种模型类型?

问题描述

  1. 尽管使用了weka,但我有像libSVM和RseslibKnn这样的模型,当我在Matlab中调用它们时却找不到它们 enter image description here 我注意到实际上它们不是目录“分类器”模型的一部分。 enter image description here

  2. 我知道如何交叉验证一个通用模型,但我不能使用带有确定训练和测试集的简单验证。这是我正在使用的代码

% 记住当前文件夹并更改文件

base_folder = cd;

cd 'C:\Program Files'

% 在java文件夹中添加weka

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:

http://rseslib.mimuw.edu.pl/download.html

https://www.csie.ntu.edu.tw/~cjlin/libsvm/