专栏首页Weka机器学习平台的迷你课程

Weka机器学习平台的迷你课程

14天内成为机器学习的专家

机器学习是个非常吸引人的研究领域,但是您怎么把它真正地应用到您自己的问题上呢?

您可能会对如何为机器学习准备数据,使用哪种算法或该如何选择模型而感到困惑。

那么,在这篇文章中,您接下来将会看到分为十四部分的教您使用Weka平台进行应用式机器学习的速成课程,在这些课程中没有任何数学公式或任何程序代码。

在您完成这个迷你课程后:

  • 您将知道如何通过数据集端到端地工作,并提供一组预测或高性能模型。
  • 您将了解Weka机器学习工作平台的使用方法,包括懂得如何探索算法和知道如何设计控制实验。
  • 您将知道如何为您的问题创建多个视图以及评估多个算法,并使用统计信息为您自己的预建模问题选择性能最佳的模型。

接下来,让我们开始吧。

提示您最好打印或收藏此页,以便您日后可以参考

Weka的应用机器学习迷你课程

Leon Yaakov提供的照片,保留部分权利。

这个迷你课程是面向哪些人的?

我们在开始前要先确认您是否来对了地方。下面的列表将提供一些关于本课程是为谁设计的基本原则。

如果您不完全符合这些要点,您不需要担心,你可能只需要在某方面或者其它方面学习一下以跟上。

您是一个懂一点机器学习的开发者。

这意味着您懂一点机器学习的基本知识,例如交叉验证,一些算法以及偏差-方差权衡。但这并不意味着你已经是一个机器学习方面的博士,只是您知道它们的位置或知道在哪里查找他们。

这个迷你课程不是关于机器学习的教科书。

它将把您从一个懂一点机器学习的开发者转变为一个可以使用Weka平台从头到尾地处理一个数据集,并提供一个预测模型或高性能模型的开发者。

迷你课程概览(您应当期待什么)

这个迷你课程分为14个部分。

每堂课长大约30分钟。您可能会提前完成某些课程,也可能您对其它课程会选择花更多时间来更深入学习。

您可以尽可能快或者尽可能慢地完成每个部分。强烈推荐的合适的时间表:两周内每天一课地完成这些课程。

接下来的14节课将涵盖的主题如下:

  • 第1课:下载并安装Weka
  • 第2课:加载标准机器学习数据集
  • 第3课:描述统计和可视化
  • 第4课:重调数据
  • 第5课:对数据进行功能选择
  • 第6课:Weka中的机器学习算法
  • 第7课:评估模型性能
  • 第8课:数据的性能基准
  • 第9课:分类算法
  • 第10课:回归算法
  • 第11课:集成算法
  • 第12课:比较算法的性能
  • 第13课:调整算法参数
  • 第14课:保存你的模型

这个过程将会是非常有趣的。

即使您将必须做一点工作,进行一点阅读,在Weka上修补模型。您想开始应用机器学习吗?

提示所有课程的答案都可以在这个博客上找到,请善用使用搜索功能

如有任何问题,请在下面的评论中发帖。

并在评论中分享您的结果。

坚持住,不要放弃!

第1课:下载并安装Weka

首先要做的就是在工作站上安装Weka软件。

Weka是免费的开源软件。它是用Java语言编写的,因此可以在任何支持Java环境的平台上运行,包括:

  • Windows
  • Mac OS X
  • Linux

您可以仅仅下载Weka或下载与Java捆绑的版本。

如果您的系统上尚未安装Java,则建议您下载并安装与Java捆绑的版本。

  1. 本课您的任务是访问Weka下载页面,下载并安装Weka到您的工作站上。

第2课:加载标准机器学习数据集

现在您已经安装好了Weka,接下来您需要加载数据。

Weka可以加载一种称作ARFF的本地格式数据。它是一种改进过的CSV格式,包含有关每个属性(列)的类型的附加信息。

您的Weka的安装目录包含着一个子目录,其中包含许多ARFF格式的标准机器学习数据集供您加载。

Weka也支持从原始CSV文件以及数据库加载数据,并根据需要将数据转换为ARFF。

在本课中,您将学习在Weka Explorer中加载标准数据集。

  1. 双击Weka(鸟形状的图标),这将启动Weka GUI Chooser。
  2. 点击“Explorer”按钮,这将打开Weka Explorer界面。
  3. 单击“Open file...”按钮并选择Weka安装目录下的数据/相关目录并加载diabetes.arff数据集。

请注意,如果您的Weka安装中没有数据/相关目录,或者您找不到它,请从Weka下载网页下载Weka的.zip版本,解压缩并访问数据/相关目录。

您刚刚在Weka中加载了您第一个数据集。

试试加载数据/目录中的一些其他数据集。

尝试从UCI Machine Learning存储库下载原始CSV文件并将其加载到Weka中。

第3课:描述统计和可视化

一旦您可以加载Weka的数据,重要的是看它的属性。

Weka可以让您查看从您的数据计算出来的描述性统计信息。它还提供可视化工具。

在本课中,您将使用Weka来了解有关数据的更多信息。

  1. 打开Weka GUI Chooser。
  2. 打开Weka Explorer。
  3. 加载data/diabetes.arff数据集。
  4. 点击“Attributes(属性)”列表中的不同Attributes(属性),并在“Selected attribute(选定的属性)”窗格中查看详细信息。
  5. 点击“Visualize All(全部可视化)”按钮查看所有属性分布。
  6. 单击“Visualize(可视化)”选项卡,查看所有属性的散点图矩阵。

在“Preprocess(预处理)”选项卡中查看不同属性的详细信息,然后在“Visualize(可视化)”选项卡中调整散点图矩阵。

第4课:重调数据

原始数据通常不适合拿来建模。

通常情况下,您可以通过重调属性来提高机器学习模型的性能。

在本课中,您将学习如何使用Weka中的数据过滤器来重调数据。您将可以把数据集的所有属性标准化,并将它们重新标定为一致的0到1范围。

  1. 打开Weka GUI Chooser,然后打开Weka Explorer。
  2. 加载data/diabetes.arff数据集。
  3. 点击“Filter(筛选)”窗格中的“Choose(选择)”按钮,然后选择“unsupervised.attribute.Normalize(无监督.属性.标准化)”。
  4. 点击“Apply(应用)”按钮。

在“Selected attribute”窗格中查看每个属性的详细信息,并记下对比例的更改。

使用其他数据过滤器(如Standardize filter)进行探索。

通过点击加载过滤器的名称并更改它的参数来探索配置过滤器。

通过单击“Preprocess”选项卡上的“Save…(保存...)”按钮,测试保存修改的数据集以备后用。

第5课:对数据进行功能选择

并不是数据集中的所有属性都与您想要预测的属性可能相关。

您可以使用功能选择来标识和输出变量最相关的那些属性。

在本课中,您将可以熟练地使用不同的特征选择方法。

  1. 打开Weka GUI Chooser,然后打开Weka Explorer。
  2. 加载data/diabetes.arff数据集。
  3. 点击“Select attributes”标签。
  4. 单击“Attribute Evaluator(属性评估程序)”窗格中的“Choose(选择)”按钮,然后选择“CorrelationAttributeEval”。
    1. 您将看到一个对话框,要求您更改为使用此功能选择方法时所需的“Ranker(排序器)”搜索方法。点击“Yes”按钮。

5. 点击“Start”按钮运行特征选择方法。

查看“Attribute selection output(属性选择输出)”窗格中的输出,并记下每个属性的相关性分数,数字越大表示相关性越强。

探索其他特征选择方法,如使用information gain (entropy)。

在“Process”选项卡和“Remove”按钮中探索选择要从数据集中删除的功能。

第6课:Weka中的机器学习算法

Weka平台的一个主要优点是它提供了大量的机器学习算法。

你需要了解机器学习算法。

在本课中,您将深入了解Weka中的机器学习算法。

  1. 打开Weka GUI Chooser,然后打开Weka Explorer。
  2. 加载data/diabetes.arff数据集。
  3. 点击“Classify(分类)”标签。
  4. 点击“Choose(选择)”按钮,注意算法的不同分组。
  5. 单击所选算法的名称进行配置。
  6. 单击配置窗口上的“More”按钮以了解更多关于实现的信息。
  7. 单击配置窗口上的“Capabilities(功能)”按钮以了解更多关于如何使用它的信息。
  8. 注意窗口上的“Open”和“Save”按钮,可以保存和加载不同的配置。
  9. 将鼠标悬停在配置参数上,并留意工具提示帮助。
  10. 点击“Start”按钮运行算法。

浏览可用的算法。请注意,无论您的数据集是分类(预测类别)还是回归(预测实际值)类型问题,有些算法都是不可用的。

探索和了解更多关于Weka中可用的各种算法。

请您自信地选择和配置算法。

第7课:评估模型性能

现在您已经知道如何选择和配置不同的算法,您需要知道如何评估算法的性能。

在本课中,您将学习关于评估Weka算法性能的不同方法。

  1. 打开Weka GUI Chooser,然后打开Weka Explorer。
  2. 加载data/diabetes.arff数据集。
  3. 点击“Classify”标签。

Test options(测试选项)”窗格列出了可用于评估算法性能的各种不同方法。

  • 标准式/0-1式是10-折“交叉验证(Cross Validation)”。这是默认选择的。对于一个小的数据集,折叠的数量可以从10调整到5甚至3。
  • 如果您的数据集非常大,并且想要快速评估算法,则可以使用“Percentage split(百分比分割)”选项。默认情况下,此选项将训练66%的数据集,并使用剩余的34%来评估模型的性能。
  • 或者,如果您有单独的包含验证数据集的文件,您则可以通过选择“Supplied test set”选项来评估您的模型。您的模型将在整个训练数据集上进行训练,并在单独的数据集上进行评估。
  • 最后,您可以在整个训练数据集上评估模型的性能。相比起预测性模型,如果您对描述性模型更感兴趣,这将非常有用。

点击“Start”按钮,将会使用您选择的测试选项运行给定的算法。

尝试不同的测试选项。

通过单击“More options ...(更多选项...)”按钮,进一步优化配置中的测试选项。

第8课:数据的性能基准

当您开始在数据集上评估多个机器学习算法时,那么您也许需要一个比较基准。

基准结果为您提供了一个参考点,以了解给定算法的结果是好还是差,以及好多少和差多少。

在本课中,您将了解可用作分类和回归算法基准的ZeroR算法。

  1. 打开Weka GUI Chooser,然后打开Weka Explorer。
  2. 加载data/diabetes.arff数据集。
  3. 点击“Classify”标签。ZeroR算法是默认选择的。
  4. 点击“Start”按钮。

这将在您的数据集上使用10-折交叉验证(10-fold cross validation)来运行ZeroR算法。

ZeroR算法也称为零规则(Zero Rule)算法,可用于计算数据集上所有算法的性能基准。这是“最差”的结果。因此,任何能显示更好性能的算法都将对您的问题产生作用。

在分类算法中,ZeroR算法将始终预测最丰富的类别。如果数据集的类数相等,则会预测第一个类别的值。

在糖尿病数据集中,这导致65%的分类准确性。(diabetes:糖尿病)

对于回归问题,ZeroR算法将始终预测平均输出值。

在一系列不同的数据集上使用ZeroR算法进行实验。您最好在别人找到基准之前先运行这个ZeroR算法。

第9课:分类算法之旅

Weka提供了大量的分类算法。

在本课中,您将会发现可以在分类问题上使用的5种最重要的分类算法。

  1. 打开Weka GUI Chooser,然后打开Weka Explorer。
  2. 加载data/diabetes.arff数据集。
  3. 点击“Classify”标签。
  4. 点击“Choose”按钮。

这五种可用于分类的最重要算法包括:

  • Logistic回归(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个回归问题。

  1. 打开Weka GUI Chooser,然后打开Weka Explorer。
  2. 加载data/housing.arff数据集。
  3. 点击“Classify”标签。
  4. 点击“Choose”按钮。

而这五种可用于回归的顶级算法包括:

  • 线性回归(functions.LinearRegression)。
  • 支持向量回归(functions.SMOReg)。
  • k-近邻(lazy.IBk)。
  • 分类和回归树(trees.REPTree)。
  • 人工神经网络(functions.MultilayerPerceptron)。

尝试一下这些顶级的算法。

在不同的回归数据集上进行测试。

第11课:集成算法之旅

Weka非常容易使用,这可能是和其他平台相比起来的最大优势。

除此之外,Weka还提供了大量的集成机器学习算法,这可能是Weka与其他平台相比的第二大优势。

使用您的时间去熟悉Weka的集成算法是值得的。在本课中,您将发现您可以使用的5种顶级集成机器学习算法。

  1. 打开Weka GUI Chooser,然后打开Weka Explorer。
  2. 加载data/diabetes.arff数据集。
  3. 点击“Classify”标签。
  4. 点击“Choose”按钮。

以下是五种您可以使用的顶级集成算法包括:

  • 套袋(meta.Bagging)。
  • 随机森林(trees.RandomForest)。
  • 提升(meta.AdaBoost)。
  • 投票(meta.Voting)。
  • 堆叠(meta.Stacking)。

尝试一下这些顶级算法。

这些集成方法大部分都可以让您自主选择子模型。您可以使用子模型的不同组合进行实验。以有差异的方式进行并产生不同预测结果的技术组合往往有更好的性能。

试用一下不同的分类和回归数据集。

第12课:比较算法的性能

Weka提供了一个专门用于比较算法的称为Weka实验环境(Weka Experiment Environment)的独特工具。

Weka实验环境允许您使用机器学习算法设计和执行受控实验,然后分析结果。

在本课中,您将在Weka中设计您的第一个实验,并了解如何使用Weka实验环境来比较机器学习算法的性能。

  1. 打开“Weka GUI Chooser”。
  2. 点击“Experimenter”按钮打开“Weka实验环境”。
  3. 点击“New”按钮。
  4. 点击“Datasets(数据集)”窗格中的“Add new…”按钮并选择“data/diabetes.arff”。
  5. 单击“Algorithms(算法)”窗格中的“Add new...”按钮并添加“ZeroR”和“IBk”。
  6. 点击“Run”标签,然后点击“Start”按钮。
  7. 点击“Analyse”选项卡,然后点击“Experiment”按钮,然后点击“Perform test”按钮。

您只是设计、执行并分析了Weka中第一个受控实验的结果。

您将ZeroR算法与缺省配置的IBk算法在糖尿病数据集上进行了比较。

结果表明,IBK具有比Zero更高的分类准确性,并且这种差异具有统计显着性(结果旁边的小“v”字符)。

展开实验并添加更多算法并重新运行实验。

更改“Analyse”选项卡上的“Test base(测试基础)”以更改将哪组结果作为与其他结果比较的参考。

第13课:调整算法参数

为了充分利用机器学习算法,您必须调整方法的参数来解决您的问题。

您不知道如何最好地做到这一点,所以您必须尝试很多不同的参数。

Weka实验环境允许您设计受控实验来比较不同算法参数的结果以及差异是否具有统计显着性。

在本课中,您将要设计一个实验来比较k-近邻算法的参数。

  1. 打开“Weka GUI Chooser”。
  2. 点击“Experimenter”按钮打开“Weka实验环境”
  3. 点击“New”按钮。
  4. 点击“Datasets”窗格中的“Add new...”按钮并选择“data/diabetes.arff”。
  5. 单击“Algorithms”窗格中的“Add new...”按钮,并添加3个“IBk”算法。
  6. 单击列表中的每个IBk算法,然后单击“Edit selected ...”按钮,将3种不同算法中的每种算法的“KNN”更改为1,3,5。
  7. 点击“Run”标签,然后点击“Start”按钮。
  8. 点击“Analyse”选项卡,然后点击“Experiment”按钮,然后点击“Perform test”按钮。

您只是设计、执行了实验和分析了对照实验的结果,从而比较算法参数。

我们可以看到,较大的K值的结果比默认值1好,而个中差别是显着的。

探索尝试改变KNN的其他配置属性,并建立起开发实验来调整机器学习算法的信心。

第十四课:保存你的模型

一旦你找到了性能最好的模型,您需要确定保存它以备后用。

在最后一课中,您将了解如何训练出最终模型并将其保存到文件中供以后使用。

  1. 打开Weka GUI Chooser,然后打开Weka Explorer。
  2. 加载data/diabetes.arff数据集。
  3. 点击“Classify”标签。
  4. 将“Test options”更改为“Use training set(使用训练集)”并单击“Start”按钮。
  5. 右键单击“Result list(结果列表)”中的结果,然后单击“Save model(保存模型)”,并输入文件名,如“糖尿病final”。

您刚刚在整个训练数据集上训练出最终模型,并将生成的模型保存到文件中。

您可以将此模型加载到Weka中,并使用它来预测新数据。

  1. 右键点击“Result list(结果列表)”,点击“Load model(加载模型)”,选择你的模型文件(“糖尿病final.model”)。
  2. 将“Test options(测试选项)”更改为“Supplied test set(提供的测试集)”,然后选择data/diabetes.arff(这应当是您没有预测的新文件)
  3. 点击“Test options(测试选项)”中的“More options(更多选项)”,将“Output predictions(输出预测)”更改为“Plain Text(纯文本)”
  4. 右键单击加载的模型,然后选择“Re-evaluate model on current test set(在当前测试集上重新评估模型)”。

新的预测现在将在“Classifier output(分类器输出)”窗格中列出。

尝试保存不同的模型,并预测全新的数据集。

机器学习的Weka迷你课程的回顾

恭喜你,你做到了。做得好!

花点时间回头看看你到底走了多远

  • 尽管可能是第一次,但您已经发现了如何启动和使用Weka Explorer和Weka实验环境。
  • 您加载数据、分析数据并使用数据过滤器和特征选择来准备建模数据。
  • 您发现了一套机器学习算法,以及如何设计控制实验来评估其性能。

不要轻视这一点,你在很短的时间内走了很长的一段路。但这只是Weka应用机器学习之旅的开始。请继续练习和发展你的技能。

本文的版权归 Bon 所有,如需转载请联系作者。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 5种无需数学背景也可理解机器学习算法的技巧

    在一种自顶向下的研究机器学习的方法中,理论应立足于何处?

    Bon
  • 区块链如何拯救世界?

    如果你还不知道区块链是什么以及它是如何运行的,你可以在这里阅读我以前的主题文章......

    Bon
  • 我为什么要关心区块链?概述和接纳

    我的心路历程从“我不追随潮流”变为“我认为区块链技术有潜力”。2017年初,我开始了这段区块链旅程——我开始看William Mougayar的书《Busine...

    Bon
  • 数据结构与算法 1-2 时间复杂度与大O表示

    本系列是我在学习《基于Python的数据结构》时候的笔记。本小节主要介绍如何衡量算法效率,从通过程序执行的时间衡量到使用"大O记法"表示的时间复杂度来衡量。

    触摸壹缕阳光
  • 量子版分类决策树构造算法C5.0

    原文标题:The Quantum Version Of Classification Decision Tree Constructing Algorithm ...

    Jarvis Cocker
  • 智能调度 与 蚁群算法

    我在前面的一篇文章《浅谈资源管理技术的未来发展之路》之中谈到,资源管理还需要完善三个方面的能力分别是: 1、完善资源使用收集反馈机制,资源分配出去之后,使用率怎...

    大数据和云计算技术
  • 如何学习数据结构与算法

    什么是数据结构?什么是算法? 从广义上讲,数据结构就是指一组数据的存储结构。算法就是操作数据的一组方法。 从狭义上讲,也就是我们专栏要讲的,是指某些著名的数...

    Jingbin
  • 算法时间复杂度

    很多程序员,做了很长时间的编程工作却始终都弄不明白算法的时间复杂度的估算,这是很可悲的一件事情。因为弄不清楚,所以也就从不深究自己写的代码是否效率底下,是不是可...

    Originalee
  • 每周学点大数据 | No.4算法的分析之时间复杂度

    No.4期 算法的分析之时间复杂度 小可:嗯,我觉得评价一个算法的最基本方式就是看它运行得快不快。 Mr. 王:嗯,这是重要的考量标准之一。研究算法运行得快不...

    灯塔大数据
  • 数据挖掘工程师的面试问题与答题思路

    机器学习、大数据相关岗位根据业务的不同,岗位职责大概分为: 1、平台搭建类   数据计算平台搭建,基础算法实现,当然,要求支持大样本量、高维度数据,所以可能还...

    机器学习AI算法工程

扫码关注云+社区

领取腾讯云代金券