我在这里使用了 WEKA GUI Java来进行数据的预处理。我现在想在 R 中使用相同的预处理步骤。
比如我想把WEKA GUI的MultiFilter的预处理加载到R中,在RWeka中找不到。
如何将 WEKA 预处理步骤加载到 R?
我在这里使用了 WEKA GUI Java来进行数据的预处理。我现在想在 R 中使用相同的预处理步骤。
比如我想把WEKA GUI的MultiFilter的预处理加载到R中,在RWeka中找不到。
如何将 WEKA 预处理步骤加载到 R?
您可以使用 RWeka 或使用比 RWeka 中的可用功能更广泛的 Weka 命令行工具部分加载 WEKA GUI 步骤。因此,您可以通过 R 中的系统命令使用命令行命令扩展 RWeka。幸运的是,WEKA GUI 中的参数和 WEKA 命令行中的参数是相同的。我建议提取weka-src.jar
withjar xf weka-src.jar
来阅读源代码。
MultiFilter 有很多功能
java weka.filters.MultiFilter --help
java weka.filters.unsupervised.attribute.PartitionedMultiFilter --help
其中第二个允许您指定属性范围。否则,它们似乎是相同的。
然后你可以运行你的第一个离散化过滤器
java weka.filters.unsupervised.attribute.Discretize -F -B 20 -M -1.0 -R 27 -i yourFile.arff
然后将其输出定向到 next Discretize
,最终定向到NumericTransform
and Resample
。命令行通过以下方式提供有关命令的精彩说明
java weka.filters.unsupervised.attribute.NumericTransform --help
java weka.filters.unsupervised.attribute.Remove --help
java weka.filters.unsupervised.instance.Resample --help
java weka.filters.supervised.instance.Resample --help
您可以从目录结构或索引中检查它们。
威卡
RWeka 包提供的功能
并且没有 NumericTransform 和 Remove 函数。您需要使用他们的参数,而不是直接从 WEKA GUI 复制粘贴 java 代码。也许,一种解决方案是使用系统命令并使用它执行 Java 代码,而无需学习 RWeka 本身。WEKA GUI 和 R 包之间似乎存在一些差距。
在命令行上运行 Weka
即使通过 RWeka 界面缺少命令,您也可以使用 R 中的系统命令。例如,您可以运行 remove 命令
java weka.filters.unsupervised.attribute.Remove -i yourfile.arff
这样
system("java weka.filters.unsupervised.attribute.Remove -i yourfile.arff")
我在这里有以下设置,因此我们可以通过以下方式运行 Discretize。
$ cat $WEKAINSTALL/data/iris.arff |tail
6.8,3.2,5.9,2.3,Iris-virginica
6.7,3.3,5.7,2.5,Iris-virginica
6.7,3.0,5.2,2.3,Iris-virginica
6.3,2.5,5.0,1.9,Iris-virginica
6.5,3.0,5.2,2.0,Iris-virginica
6.2,3.4,5.4,2.3,Iris-virginica
5.9,3.0,5.1,1.8,Iris-virginica
%
%
%
$ java weka.filters.unsupervised.attribute.Discretize -i $WEKAINSTALL/data/iris.arff |tail
'\'(6.46-6.82]\'','\'(2.96-3.2]\'','\'(5.13-5.72]\'','\'(2.26-inf)\'',Iris-virginica
'\'(6.82-7.18]\'','\'(2.96-3.2]\'','\'(4.54-5.13]\'','\'(2.26-inf)\'',Iris-virginica
'\'(5.74-6.1]\'','\'(2.48-2.72]\'','\'(4.54-5.13]\'','\'(1.78-2.02]\'',Iris-virginica
'\'(6.46-6.82]\'','\'(2.96-3.2]\'','\'(5.72-6.31]\'','\'(2.26-inf)\'',Iris-virginica
'\'(6.46-6.82]\'','\'(3.2-3.44]\'','\'(5.13-5.72]\'','\'(2.26-inf)\'',Iris-virginica
'\'(6.46-6.82]\'','\'(2.96-3.2]\'','\'(5.13-5.72]\'','\'(2.26-inf)\'',Iris-virginica
'\'(6.1-6.46]\'','\'(2.48-2.72]\'','\'(4.54-5.13]\'','\'(1.78-2.02]\'',Iris-virginica
'\'(6.46-6.82]\'','\'(2.96-3.2]\'','\'(5.13-5.72]\'','\'(1.78-2.02]\'',Iris-virginica
'\'(6.1-6.46]\'','\'(3.2-3.44]\'','\'(5.13-5.72]\'','\'(2.26-inf)\'',Iris-virginica
'\'(5.74-6.1]\'','\'(2.96-3.2]\'','\'(4.54-5.13]\'','\'(1.78-2.02]\'',Iris-virginica
$
一些有用的信息
下载 Linux Developer 版本,解压缩并阅读自述文件,其中包含许多关于使用 WEKA 的精彩示例,尤其是在命令行中。
维基在这里
也许不相关:从 WEKA 类生成源代码