大数据频道 频道

如何使用Azure ML Studio开启机器学习

  【IT168 评论】“机器学习是让计算机在不被明确编程的情况下运作的科学。” ——安德鲁·吴(Coursera)

  机器学习正在迅速成为数据科学家和开发人员预测的前瞻性技术。根据机器学习的实际数据规模与计算性能需求,云空间往往是机器学习应用的一大理想运行环境。在许多可用于神经网络的工具中,Microsoft的Azure ML Studio提供了一个快速的学习曲线,它不需采取深层数据或编码的方式来启动运行。

  Microsoft Azure机器学习是一种用于执行价值预测(回归),异常检测,聚类和分类的云服务。Azure机器学习是微软Cortana分析套件产品的一部分,Azure ML Studio图形化、模块化的方法将让你快速了解机器学习模型。

  先决条件

微软Azure ML Studio机器学习使用教程
Azure ML Studio采用模块化,拖放式的机器学习方法

  使用Azure ML Studio比使用Google TensorFlow或Microsoft Cognitive Toolkit更容易,这是由于它有一个拖曳界面,用于构建模型训练和从模块评估数据流,方便使用。Studio还提供了文档帮助,但并不没有完全免除开发人员的职责:你只需要将各模块串在一起,使达到程序化的效果,有时可能也需要编写R或Python代码片段来对模块进行补充。

  一、创建Azure机器学习工作区

  开始之后,需要创建一个Azure ML Studio工作区。你可以选择从头开始或者从约70个微软提供的样本开始,其覆盖了大部分常见的模式。从头开始创建主要有两步:从进入atstudio.azureml.net开始,如下所示:

微软Azure ML Studio机器学习使用教程
Azure ML Studio提供三个级别的工作空间供选择

  上面的第一个选项(Guest Workspace)甚至不需要Microsoft帐户,但它无法让你走在机器学习的道路上,不过可以免费试用8小时。第二个(Free Workspace)也是免费的,但是需要登录,它允许实验和设置具有有限存储和单个节点的Web服务。第三个选项(标准工作区)需要进行Azure订阅,它提供更多的功能和SLA,每月花费10美元。

  创建Azure ML Studio工作区的第二步就是Azure订阅,各种选项针对不同级别的Web服务,并且都包括工作空间。DEVTEST选项是免费的,但每月限制为1,000个交易; S1到S3选项范围从每月约97美元100,000个交易到每月约9,700美元5000个交易。

微软Azure ML Studio机器学习使用教程
 Azure提供了四种机器学习工作区

  本教程创建了一个Azure ML工作区,如果你已经订阅了Azure服务,你就可以拥有一个免费的DEVTEST标准工作区。

  二、了解如何使用Azure ML

  使用Azure ML Studio的大纲:

  1、在ML Studio中创建一个新项目。

  2、导入数据(固定的或从自己的数据源导入),并将数据集拖动到实验画布。

  3、查看数据并排除缺失大量数据的列(在数据集模块中选择列)。

  4、排除剩余列中缺少大量数据的行(清除缺少数据模块)。

  5、再次查看数据,并选择要用于预测的列(在另一个数据集模块中选择列,因为迭代时,你可能会希望在这一点上有更改)。

  6、将数据分割成训练集和测试集(分割数据模块)。

  7、选择并应用学习算法。如果你预测一些与数字相关的,如价格或年龄,选择一个回归模型。如果要预测类别(如性别或物种),请选择分类模型。你可能在迭代时会改变模型的选择。

  8、在训练集上训练模型(主要使用数据训练模型模块)。

  9、将模型分配到测试集(Score Model对少数数据进行分割)。

  10、测试结果的质量(评估模型模块)。

  11、改进模型。可以添加分支到训练实验或创建新的实验,实验的复制和粘贴很方便。

  12、将非常好的模型转换为预测实验。

  13、将预测实验部署为Web服务。

  三、尝试演示

微软Azure ML Studio机器学习使用教程
Azure ML线性回归流示例

微软Azure ML Studio机器学习使用教程
通过将模型转换为预测实验并将其作为Web服务发布来完成模型

  Microsoft为Azure ML Studio提供了一套很好的介绍性教程。第一个(见上图)涵盖了回归问题(价格)的步骤1到10,并提到步骤11,第二张图包含步骤12和13。

  四、尝试图库中的模型

微软Azure ML Studio机器学习使用教程
Cortana智能画廊提供了一系列实验,教程,定制模块和解决方案

  既然已经熟悉了如何使用Azure ML,是时候探索一些模型了。如果导航到Cortana智能画廊,可以找到大量的实验,教程,自定义模块和解决方案。本教程选择关于2016年总统竞选财务数据挖掘实验。(使用链接:https://gallery.cortanaintelligence.com/Experiment/Data-Mining-2016-Presidential-Campaign-Finance-Data-1,因为查看图库时,实验不再显示)。

微软Azure ML Studio机器学习使用教程
使用来自联邦选举委员会财务数据集的Azure ML机器学习实验示例

  该实验使用来自联邦选举委员会的活动财务数据集,具体来说是个人捐款数据,候选者列表,委员会列表和候选者委员会链接文件。右键点击“在Studio中打开”按钮,就可以在你的ML Studio实例新标签页中启动此实验。

微软Azure ML Studio机器学习使用教程
数据挖掘模型—2016年总统竞选财务数据

  这个实验第一次在Azure云中运行了大约20分钟,第二次跑了约25分钟。在上面的图像中显示,我大约4分钟时进入。继续运行, 之后可以切换到另一个选项卡或程序,但不要关闭Studio选项卡,因为它正在运行。运行完成后,保存。在下一次打开之前,完全有可能发生更新,需要重新运行模型,但仍然要记得保存。

  正如你在Azure ML团队的文章中看到的,这个实验的步骤:

  1.填充数据

  2.用SQL查询和连接数据模块,筛选非克林顿和非特朗普的部分

  3.使用R脚本组合候选和委员会名称

  4.清除缺少数据的行

  5.使用连接数据模块通过名字预测贡献者性别

  6.使用R脚本将职业分为28组

  7.过滤50个州和华盛顿特区

  8.筛选城市,保留至少有50个贡献者的城市

  9.按每个候选人的金额计算捐款的密度图(见下图)

微软Azure ML Studio机器学习使用教程

  10.将捐款金额归入组

  11.调整不必要的列

  12.清除缺少的数据

  13.分离克林顿和特朗普,下调克林顿的贡献,使数据集的大小相同

  14.重组克林顿和特朗普的贡献

  15.将所有列转换为类

  关于这个模型有趣的问题是如何开发。我没有问微软这是如何演变的,但是在整个工作过程中,我发现首先要找到所需的数据集,然后清理,添加,选择变量,并根据需要转换数据。

  五、添加分类模型

  经过20分钟的处理得到了一个干净的分类数据集,这对应了使用Azure ML上述步骤的1至5。现在我们需要选择至少一个分类模型来训练,根据数据集中的其他因素来预测克林顿和特朗普的捐赠者,执行拆分数据,训练数据,对数据进行评分并评估模型。

  因为相对来说,我们使用了较少的参数来处理二元分类问题,所以我将使用逻辑回归,一个经过验证的算法,可以快速地进行训练并使用默认参数。当然不排除使用其他模型:但找到最好模型的唯一方法就是试遍所有模型。

微软Azure ML Studio机器学习使用教程
 Azure ML Studio中的逻辑回归模型

  现在需要拆分数据。对于第一次拆分,我将使用80%的数据进行训练,20%用于得分。

微软Azure ML Studio机器学习使用教程
在Azure ML Studio中分割用于训练的数据

  接下来,需要训练,评分和评估模型。需要选择一列(克林顿或特朗普)作为预测。

微软Azure ML Studio机器学习使用教程
选择关联列以在Azure ML中训练,评分和评估活动财务模型

  用于评估模型的新模块流程如下所示:

微软Azure ML Studio机器学习使用教程
用于在Azure ML中评估模型的模块流

  运行新模块是选择它们并按运行选项。

  最后,可以看一下评估结果:

微软Azure ML Studio机器学习使用教程
Azure ML中示例活动财务模型评估结果

  这个简单的模型准确度为85.1%,精度为84.9%,AUC(接受者操作曲线下的面积)为93.1%。

  六、Microsoft认知工具包

  Azure机器学习Studio很好地帮助开发者使用图形用户界面设计用于机器学习的训练和预测。如果你需要超越基本的机器学习和简单的神经网络,进而到深度学习或深层神经网络学习,Microsoft Cognitive Toolkitis是Microsoft提供的(尽管仍处于beta测试形式)一款与Google TensorFlow竞争的免费开源产品。与ML Studio不同,它只允许使用R或Python编写模块,Cognitive Toolkit需要编码才能有效地使用,无论是在Python还是在Microsoft的BrainScript神经网络配置语言。

  很多机器学习的内容来源于统计学科,只不过叫法不同罢了。与传统的统计学科不同,在机器学习中机器不对数据做推断,它得到的结论也不会被最初的诸多假设所限定。然而,为了实现更精确的预测,机器学习得到的模型往往相当复杂以至于难以理解。使用ML Studio或许可以让你不再头疼机器学习。

1
相关文章