机器学习是个非常吸引人的研究领域,但是您怎么把它真正地应用到您自己的问题上呢?
您可能会对如何为机器学习准备数据,使用哪种算法或该如何选择模型而感到困惑。
那么,在这篇文章中,您接下来将会看到分为十四部分的教您使用Weka平台进行应用式机器学习的速成课程,在这些课程中没有任何数学公式或任何程序代码。
在您完成这个迷你课程后:
接下来,让我们开始吧。
(提示:您最好打印或收藏此页,以便您日后可以参考)
由Leon Yaakov提供的照片,保留部分权利。
我们在开始前要先确认您是否来对了地方。下面的列表将提供一些关于本课程是为谁设计的基本原则。
如果您不完全符合这些要点,您不需要担心,你可能只需要在某方面或者其它方面学习一下以跟上。
您是一个懂一点机器学习的开发者。
这意味着您懂一点机器学习的基本知识,例如交叉验证,一些算法以及偏差-方差权衡。但这并不意味着你已经是一个机器学习方面的博士,只是您知道它们的位置或知道在哪里查找他们。
这个迷你课程不是关于机器学习的教科书。
它将把您从一个懂一点机器学习的开发者转变为一个可以使用Weka平台从头到尾地处理一个数据集,并提供一个预测模型或高性能模型的开发者。
这个迷你课程分为14个部分。
每堂课长大约30分钟。您可能会提前完成某些课程,也可能您对其它课程会选择花更多时间来更深入学习。
您可以尽可能快或者尽可能慢地完成每个部分。强烈推荐的合适的时间表:两周内每天一课地完成这些课程。
接下来的14节课将涵盖的主题如下:
这个过程将会是非常有趣的。
即使您将必须做一点工作,进行一点阅读,在Weka上修补模型。您想开始应用机器学习吗?
(提示:所有课程的答案都可以在这个博客上找到,请善用使用搜索功能)
如有任何问题,请在下面的评论中发帖。
并在评论中分享您的结果。
坚持住,不要放弃!
首先要做的就是在工作站上安装Weka软件。
Weka是免费的开源软件。它是用Java语言编写的,因此可以在任何支持Java环境的平台上运行,包括:
您可以仅仅下载Weka或下载与Java捆绑的版本。
如果您的系统上尚未安装Java,则建议您下载并安装与Java捆绑的版本。
现在您已经安装好了Weka,接下来您需要加载数据。
Weka可以加载一种称作ARFF的本地格式数据。它是一种改进过的CSV格式,包含有关每个属性(列)的类型的附加信息。
您的Weka的安装目录包含着一个子目录,其中包含许多ARFF格式的标准机器学习数据集供您加载。
Weka也支持从原始CSV文件以及数据库加载数据,并根据需要将数据转换为ARFF。
在本课中,您将学习在Weka Explorer中加载标准数据集。
请注意,如果您的Weka安装中没有数据/相关目录,或者您找不到它,请从Weka下载网页下载Weka的.zip版本,解压缩并访问数据/相关目录。
您刚刚在Weka中加载了您第一个数据集。
试试加载数据/目录中的一些其他数据集。
尝试从UCI Machine Learning存储库下载原始CSV文件并将其加载到Weka中。
一旦您可以加载Weka的数据,重要的是看它的属性。
Weka可以让您查看从您的数据计算出来的描述性统计信息。它还提供可视化工具。
在本课中,您将使用Weka来了解有关数据的更多信息。
在“Preprocess(预处理)”选项卡中查看不同属性的详细信息,然后在“Visualize(可视化)”选项卡中调整散点图矩阵。
原始数据通常不适合拿来建模。
通常情况下,您可以通过重调属性来提高机器学习模型的性能。
在本课中,您将学习如何使用Weka中的数据过滤器来重调数据。您将可以把数据集的所有属性标准化,并将它们重新标定为一致的0到1范围。
在“Selected attribute”窗格中查看每个属性的详细信息,并记下对比例的更改。
使用其他数据过滤器(如Standardize filter)进行探索。
通过点击加载过滤器的名称并更改它的参数来探索配置过滤器。
通过单击“Preprocess”选项卡上的“Save…(保存...)”按钮,测试保存修改的数据集以备后用。
并不是数据集中的所有属性都与您想要预测的属性可能相关。
您可以使用功能选择来标识和输出变量最相关的那些属性。
在本课中,您将可以熟练地使用不同的特征选择方法。
5. 点击“Start”按钮运行特征选择方法。
查看“Attribute selection output(属性选择输出)”窗格中的输出,并记下每个属性的相关性分数,数字越大表示相关性越强。
探索其他特征选择方法,如使用information gain (entropy)。
在“Process”选项卡和“Remove”按钮中探索选择要从数据集中删除的功能。
Weka平台的一个主要优点是它提供了大量的机器学习算法。
你需要了解机器学习算法。
在本课中,您将深入了解Weka中的机器学习算法。
浏览可用的算法。请注意,无论您的数据集是分类(预测类别)还是回归(预测实际值)类型问题,有些算法都是不可用的。
探索和了解更多关于Weka中可用的各种算法。
请您自信地选择和配置算法。
现在您已经知道如何选择和配置不同的算法,您需要知道如何评估算法的性能。
在本课中,您将学习关于评估Weka算法性能的不同方法。
“Test options(测试选项)”窗格列出了可用于评估算法性能的各种不同方法。
点击“Start”按钮,将会使用您选择的测试选项运行给定的算法。
尝试不同的测试选项。
通过单击“More options ...(更多选项...)”按钮,进一步优化配置中的测试选项。
当您开始在数据集上评估多个机器学习算法时,那么您也许需要一个比较基准。
基准结果为您提供了一个参考点,以了解给定算法的结果是好还是差,以及好多少和差多少。
在本课中,您将了解可用作分类和回归算法基准的ZeroR算法。
这将在您的数据集上使用10-折交叉验证(10-fold cross validation)来运行ZeroR算法。
ZeroR算法也称为零规则(Zero Rule)算法,可用于计算数据集上所有算法的性能基准。这是“最差”的结果。因此,任何能显示更好性能的算法都将对您的问题产生作用。
在分类算法中,ZeroR算法将始终预测最丰富的类别。如果数据集的类数相等,则会预测第一个类别的值。
在糖尿病数据集中,这导致65%的分类准确性。(diabetes:糖尿病)
对于回归问题,ZeroR算法将始终预测平均输出值。
在一系列不同的数据集上使用ZeroR算法进行实验。您最好在别人找到基准之前先运行这个ZeroR算法。
Weka提供了大量的分类算法。
在本课中,您将会发现可以在分类问题上使用的5种最重要的分类算法。
这五种可用于分类的最重要算法包括:
尝试一下这些顶级的算法。
在不同的分类数据集上进行测试,比如那些有两个类别和多个类别的数据集。
分类算法是Weka的专长,但是其中的许多算法都可以用于回归。
回归是用来预测一个真实的有价值的结果(如一美元的价值),而不同于用来预测一个类别(如“狗”或“猫”)。
在本课中,您将发现可以用于回归问题的5个最佳的回归算法。
您可以从Weka数据集下载一套标准回归机器学习数据集。下载回归问题档中的datasets-numeric.jar,标题为:
使用你最喜欢的解压缩程序来解压.jar文件,你将会得到一个名为numeric/ 的新目录,包含你可以研究的37个回归问题。
而这五种可用于回归的顶级算法包括:
尝试一下这些顶级的算法。
在不同的回归数据集上进行测试。
Weka非常容易使用,这可能是和其他平台相比起来的最大优势。
除此之外,Weka还提供了大量的集成机器学习算法,这可能是Weka与其他平台相比的第二大优势。
使用您的时间去熟悉Weka的集成算法是值得的。在本课中,您将发现您可以使用的5种顶级集成机器学习算法。
以下是五种您可以使用的顶级集成算法包括:
尝试一下这些顶级算法。
这些集成方法大部分都可以让您自主选择子模型。您可以使用子模型的不同组合进行实验。以有差异的方式进行并产生不同预测结果的技术组合往往有更好的性能。
试用一下不同的分类和回归数据集。
Weka提供了一个专门用于比较算法的称为Weka实验环境(Weka Experiment Environment)的独特工具。
Weka实验环境允许您使用机器学习算法设计和执行受控实验,然后分析结果。
在本课中,您将在Weka中设计您的第一个实验,并了解如何使用Weka实验环境来比较机器学习算法的性能。
您只是设计、执行并分析了Weka中第一个受控实验的结果。
您将ZeroR算法与缺省配置的IBk算法在糖尿病数据集上进行了比较。
结果表明,IBK具有比Zero更高的分类准确性,并且这种差异具有统计显着性(结果旁边的小“v”字符)。
展开实验并添加更多算法并重新运行实验。
更改“Analyse”选项卡上的“Test base(测试基础)”以更改将哪组结果作为与其他结果比较的参考。
为了充分利用机器学习算法,您必须调整方法的参数来解决您的问题。
您不知道如何最好地做到这一点,所以您必须尝试很多不同的参数。
Weka实验环境允许您设计受控实验来比较不同算法参数的结果以及差异是否具有统计显着性。
在本课中,您将要设计一个实验来比较k-近邻算法的参数。
您只是设计、执行了实验和分析了对照实验的结果,从而比较算法参数。
我们可以看到,较大的K值的结果比默认值1好,而个中差别是显着的。
探索尝试改变KNN的其他配置属性,并建立起开发实验来调整机器学习算法的信心。
一旦你找到了性能最好的模型,您需要确定保存它以备后用。
在最后一课中,您将了解如何训练出最终模型并将其保存到文件中供以后使用。
您刚刚在整个训练数据集上训练出最终模型,并将生成的模型保存到文件中。
您可以将此模型加载到Weka中,并使用它来预测新数据。
新的预测现在将在“Classifier output(分类器输出)”窗格中列出。
尝试保存不同的模型,并预测全新的数据集。
恭喜你,你做到了。做得好!
花点时间回头看看你到底走了多远
不要轻视这一点,你在很短的时间内走了很长的一段路。但这只是Weka应用机器学习之旅的开始。请继续练习和发展你的技能。