WEKA 基本用法

使用CSV文件

可以,你可以使用CSV文件。但请注意,与ARFF文件(WEKA的默认文件格式)相比有一个缺点:

训练集和测试集可能不兼容。将CSV文件用作训练和测试集可能是一项令人沮丧的练习。由于CSV文件不包含任何有关属性的信息,因此WEKA需要自己确定名义属性的标签。这些标签的出现顺序不仅创建了不同的标称属性 (“1,2,3” vs “1,3,2”),而且也不能保证出现在训练集中的所有标签也出现在测试集中 (“1,2,3,4” vs “1,3,4”) ,反之亦然。

CSV文件转换

将CSV文件加载到资源管理器中,或使用命令行上的CSV转换器,如下所示:

java weka.core.converters.CSVLoader filename.csv > filename.arff

如何将数据集划分为训练集和测试集

你可以使用RemovePercentage筛选器(包weka.filters.unsupervised.instance)。

在资源管理器中,只需执行以下操作:

训练集:

  • 加载完整数据集。
  • 在预处理面板中选择RemovePercentage过滤器。
  • 为拆分设置正确的百分比。
  • 应用过滤器。
  • 将生成的数据另存为新文件。

测试集:

  • 加载完整的数据集(或仅使用撤消恢复对数据集的更改)。
  • 选择RemovePercentage筛选器(如果尚未选择)。
  • invertSelection属性设置为true。
  • 应用过滤器。
  • 将生成的数据另存为新文件。

如何生成使用过滤器处理的兼容训练集和测试集

运行过滤器两次,一次使用训练集作为输入,第二次使用测试集,几乎肯定会创建两个不兼容的文件。为什么会这样呢?每次运行过滤器时,它都会根据输入数据进行初始化,当然,训练和测试集会不同,因此会产生不兼容的输出。你可以通过使用批处理筛选来避免这种情况。有关更多详细信息,请参阅有关批处理筛选的文章。

如何执行属性选择

WEKA提供了执行属性选择的不同方法:

  • 直接使用属性选择类,
  • 使用元分类器。
  • 并且,带过滤器的。

有关更多详细信息和示例,请参阅执行属性选择文章。

如何执行群集

WEKA不仅作为独立的方案提供集群功能,而且还作为过滤器和分类器提供集群功能。查看有关使用集群算法的文章,了解更多详细信息。

我在哪里可以找到分类器等的可视化?

可以通过弹出菜单从分类器、聚类和属性选择面板访问可视化。在结果列表中的条目上单击鼠标右键可调出菜单。你将看到用于查看或保存文本输出的选项,以及根据方案的不同,用于可视化错误、群集、树等的更多选项。

如何执行文本分类?

使用WEKA进行文本分类一文解释了一些如何处理文本文档的基础知识,如导入和预处理。

如何在WEKA中执行多实例学习

多实例分类一文解释了哪些分类器可以执行多实例分类,以及这些多实例分类器必须采用什么格式的数据。

如何执行对成本敏感的分类

成本敏感的分类可以使用成本敏感的分类器来实现。与成本敏感话题相关的文章包括:

搜索“成本敏感”一词还会显示与该主题相关的文章。

我如何用训练有素的模型进行预测?

因为WEKA允许保存模型(作为Java二进制序列化对象),所以可以再次使用这些模型来执行预测。有关更多详细信息,请查看“预测”这篇文章。

为什么我从稀疏实例中遗漏了某些标称值或字符串值

在内部,Weka将所有属性值存储为双精度浮点数。在名义或字符串属性的情况下,这些数字被解释为相关属性的值集的索引,0对应于第一个值,1对应于第二个值,依此类推。由于稀疏数据不显式存储零,因此在打印稀疏格式的ARFF文件时,任何包含标称或字符串属性的第一个值(索引为0)的实例都不会显示此值。

我可以使用WEKA进行时间序列分析吗

WEKA 3.7.3有一个新的软件包,它为时间序列分析提供了一个环境。这篇文章我如何使用包管理器?可以按照以下步骤安装此程序包。安装后,该软件包将在资源管理器中提供一个插件选项卡。有关时序环境的文档可在此处找到。

较早版本的Weka对时间序列分析的支持有限,只包含两个过滤器:TimeSeriesDeltaTimeSeriesTranslate。有一些WEKA的修改版本(Waikato大学不支持),它们提供了额外的功能(1, 2)。

WEKA是否支持多标签分类

不,WEKA只允许你指定单个类属性(可以是数字,也可以包含任意数量的标签)。还有其他可用的第三方框架可以处理这种类型的数据。其中之一是Mulan,它建在WEKA之上。

如何执行一个类别分类

WEKA为单类分类提供了一些基本支持:

  • 通过weka.classfiers.functions.LibSVM包装器分类器(3.6稳定版和开发人员版)。有关更多信息,请参阅LibSVM文章。
  • 通过weka.classfiers.meta.OneClass分类器元分类器(开发人员版本大于3.7.0或快照高于23/7/2009)

我可以直接在WEKA中制作绘图或图表的屏幕截图吗

可以,可以屏幕截图。目前支持的格式有BMP、EPS、JPEG和PNG。魔术按钮是Alt+Shift+左键单击。

从WEKA 3.7.5还可以从知识流过程中以非交互方式将各种图表导出为PNG文件。请参阅从知识流导出图表

如何使用包管理器?

通常,术语“包”是指Java组织类的概念。从版本3.7.2开始,Weka将包的概念定义为附加功能的捆绑包,独立于主weka.jar文件中提供的功能。包由各种JAR文件、文档、元数据以及可能的源代码组成。Weka早期版本中的许多学习算法和工具已经从版本3.7.2中分离出来。这简化了核心Weka系统,并允许用户安装他们需要或感兴趣的东西。它还提供了一种简单的机制,供人们在向Weka捐款时使用。Weka提供了许多软件包,它们可以添加学习方案或以某种方式扩展核心系统的功能。许多是由Weka团队提供的,其他的是来自第三方的。

WEKA包括一个管理包的工具和一个在运行时动态加载它们的机制。既有命令行管理器又有GUI包管理器。如果包管理器在你尝试运行它时没有启动,请查看此页面。

命令行包管理

假设weka.jar文件位于类路径中,可以通过键入以下命令访问包管理器:

java weka.core.WekaPackageManager

不提供任何选项将打印用法信息:

Usage: weka.core.WekaPackageManager [option]
Options:
  -list-packages 
  -package-info  packageName
  -install-package  [version]
  -uninstall-package 
  -refresh-cache

2012年9月24日之后,Weka开发者版的WEKA3.7.8和快照版本现在提供了一种完全的“离线”模式,不需要尝试连接到互联网。此模式可用于安装文件系统上用户已有的软件包zip文件,以及浏览已安装的软件包。通过指定“-offline”选项,可以从命令行包管理器访问此模式。或者,可以在命令行或属性文件中向Java虚拟机提供属性weka.PackageManager.offline=true(请参见下面关于属性的一节)。

有关包的信息(元数据)存储在Sourceforge上托管的Web服务器上。第一次运行包管理器时,对于新安装的Weka,当系统从服务器下载并存储元数据的高速缓存时,会有一个短暂的延迟。维护高速缓存可加快浏览包信息的过程。你应该不时更新包元数据的本地缓存,以便从服务器获取有关包的最新信息。这可以通过提供-fresh-cache选项来实现。

顾名思义,-list-packages选项将打印有关各种包的信息(版本号和简短描述)。该选项后面必须跟以下三个关键字之一:

  • all将打印系统知道的所有包的信息。
  • installed将打印有关本地安装的所有软件包的信息。
  • available将打印有关所有未安装的软件包的信息。

下面显示了列出本地安装的所有软件包的示例:

java weka.core.WekaPackageManager -list-packages installed

Installed    Repository    Package
=========    ==========    =======
1.0.0        1.0.0         DTNB: Class for building and using a decision table/naive bayes hybrid classifier.
1.0.0        1.0.0         massiveOnlineAnalysis: MOA (Massive On-line Analysis).
1.0.0        1.0.0         multiInstanceFilters: A collection of filters for manipulating multi-instance data.
1.0.0        1.0.0         naiveBayesTree: Class for generating a decision tree with naive Bayes classifiers at the leaves.
1.0.0        1.0.0         scatterPlot3D: A visualization component for displaying a 3D scatter plot of the data using Java 3D.

-package-info命令列出给定名称的包的相关信息。该命令后跟三个关键字之一,然后是软件包的名称:

  • repository将从存储库中打印命名包的信息。
  • installed将打印有关命名软件包的已安装版本的信息。
  • archive将打印存储在zip存档中的包的信息。在这种情况下,“archive”关键字必须后跟软件包zip存档文件的路径,而不仅仅是软件包的名称。

下面显示了一个列出来自服务器的“isoonicRegpression”包信息的示例:

java weka.core.WekaPackageManager -package-info repository isotonicRegression
Description:Learns an isotonic regression model. Picks the attribute that results in the lowest squared error. Missing values are not allowed. Can only deal with numeric attributes. Considers the monotonically increasing case as well as the monotonically decreasing case.
Version:1.0.0
PackageURL:http://prdownloads.sourceforge.net/weka/isotonicRegression1.0.0.zip?download
Author:Eibe Frank
PackageName:isotonicRegression
Title:Learns an isotonic regression model.
Date:2009-09-10
URL:https://weka.sourceforge.io/doc.dev/weka/classifiers/IsotonicRegression.html
Category:Regression
Depends:weka (>=3.7.1)
License:GPL 2.0
Maintainer:Weka team <wekalist@list.scms.waikato.ac.nz>

-install-package命令允许从以下三个位置之一安装软件包:

  • 指定程序包的名称将使用存储在服务器上的程序包描述元数据中的信息安装程序包。如果没有给出版本号,则安装最新的可用软件包版本。
  • 提供zip文件的路径将尝试以Weka软件包的形式解压和安装归档文件。
  • 提供一个网址(以http://)开头指向Web上的软件包压缩文件)将下载并尝试将该压缩文件作为WEKA软件包安装。

uninstall-package命令将卸载命名的软件包。当然,必须安装命名包才能使此命令生效!

阅读更多内容

阅读更多中文内容

如果包管理器没有启动,我该怎么办?

最可能的原因是你的计算机无法直接访问Internet,需要告知Java使用代理服务器访问Web。实现这一点的最佳方式是配置提供代理细节的环境变量,例如,

_JAVA_OPTIONS

它由Oracle Java虚拟机读取。这里有关于此变量的更多信息。此处提供了有关如何在Windows中设置环境变量的信息。对于Mac用户,这里有一个很好的设置环境变量的程序。

将此变量的值设置为

-Dhttp.proxyHost=some.proxy.somewhere.net -Dhttp.proxyPort=port

其中,需要将.net替换为你的代理服务器的名称,需要将端口替换为代理服务器上的适当端口号。你的IT部门应该能够向你提供这些详细信息。

这应该允许包管理器连接到托管包元信息的网站。但是,如果包管理器仍然无法连接到Internet,你还可以通过将上述环境变量设置为,强制它在脱机模式下运行。

-Dweka.packageManager.offline=true

然后,你可以通过Web浏览器手动下载软件包.zip文件,方法是导航到。

https://weka.sourceforge.io/packageMetaData/

单击要安装的软件包的链接,然后单击Latest,最后单击PackageURL旁边给定的URL。

下载包.zip文件后,打开WEKA包管理器,然后单击包管理器窗口右上角的File/URL按钮(在非官方面板中)。然后导航到你的软件包.zip文件并安装它。

如果你在脱机模式下运行Weka,并且你正在安装的包之间存在一些依赖关系,那么仍然可能会出现一些问题,因为Weka无法通过检查中央存储库来验证依赖关系。在WEKA从未能够连接到因特网并且因此没有下载并建立中央包元数据储存库的高速缓存的情况下,这通常是一个问题。幸运的是,只要你可以通过Web浏览器访问Internet,就有一个简单的解决方法:

  • 使用Web浏览器下载https://weka.sourceforge.io/packageMetaData/repo.zip。
  • 如果该目录尚不存在,请创建目录~/wekafiles/repCache
  • 将下载的repo.zip复制到~/wekafiles/repCache并解压缩到那里。
  • 启动WEKA(使用weka.packageManager.offline=true属性加快启动过程;有关信息,请参阅[http://weka.wikispaces.com/How+do+I+use+the+package+manager%3F#Package%20manager%20property%20file])

英文版

10

WEKA

发表评论

邮箱地址不会被公开。 必填项已用*标注

什么阻碍了你实现迈入机器学习领域的目标?

什么阻碍了你实现迈入机器学习领域的目标?

2020-04-22 机器学习

如果你在为进入机器学习领域而挣扎,感觉到有什么东西阻止了自己的开始,那么你应该看看这篇文章。 在这篇文章中,我们会讨论阻止进入机器学习领域的自我限制的信念,让你明白面临的问题。 几乎总是一种自我限制的信念阻碍了你们的进步。 也许你会在一个或多个这样的信念中看到自己。如果是这样的话, [......]

了解详情

R语言机器学习迷你课程

R语言机器学习迷你课程

2020-08-12 机器学习

在这个迷你课程中,你将发现如何开始,构建精确的模型,并自信地完成在14天内使用R预测建模机器学习项目。 这是一个重要而重要的文章。你可能想把它书签。 了解如何准备数据,拟合机器学习模型,并用我的新书评估他们在r上的预测,包括14步教程、3个项目和完整源代码。 我们开始吧。 [......]

了解详情

关于机器学习的几点思考

关于机器学习的几点思考

2020-04-26 机器学习

机器学习是一个大的、跨学科的研究领域。 你可以通过机器学习获得令人印象深刻的结果,并找到非常具有挑战性的问题的解决方案。但这只是更广泛的机器学习领域的一小部分,通常被称为预测建模或预测分析。 在这篇文章中,你将发现如何改变你对机器学习的思考方式,以便更好地为你提供机器学习实践者的服务。 [......]

了解详情

找到你的机器学习部落

找到你的机器学习部落

2020-04-26 机器学习

机器学习是一个充满算法和数据的迷人而强大的研究领域。 问题是,有这么多不同类型的人对机器学习感兴趣,每个人都有不同的需求。重要的是要了解你想要从机器学习中得到什么,并根据这些需求调整你的自学。 如果你不这样做,你很容易就会陷入困境,迷失方向,失去兴趣,得不到你想要的东西。 找到 [......]

了解详情

应用机器学习过程

应用机器学习过程

2020-04-26 机器学习

随着时间的推移,在处理应用机器学习问题时,你会开发出一种模式或流程,以快速获得良好的正常结果。 一旦开发完成,你就可以在一个又一个项目上反复使用此过程。你的流程越健壮、越发达,你就能越快地获得可靠的结果。 在这篇文章中,我想与你分享我解决机器学习问题的过程框架。 你可以将其用作下一 [......]

了解详情