如何将WEKA预处理步骤加载到R?

时间:2017-07-17 14:25:16

标签: r weka data-mining rweka

我使用WEKA GUI Java here来预处理数据。我想在R。

中使用相同的预处理步骤

例如,我想将WEKA GUI的MultiFilter预处理加载到R.我在RWeka中找不到它。

如何将WEKA预处理步骤加载到R?

enter image description here

enter image description here

enter image description here

1 个答案:

答案 0 :(得分:1)

您可以使用RWeka或Weka命令行工具部分加载WEKA GUI步骤,这些工具比RWeka中的可用功能要广泛得多。因此,您可以通过R中的系统命令使用命令行命令扩展RWeka。幸运的是,WEKA GUI和WEKA命令行中的参数是相同的。我建议使用8提取weka-src.jar以阅读来源。

MultiFilter有很多功能

jar xf weka-src.jar

其中第二个允许您指定属性范围。否则,它们似乎完全相同。

然后您可以使用

运行第一个离散过滤器
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 ,最后转到DiscretizeNumericTransform。命令行以下列方式提供有关命令的精彩指令

Resample

您可以从目录结构或索引中检查它们。

<强> RWeka

RWeka包提供了功能

  • Discretize()
  • Normalize()
  • make_Weka_filter()创建到Weka过滤器的R接口

并且没有NumericTransform和Remove功能。您需要使用他们的参数,而不是直接通过从WEKA GUI复制粘贴java代码。也许,一个解决方案可以使用系统命令并使用它执行Java代码,而无需学习RWeka本身。 WEKA GUI和R包之间似乎存在一些差距。

在命令行上运行Weka

即使通过RWeka界面缺少命令,您也可以使用R中的系统命令。例如,您可以运行remove命令

  

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

这样

  

java weka.filters.unsupervised.attribute.Remove -i yourfile.arff

我有以下设置here,因此我们可以通过以下方式运行Discretize。

system("java weka.filters.unsupervised.attribute.Remove -i yourfile.arff")

一些有用的信息

  
      
  1. Use Weka in your Java code

  2.   
  3. 下载Linux Developer版本,解压缩并阅读README,其中包含许多关于在命令行使用WEKA的精彩示例。

  4.   
  5. Wiki here

  6.   
  7. 可能无关紧要:Generating source code from WEKA classes

  8.