作者都是各自领域经过审查的专家,并撰写他们有经验的主题. 我们所有的内容都经过同行评审,并由同一领域的Toptal专家验证.
伊凡Matec
验证专家 在工程
15 的经验

Ivan有超过12年的开发经验 .NET和web应用程序,包括针对医疗机构的基于web的解决方案.

分享

如果你能预测你选择的股票在下个月是涨是跌呢? 或者你最喜欢的足球队下一场比赛是赢还是输? 你怎么能做出这样的预测呢? 也许机器学习可以提供部分答案. 小娜,新的数字个人助理,由 必应 Windows Phone 8自带的.我准确预测了2014年世界杯16场比赛中的15场.

在本Azure教程中, 我们将通过解决我们日常生活中面临的一个问题来探索Azure机器学习的特性和功能.

Azure机器学习教程

机器学习开发人员 观点, 问题可以分为两类,一类是可以用标准方法解决的问题, 以及那些不能用标准方法解决的问题. 不幸的是,大多数现实生活中的问题都属于第二种人. 这就是机器学习发挥作用的地方. 基本思想是使用机器在历史数据中找到有意义的模式,并用它来解决问题.

这个问题

汽油价格可能已经是大多数人预算中的一项了. 持续的上涨或下跌也会影响到其他杂货和服务的价格. 影响汽油价格的因素有很多, 从天气状况到政治决策和行政费用, 以及完全不可预测的因素,如自然灾害或战争.

这篇Azure机器学习教程的计划是研究一些可访问的数据,并找到可以用来创建预测模型的相关性.

Azure机器学习工作室

Azure机器学习工作室 是基于web的集成开发环境(IDE)开发数据实验. 它与Azure的其他云服务紧密结合,简化了机器学习模型和服务的开发和部署.

创建实验

创建机器学习示例有五个基本步骤. 我们将通过开发我们自己的天然气价格预测模型来检验每一个步骤.

准备数据

收集数据是这个过程中最重要的步骤之一. 数据的相关性和清晰度是建立良好预测模型的基础. Azure机器学习工作室提供了大量的样本数据集. 另一个很棒的数据集可以在 存档.ics.uci.edu/ml/datasets.html.

在收集数据之后, 我们需要通过简单的数据上传机制将其上传到Studio:

Azure机器学习工作室

上传后,我们可以预览数据. 下图是我们刚刚上传的部分数据. 我们的目标是预测标签为E95的栏下的价格.

机器学习工作室

我们的下一步是创建一个新的实验,从左边的面板上拖放模块到工作区域.

Azure机器学习

数据预处理

预处理可用数据包括根据需要调整可用数据. 我们要用到的第一个模块是"描述性统计". 它从可用数据中计算统计数据. 除了“描述性统计”模块外,一个常用的模块是“清理缺失数据”。. 此步骤的目的是通过用其他值替换或完全删除缺失(null)值来赋予其意义.

定义特征

在我们的教程中这一步应用的另一个模块是“Filter Based Feature Selection”模块. 该模块确定与我们想要预测的结果最相关的数据集特征. 在这种情况下, 如下图所示, 与“E95”值最相关的四个特征是“EDG BS”。, “油”, “美元/ HRK”, 和“欧元/美元”.

基于滤波器的特征选择

因为“EDG BS”是另一个不能用于预测的“输出”值, 我们将从剩下的重要特征中只选择两个——石油价格, 美元兑港币一栏下的汇率.

处理后的数据集样本如下:

Azure studio数据集

算法的选择与应用

我们的下一步是使用“split”模块拆分可用数据. 数据的第一部分(在我们的例子中是80%)将用于训练模型,其余部分用于对训练后的模型进行评分.

Azure分裂模块

以下步骤是整个Azure机器学习过程中最重要的步骤. 模块“Train Model”接受两个输入参数. 一是原始训练数据,二是学习算法. 在这里,我们将使用“线性回归”算法. “训练模型”模块的输出是“分数模型”模块的输入参数之一. 另一个是剩余的可用数据. Score Model为我们的数据集添加了一个新列,scores Labels. 当所应用的学习算法与可用数据很好地配合时,“得分标签”列下的值更接近其对应的E95值.

列车模型模块

评估模型模块给我们一个用统计值表示的训练模型的评估. 如果我们看"决定系数", 我们可以得出结论,使用该模型预测正确价格的机会约为80%.

现在,使用“神经网络回归”模块是值得尝试的. 我们需要添加新的“训练模型”和“评分模型”模块,并将输出连接到现有的“评估模型”模块.

神经网络回归模块

“神经网络回归”模块需要更多的配置. 因为这是整个实验中最重要的模块, 这是我们应该集中努力的地方, 调整和实验的设置和选择适当的学习算法作为一个整体.

在本例中,Evaluate模块为我们提供了两个训练模型的比较. 再一次。, 基于决定系数,我们看到神经网络提供的预测精度略低.

Azure评估模型

在这一点上,我们可以保存选定的训练模型以供将来使用.

Azure训练模型

当我们有一个训练好的模型时,我们可以继续创建“评分实验”. 这可以通过从头开始创建一个新的实验或使用Azure机器学习工作室助手来完成. 只需选择训练好的模型,点击“创建计分实验”. 这里我们需要的新模块是“Web服务输入”和“Web服务输出”. 我们将添加一个“Project Columns”模块来选择输入和输出值. 输入值为Oil和USD/HRK, ,输出为“得分模型”输出“得分标签”列下的预测值.

下图显示了经过这些调整并相应地连接“Web服务输入”和“Web服务输出”模块后的评分实验.

评分实验

此时,另一个漂亮的助手特性开始发挥作用. 通过“发布Web服务”,你可以在Azure的云基础设施上创建一个简单的Web服务.

发布web服务

预测新数据

最后,我们可以使用一个简单的测试表单来测试我们的预测web服务.

Azure测试表单

机器学习测试表

结论

通过这个简单的 机器学习教程 我们已经展示了如何创建一个功能齐全的预测web服务. Azure机器学习工作室集成到Azure平台中可以非常 强大的工具 创建数据实验. 除了机器学习工作室,还有其他机器学习解决方案,例如 橙色Tiberious. 不管你喜欢什么样的开发环境, 我鼓励你探索机器学习,找到你内心的数据科学家.

聘请Toptal这方面的专家.
现在雇佣
伊凡Matec

伊凡Matec

验证专家 在工程
15 的经验

Bestovje,克罗地亚

2015年1月26日成为会员

作者简介

Ivan有超过12年的开发经验 .NET和web应用程序,包括针对医疗机构的基于web的解决方案.

作者都是各自领域经过审查的专家,并撰写他们有经验的主题. 我们所有的内容都经过同行评审,并由同一领域的Toptal专家验证.

世界级的文章,每周发一次.

输入您的电子邮件,即表示您同意我们的 隐私政策.

世界级的文章,每周发一次.

输入您的电子邮件,即表示您同意我们的 隐私政策.

Toptal开发者

加入总冠军® 社区.