如何使用WEKA包管理器?

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

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

命令行包管理

请参见这个页面上的文章。

运行已安装的学习算法

在“入门”前面已经介绍了主WEKA发行版附带的运行学习算法(即包含在weka.jar文件中)。但是,使用包管理器安装的包中的算法怎么办?我们不想在每次不想运行特定算法时都向类路径添加大量的JAR文件。幸运的是,我们不必这么做。WEKA有一种机制可以在运行时动态加载已安装的包。这意味着新安装的软件包可以立即在Weka的GUI中使用。

我听到你在问,如何在命令行上运行包中的算法呢?我们可以使用Run命令运行命名算法:

java weka.Run

如果未提供参数,则RUN将输出以下用法信息:

 Usage:
     weka.Run [-no-scan] [-no-load] <scheme name [scheme options]>

run命令支持子字符串匹配,因此你可以运行分类器(如J48),如下所示:

java weka.Run J48

当提供的方案名称有多个匹配项时,你将看到一个列表。例如:

 java weka.Run NaiveBayes

 Select a scheme to run, or <return> to exit:
     1) weka.classifiers.bayes.ComplementNaiveBayes
     2) weka.classifiers.bayes.NaiveBayes
     3) weka.classifiers.bayes.NaiveBayesMultinomial
     4) weka.classifiers.bayes.NaiveBayesMultinomialUpdateable
     5) weka.classifiers.bayes.NaiveBayesSimple
     6) weka.classifiers.bayes.NaiveBayesUpdateable

 Enter a number >

你可以通过提供-no-scan选项关闭包扫描和子字符串匹配。在脚本中使用Run命令时,这很有用。在这种情况下,你需要指定要使用的算法的完全限定名称。例如:

 java weka.Run -no-scan weka.classifiers.bayes.NaiveBayes

要减少启动时间,你还可以通过指定-no-load选项来关闭已安装软件包的动态加载。在这种情况下,如果你计划使用任何打包的算法,则需要在类路径中显式包含它们。例如:

java -classpath ./weka.jar:$HOME/wekafiles/packages/DTNB/DTNB.jar rweka.Run -no-load -no-scan weka.classifiers.rules.DTNB

GUI包管理器

除了命令行客户端之外,Weka的包管理系统还有一个图形界面。这可以从GUIChooser中的“Tools(工具)”菜单访问。包管理系统的命令行客户端中的所有可用功能都在GUI版本中可用,并且可以一次安装和卸载多个包。

PackageManagerMain

包管理器的窗口水平分为两部分:顶部是包列表,底部是可用于显示当前所选包信息的迷你浏览器。

软件包列表显示软件包的名称、其类别、当前安装的版本(如果已安装)、可通过存储库获得的最新版本以及软件包是否已加载。通过单击相应的列标题,此列表可以按包名或类别排序。再次单击相同的标题会颠倒排序顺序。窗口左上角的三个单选按钮可用于过滤列表中显示的内容。可以显示所有软件包(默认)、所有可用的软件包(即尚未安装的软件包)或仅显示已安装的软件包。

如果一个程序包有多个版本可用,则可以通过单击“Repository Version”列中的一个条目来访问它们:

PackageManagerVersions

安装和删除软件包

在窗口的最顶端有三个按钮。左侧是一个按钮,可用于刷新包存储库元数据的缓存副本。第一次使用包管理器(GUI或命令行)时,在建立初始缓存时会有很短的延迟。

注意:WEKA(3.7.2)不会自动检查中央存储库中的新信息,因此定期刷新本地缓存是个好主意。从Weka 3.7.3开始,如果中央存储库中有新的包可用,包管理器将通知你。

右上角的两个按钮用于分别安装和删除软件包。可以通过按住Shift并左键单击组合来选择范围和/或通过按住Command并左键单击组合来添加到选择中来安装/删除多个软件包。在Install和Uninstall-ton下面是一个复选框,可以启用该复选框来忽略所选软件包所需的任何依赖项以及可能发生的任何冲突。选中此复选框时安装程序包将“不”安装所需的依赖项。

某些软件包可能包含有关如何完成安装的其他信息,或者在安装软件包时显示的特殊说明:

PackageManagerSpecial

通常没有必要在安装软件包后重新启动Weka-更改应该立即可用。升级已安装的软件包时例外。如果有疑问,请重新启动Weka。

非官方套餐

包列表显示了那些将其元数据存储在Weka的中央元数据存储库中的包。这些软件包是“官方的”Weka软件包,Weka团队经验证,它们似乎提供了所宣传的内容(并且不包含恶意代码或恶意软件)。

也可以安装未经过正式程序的非官方软件包。例如,想要将实验算法快速提供给社区以获得反馈的研究人员可能会提供非官方的软件包。非官方软件包可以通过点击软件包管理器窗口右上角的“File/url”按钮来安装。这将弹出一个“Unnotional Package Install”对话框,用户可以在其中浏览他们的文件系统以查找软件包zip文件,或者直接输入软件包zip文件的URL。请注意,不会对非官方包执行依赖项检查。

使用HTTP代理

GUI和命令行包管理器都可以通过http代理进行操作。为此,请从命令行启动weka并提供代理主机和端口的属性值:

java -Dhttp.proxyHost=some.proxy.somewhere.net -Dhttp.proxyPort=port weka.gui.GUIChooser

如果你的代理需要身份验证,则Weka将显示一个GUI对话框,你可以在其中输入用户名和密码。如果你在headless环境中运行,则可以提供另外两个(非标准)属性:

-Dhttp.proxyUser=some_user_name -Dhttp.proxyPassword=some_password

使用备用中央包元数据存储库

默认情况下,命令行和GUI包管理器都使用托管在Sourceforge上的中央包元数据存储库。万一此站点由于某种原因不可用,则可以将包管理系统指向另一个存储库。该机制允许访问官方存储库的临时备份、建立本地镜像和设置备用存储库以供使用等。

可以通过设置Java属性指定替代存储库:

weka.core.wekaPackageRepositoryURL=http://some.mirror.somewhere

这可以在使用-D标志从命令行启动WEKA时设置,也可以放入$WEKA_HOME/props中名为“PackageRepository.props”的文件中。WEKA_HOME的默认值是user.home/wekafiles,其中user.home是用户的主目录。有关Weka如何以及在哪里存储配置信息的更多信息,请参阅包结构文章

包管理器属性文件

正如上一节所提到的,可以通过在$WEKA_HOME/props中的PackageRepository.props文件中放置一个条目来指定替代包元数据存储库。从Weka 3.7.8(以及2012年9月24日之后的快照构建)开始,包管理器还会查找放置在$WEKA_HOME/props/PackageManager.props中的属性。当前可以设置的属性集包括:

weka.core.wekaPackageRepositoryURL=http://some.mirror.somewhere
weka.packageManager.offline=[true | false]
weka.packageManager.loadPackages=[true | false]
weka.pluginManager.disable=com.funky.FunkyExplorerPluginTab

脱机模式(如果未指定)的默认值为false,loadPackages的默认值为true。可以使用weka.pluginManager.Disable属性指定要在GUI中“禁用”的完全限定类名的逗号分隔列表。这可用于使有问题的组件在GUI中不可用,而不必阻止加载包含这些组件的整个包。例如,“funkyPackage”可以提供几个分类器和一个用于可视化的特殊资源管理器插件选项卡。例如,假设插件资源管理器选项卡存在某些数据集的问题,并导致生成令人讨厌的异常(或者在最糟糕的情况下可能会使资源管理器崩溃!)。在这种情况下,我们可能希望使用包提供的分类器,而只禁用资源管理器插件。将Explorer插件的完全限定名称作为与weka.pluginManager.Disable属性相关联的逗号分隔列表的成员列出将实现这一点。

00

WEKA

发表评论

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

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

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

2020-04-22 机器学习

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

了解详情

R语言机器学习迷你课程

R语言机器学习迷你课程

2020-08-12 机器学习

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

了解详情

关于机器学习的几点思考

关于机器学习的几点思考

2020-04-26 机器学习

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

了解详情

找到你的机器学习部落

找到你的机器学习部落

2020-04-26 机器学习

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

了解详情

应用机器学习过程

应用机器学习过程

2020-04-26 机器学习

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

了解详情