WEKA机器学习迷你课程
机器学习是一项令人着迷的研究,但你如何真正将其用于解决你自己的问题呢?
你可能会困惑于如何最好地为机器学习准备数据,使用哪些算法,或者如何选择一个模型而不是另一个模型。
在这篇文章中,你将发现使用Weka平台学习应用机器学习的14部分速成课程,其中没有任何数学公式或一行编程代码。
完成此迷你课程后:
- 你将了解如何端到端地处理数据集,并交付一组预测或高性能模型。
- 你将熟悉Weka机器学习工作台,包括如何探索算法和设计受控实验。
- 你将了解如何为你的问题创建多个视图,评估多个算法,并使用统计数据为你自己的预测建模问题选择性能最佳的模型。
我们开始吧。
(提示:你可能希望打印此页面或将其加入书签,以便以后可以重新参考)
这个迷你课程是为谁开设的?
在我们开始之前,让我们确认一下你是否在正确的位置。下面的列表提供了一些有关为谁设计此课程的一般指导原则。
如果你不完全符合这些要点,不要惊慌,你可能只需要在一个或另一个领域温习一下就可以跟上了。
你是一个懂得一点机器学习的开发人员。
这意味着你了解机器学习的一些基础知识,如交叉验证、一些算法和偏差-方差权衡。这并不意味着你是一个机器学习博士,只是说你知道这些知识,或者知道到哪里去查找它们。
这门迷你课程不是机器学习的教科书。
它将把你从一个懂一点机器学习的开发人员带到一个可以使用Weka平台从头到尾处理数据集并交付一组预测或高性能模型的开发人员。
迷你课程概述(预期内容)
本迷你课程分为14个部分。
每节课的设计时间是30分钟左右。你可能会更早地完成一些任务,而对于另一些任务,你可能会选择做得更深入,花更多的时间。
你可以根据你的喜好快速或缓慢地完成每个部分。一个舒适的时间表可能是在两周的时间里每天完成一节课。强烈推荐。
你将在接下来的14节课中介绍的主题如下:
- 第01课:下载并安装Weka。
- 第02课:加载标准机器学习数据集。
- 第03课:描述性统计和可视化。
- 第04课:重新调整数据的比例。
- 第05课:对数据执行功能选择。
- 第06课:Weka中的机器学习算法。
- 第07课:评估模型性能。
- 第08课:数据的基准性能。
- 第09课:分类算法。
- 第10课:回归算法。
- 第11课:集成算法。
- 第12课:比较各种算法的性能。
- 第13课:调整算法参数。
- 第14课:保存你的模型。
这会很有趣的。
不过,你还得做些工作,读点书,在Weka上修修补补。你想开始学习应用机器学习,对吗?
第01课:下载并安装Weka
首先要做的是在你的工作站上安装Weka软件。
WEKA是免费的开源软件。它是用Java编写的,可以在任何支持Java的平台上运行,包括:
- Windows
- Mac OS X
- Linux
你可以将Weka作为独立软件下载,也可以作为Java捆绑版本下载。
如果你的系统中尚未安装Java,我建议你下载并安装与Java捆绑在一起的版本。
本课的任务是访问Weka下载页面,下载并在你的工作站上安装Weka。
第02课:加载标准机器学习数据集
现在你已经安装了Weka,你需要加载数据。
WEKA旨在以一种称为ARFF的本机格式加载数据。它是修改后的CSV格式,包括有关每个属性(列)类型的附加信息。
你的Weka安装包括一个子目录,其中包含许多ARFF格式的标准机器学习数据集,可供你加载。
WEKA还支持从原始CSV文件和数据库加载数据,并根据需要将数据转换为ARFF。
在本课中,你将在Weka Explorer中加载标准数据集。
- 启动WEKA(单击鸟图标),这将启动WEKA GUI选择器。
- 点击“Explorer”按钮,将打开Weka Explorer界面。
- 单击“Open file…”按钮并导航到Weka安装中的data/目录,然后加载diabetes.arff数据集。
注意,如果你的Weka安装中没有data/目录,或者你找不到它,请从Weka下载网页下载.zip版本的Weka,将其解压缩并访问data/目录。
你刚刚在Weka中加载了第一个数据集。
尝试加载data/目录中的一些其他数据集。
尝试从UCI机器学习存储库中下载原始CSV文件并将其加载到Weka中。
第03课:描述性统计信息和可视化
一旦可以在Weka中加载数据,查看一下就很重要了。
WEKA允许你查看根据数据计算的描述性统计数据。它还提供可视化工具。
在本课中,你将使用Weka了解有关数据的更多信息。
- 打开Weka GUI选择器。
- 打开Weka Explorer。
- 加载
data/diabetes.arff
数据集。 - 单击“Attributes”列表中的不同属性,并在“Selected Attribute”窗格中查看详细信息。
- 单击“Visualize All”按钮查看所有属性分布。
- 单击“Visualize”(可视化)选项卡,查看所有属性的散点图矩阵。
在“Preprocess”选项卡中查看不同属性的详细信息,并在“Visualize”选项卡中调优散点图矩阵。
第04课:重新调整数据比例
原始数据通常不适合建模。
通常,你可以通过重新调整属性来提高机器学习模型的性能。
在本课中,你将学习如何使用Weka中的数据筛选器重新调整数据的比例。你将标准化数据集的所有属性,将它们重新缩放到0到1的一致范围。
- 打开Weka GUI选择器,然后打开Weka Explorer。
- 加载
data/diabetes.arff
数据集。 - 单击“Filter”窗格中的“Choose”按钮,然后选择unsupered.tribute.Normalize。
- 单击“Apply”按钮。
在“Selected Attribute”窗格中查看每个属性的详细信息,并注意对比例的更改。
探索使用其他数据筛选器,如标准化筛选器。
通过单击加载的筛选器的名称并更改其参数,了解如何配置筛选器。
通过单击“Preprocess”选项卡上的“Save…”按钮,测试保存已修改的数据集以供以后使用。
第05课:对数据执行要素选择
并非数据集中的所有属性都与要预测的属性相关。
你可以使用功能选择来标识那些与你的输出变量最相关的属性。
在本课程中,你将熟悉使用不同的特征选择方法。
- 打开Weka GUI选择器,然后打开Weka Explorer。
- 加载
data/diabetes.arff
数据集。 - 单击“Select attributes”选项卡。
- 单击“Attribute Evaluator”窗格中的“Choose”按钮,然后选择“CorrelationAttributeEval”。
- 你将看到一个对话框,要求你更改为使用此功能选择方法时所需的“Ranker”搜索方法。单击“Yes”按钮。
- 单击“Start”按钮运行功能选择方法。
查看“Attribute Selection Output”窗格中的输出,并记下每个属性的相关分数,数字越大,表示相关性越高。
探索其他特征选择方法,例如使用信息增益(熵)。
在“Preprocess”选项卡和“Remove”按钮中探索选择要从数据集中删除的要素。
第06课:Weka中的机器学习算法
Weka工作台的一个主要优点是它提供了大量的机器学习算法。
你需要熟悉机器学习算法。
在本课中,你将进一步了解Weka中的机器学习算法。
- 打开Weka GUI选择器,然后打开Weka Explorer。
- 加载
data/diabetes.arff
数据集。 - 单击“Classify”选项卡。
- 单击“Choose”按钮,并注意算法的不同分组。
- 单击所选算法的名称进行配置。
- 单击配置窗口上的“More”(更多)按钮了解有关实施的更多信息。
- 单击配置窗口上的“Capability”(功能)按钮,了解有关如何使用该功能的更多信息。
- 请注意窗口上的“Open”和“Save”按钮,其中可以保存和加载不同的配置。
- 将鼠标悬停在配置参数上并注意工具提示帮助。
- 单击“Start”按钮运行算法。
浏览可用的算法。请注意,对于你的数据集是分类(预测类别)还是回归(预测实际值)类型的问题,某些算法不可用。
探索和了解更多关于Weka中提供的各种算法的信息。
获得选择和配置算法的信心。
第07课:评估模型性能
既然你知道了如何选择和配置不同的算法,那么你需要知道如何评估算法的性能。
在本课中,你将了解在Weka中评估算法性能的不同方法。
- 打开Weka GUI选择器,然后打开Weka Explorer。
- 加载
data/diabetes.arff
数据集。 - 单击“Classify”(分类)选项卡。
“Test options”(测试选项)窗格列出了可用于评估算法性能的各种不同技术。
- 黄金标准是10倍的“Cross Validation”(交叉验证)。默认情况下,此选项处于选中状态。对于较小的数据集,折叠数量可以从10调整到5甚至3。
- 如果你的数据集非常大,并且你希望快速评估算法,则可以使用“Percentage split”(百分比拆分)选项。默认情况下,此选项将训练66%的数据集,并使用剩余的34%来评估模型的性能。
- 或者,如果你有一个包含验证数据集的单独文件,你可以通过选择“Supplied test set”(提供的测试集)选项来评估你的模型。你的模型将在整个训练数据集上进行训练,并在单独的数据集上进行评估。
- 最后,你可以在整个训练数据集上评估模型的性能。如果你对描述性模型比预测性模型更感兴趣,这会很有用。
单击“Start”(开始)按钮,使用你选择的测试选项运行给定的算法。
尝试使用不同的测试选项。
单击“More Options…”(更多选项设置)按钮,进一步细化提供的配置中的测试选项。
第08课:数据的基准性能
当你开始评估数据集上的多个机器学习算法时,你需要一个基线来进行比较。
基线结果为你提供了一个参考点,以了解给定算法的结果是好是坏,以及差了多少。
在本课中,你将了解可用作分类和回归算法基线的ZeroR算法。
- 打开Weka GUI选择器,然后打开Weka Explorer。
- 加载
data/diabetes.arff
数据集。 - 单击“Classify”(分类)选项卡。默认情况下选择
ZeroR
算法。 - 单击“Start”(开始)按钮。
这将在你的数据集上使用10次交叉验证运行ZeroR算法。
ZeroR算法,也称为Zero Rule,是一种可用于计算数据集上所有算法的性能基线的算法。这是“最差”的结果,任何表现出较好性能的算法都有一定的技巧来解决你的问题。
在分类算法上,ZeroR算法总是预测最丰富的类别。如果数据集具有相等数量的类,它将预测第一个类别值。
在糖尿病数据集上,这导致分类准确率为65%。
对于回归问题,ZeroR算法总是预测平均输出值。
在一系列不同的数据集上试验ZeroR算法。这是你应该始终在所有其他算法之前首先运行的算法,以制定基线。
第09课:分类算法导览
WEKA提供了大量的分类算法。
在本课中,你将发现5种可用于解决分类问题的顶级分类算法。
- 打开Weka GUI选择器,然后打开Weka Explorer。
- 加载
data/diabetes.arff
数据集。 - 单击“Classify”(分类)选项卡。
- 单击“Choose”(选择)按钮。
5种可用于分类的顶级算法包括:
- 逻辑回归(
functions.Logistic
)。 - 朴素贝叶斯(
bayes.NaiveBayes
)。 - k-近邻(
lazy.IBk)
。 - 分类和回归树(
Trees.REPTree
)。 - 支持向量机(
functions.SMO
)。
使用这些顶级算法中的每一个进行实验。
在不同的分类数据集(如具有两个类的数据集和具有更多类的数据集)上尝试使用它们。
第10课:回归算法之旅
分类算法是Weka的专长,但其中许多算法都可以用于回归。
回归是对实际有价值的结果(如美元金额)的预测,不同于预测类别的分类(如“狗”或“猫”)。
在本课中,你将发现5种可用于解决回归问题的顶级回归算法。
你可以从Weka数据集下载网页下载一套标准回归机器学习数据集。下载回归问题的datasets-numeric.jar归档文件,标题为:
- “A jar file containing 37 regression problems, obtained from various sources”(包含37个回归问题的JAR文件,这些问题来自各种来源)。
使用你喜欢的解压缩程序解压缩.jar文件,你将拥有一个名为numeric/的新目录,其中包含37个你可以处理的回归问题。
- 打开Weka GUI选择器,然后打开Weka Explorer。
- 加载
data/housing.arff
数据集。 - 单击“Classify”(分类)选项卡。
- 单击“Choose”(选择)按钮。
5种可用于回归的顶级算法包括:
- 线性回归(
functions.LinearRegression
)。 - 支持向量回归(
functions.SMOReg
)。 - k-近邻(
lazy.IBk
)。 - 分类和回归树(
Trees.REPTree
)。 - 人工神经网络(
functions.MultilayerPerceptron
)。
使用这些顶级算法中的每一个进行实验。
在不同的回归数据集上试用它们。
第11课:集成算法导览
WEKA非常容易使用,这可能是它相对于其他平台的最大优势。
除此之外,Weka还提供了一大套集成机器学习算法,这可能是Weka相对于其他平台的第二大优势。
花时间熟练使用Weka的集成算法是值得的。在本课中,你将发现可以使用的5种顶级集成机器学习算法。
- 打开Weka GUI选择器,然后打开Weka Explorer。
- 加载
data/diabetes.arff
数据集。 - 单击“Classify”(分类)选项卡。
- 单击“Choose”(选择)按钮。
你可以使用的5种顶级集成算法包括:
- 装袋(meta.Bagging)。
- 随机森林(treeses.RandomForest)。
- AdaBoost(meta.AdaBoost)。
- 投票(meta.Voting)。
- 堆叠(meta.Stacking)。
使用这些顶级算法中的每一个进行实验。
这些集成方法中的大多数都允许你选择子模型。使用子模型的不同组合进行实验。以非常不同的方式工作并产生不同预测的技术组合通常会产生更好的性能。
在不同的分类和回归数据集上试用它们。
第12课:比较各种算法的性能
WEKA提供了一个专门为比较算法而设计的不同工具,称为WEKA实验环境。
Weka实验环境允许你使用机器学习算法设计和执行受控实验,然后分析结果。
在本课中,你将在Weka中设计你的第一个实验,并了解如何使用Weka实验环境来比较机器学习算法的性能。
- 打开“Weka Chooser GUI”(WEKA选择器GUI)。
- 点击“Experimenter”(实验)按钮,打开“Weka Experiment Environment”(WEKA实验环境)。
- 单击“New”(新建)按钮。
- 单击“Add New…”(添加新文件)按钮,然后选择“
data/diabetes.arff
”。 - 单击“Add New…”(添加新文件)按钮,然后添加“ZeroR”和“IBK”。
- 单击“Run”(运行)选项卡,然后单击“Start”(开始)按钮。
- 单击“Analyse”(分析)选项卡,然后单击“Experiment”(实验)按钮,然后单击“Perform test”(执行测试)按钮。
你刚刚设计、执行并分析了你在WEKA的第一个对照实验的结果。
你在糖尿病数据集上将ZeroR算法与具有默认配置的IBK算法进行了比较。
结果表明,IBK比ZeroR具有更高的分类准确率,并且这种差异具有统计学意义(结果旁边的小“v”字符)。
扩展实验并添加更多算法,然后重新运行实验。
更改“Analyse”(分析)选项卡上的“Test base”(测试基准),以更改将哪组结果作为与其他结果进行比较的参考。
第13课:优化算法参数
要最大限度地利用机器学习算法,你必须根据你的问题调整方法的参数。
你事先不知道如何最好地做到这一点,因此你必须尝试许多不同的参数。
WEKA实验环境允许你设计受控实验,以比较不同算法参数的结果以及差异是否具有统计学意义。
在本课程中,你将设计一个实验来比较k近邻算法的参数。
- 打开“Weka Chooser GUI”(WEKA选择器GUI)。
- 点击“Experimenter”(实验)按钮,打开“Weka Experiment Environment”(WEKA实验环境)。
- 单击“New”(新建)按钮。
- 单击“Add New…”(添加新文件)按钮,然后选择“
data/diabetes.arff
”。 - 单击“Add New…”(添加新文件)按钮,并添加3个拷贝的“IBk ”算法。
- 单击列表中的每个IBk 算法,然后单击“Edit Selected…”(编辑选定的ibk算法)按钮,并将3种不同算法的“KNN”更改为1、3、5。
- 单击“Run”(运行)选项卡,然后单击“Start”(开始)按钮。
- 单击“Analyse”(分析)选项卡,然后单击“Experiment”(实验)按钮,然后单击“Perform test”(执行测试)按钮。
你刚刚设计、执行和分析了一个对照实验的结果,以比较算法参数。
我们可以看到,大K值的结果比默认值1要好,差异很大。
探索如何更改KNN的其他配置属性,并在开发实验以调整机器学习算法方面建立信心。
第14课:保存你的模型
一旦你找到了针对你的问题的最佳表现模型,你需要最终确定它以供以后使用。
在这最后一课中,你将学习如何训练最终模型并将其保存到文件中以供以后使用。
- 打开Weka GUI选择器,然后打开Weka Explorer。
- 加载
data/diabetes.arff
数据集。 - 单击“Classify”(分类)选项卡。
- 将“Test options”(测试选项)更改为“Use training set”(使用训练集),然后单击“Start”开始按钮。
- 右键单击“Result list”(结果列表)中的结果,然后单击“Save model”(保存模型),然后输入文件名,如“dminm-final”。
你刚刚在整个训练数据集上训练了一个最终模型,并将生成的模型保存到一个文件中。
你可以将此模型加载回Weka,并使用它对新数据进行预测。
- 右键单击“Result list”(结果列表),单击“Load model”(加载模型),然后选择你的模型文件“dminm-final.model”。
- 将“Test options”(测试选项)更改为“Supplied test set”(提供的测试集)并选择
data/diabetes.arff
(这可能是一个你没有预测的新文件)。 - 单击“Test options”(测试选项)中的“More options”(更多选项),并将“Output predictions”(输出预测)更改为“Plain Text”(纯文本)。
- 右键单击加载的模型,然后选择“Re-evaluate model on current test set”(在当前测试集上重新评估模型)。
新的预测现在将列在“Classifier output”(分类器输出)窗格中。
尝试保存不同的模型,并对全新的数据集进行预测。
回顾的Weka机器学习迷你课程
恭喜你,你成功了。
花点时间回顾一下你已经走了多远:
- 你可能是第一次发现了如何启动和使用Weka Explorer和Weka实验环境。
- 你加载了数据,对其进行了分析,并使用数据过滤器和特征选择为建模准备数据。
- 你了解了一套机器学习算法,以及如何设计受控实验来评估它们的性能。
不要对此掉以轻心,你在短时间内已经走了很长的路。这只是你与Weka的应用机器学习之旅的开始。不断练习和发展你的技能。