作者都是各自领域经过审查的专家,并撰写他们有经验的主题. 我们所有的内容都经过同行评审,并由同一领域的Toptal专家验证.
Ivan有超过12年的开发经验 .NET和web应用程序,包括针对医疗机构的基于web的解决方案.
15
如果你能预测你选择的股票在下个月是涨是跌呢? 或者你最喜欢的足球队下一场比赛是赢还是输? 你怎么能做出这样的预测呢? 也许机器学习可以提供部分答案. 小娜,新的数字个人助理,由 Bing Windows Phone 8自带的.我准确预测了2014年世界杯16场比赛中的15场.
在本Azure教程中, 我们将通过解决我们日常生活中面临的一个问题来探索Azure机器学习的特性和功能.
From the 机器学习开发人员 point of view, 问题可以分为两类,一类是可以用标准方法解决的问题, 以及那些不能用标准方法解决的问题. 不幸的是,大多数现实生活中的问题都属于第二种人. 这就是机器学习发挥作用的地方. 基本思想是使用机器在历史数据中找到有意义的模式,并用它来解决问题.
汽油价格可能已经是大多数人预算中的一项了. 持续的上涨或下跌也会影响到其他杂货和服务的价格. 影响汽油价格的因素有很多, 从天气状况到政治决策和行政费用, 以及完全不可预测的因素,如自然灾害或战争.
这篇Azure机器学习教程的计划是研究一些可访问的数据,并找到可以用来创建预测模型的相关性.
Azure机器学习工作室 是基于web的集成开发环境(IDE)开发数据实验. 它与Azure的其他云服务紧密结合,简化了机器学习模型和服务的开发和部署.
创建机器学习示例有五个基本步骤. 我们将通过开发我们自己的天然气价格预测模型来检验每一个步骤.
收集数据是这个过程中最重要的步骤之一. 数据的相关性和清晰度是建立良好预测模型的基础. Azure机器学习工作室提供了大量的样本数据集. 另一个很棒的数据集可以在 archive.ics.uci.edu/ml/datasets.html.
在收集数据之后, 我们需要通过简单的数据上传机制将其上传到Studio:
上传后,我们可以预览数据. 下图是我们刚刚上传的部分数据. 我们的目标是预测标签为E95的栏下的价格.
我们的下一步是创建一个新的实验,从左边的面板上拖放模块到工作区域.
预处理可用数据包括根据需要调整可用数据. 我们要用到的第一个模块是"描述性统计". 它从可用数据中计算统计数据. 除了“描述性统计”模块外,一个常用的模块是“清理缺失数据”。. 此步骤的目的是通过用其他值替换或完全删除缺失(null)值来赋予其意义.
在我们的教程中这一步应用的另一个模块是“Filter Based Feature Selection”模块. 该模块确定与我们想要预测的结果最相关的数据集特征. In this case, 如下图所示, 与“E95”值最相关的四个特征是“EDG BS”。, “Oil”, “USD/HRK”, and “EUR/USD”.
因为“EDG BS”是另一个不能用于预测的“输出”值, 我们将从剩下的重要特征中只选择两个——石油价格, 美元兑港币一栏下的汇率.
处理后的数据集样本如下:
我们的下一步是使用“split”模块拆分可用数据. 数据的第一部分(在我们的例子中是80%)将用于训练模型,其余部分用于对训练后的模型进行评分.
以下步骤是整个Azure机器学习过程中最重要的步骤. 模块“Train Model”接受两个输入参数. 一是原始训练数据,二是学习算法. 在这里,我们将使用“线性回归”算法. “训练模型”模块的输出是“分数模型”模块的输入参数之一. 另一个是剩余的可用数据. Score Model为我们的数据集添加了一个新列,scores Labels. 当所应用的学习算法与可用数据很好地配合时,“得分标签”列下的值更接近其对应的E95值.
评估模型模块给我们一个用统计值表示的训练模型的评估. 如果我们看"决定系数", 我们可以得出结论,使用该模型预测正确价格的机会约为80%.
现在,使用“神经网络回归”模块是值得尝试的. 我们需要添加新的“训练模型”和“评分模型”模块,并将输出连接到现有的“评估模型”模块.
“神经网络回归”模块需要更多的配置. 因为这是整个实验中最重要的模块, 这是我们应该集中努力的地方, 调整和实验的设置和选择适当的学习算法作为一个整体.
在本例中,Evaluate模块为我们提供了两个训练模型的比较. Again, 基于决定系数,我们看到神经网络提供的预测精度略低.
在这一点上,我们可以保存选定的训练模型以供将来使用.
当我们有一个训练好的模型时,我们可以继续创建“评分实验”. 这可以通过从头开始创建一个新的实验或使用Azure机器学习工作室助手来完成. 只需选择训练好的模型,点击“创建计分实验”. 这里我们需要的新模块是“Web服务输入”和“Web服务输出”. 我们将添加一个“Project Columns”模块来选择输入和输出值. 输入值为Oil和USD/HRK, ,输出为“得分模型”输出“得分标签”列下的预测值.
下图显示了经过这些调整并相应地连接“Web服务输入”和“Web服务输出”模块后的评分实验.
此时,另一个漂亮的助手特性开始发挥作用. 通过“发布Web服务”,你可以在Azure的云基础设施上创建一个简单的Web服务.
最后,我们可以使用一个简单的测试表单来测试我们的预测web服务.
Through this simple 机器学习教程 我们已经展示了如何创建一个功能齐全的预测web服务. Azure机器学习工作室集成到Azure平台中可以非常 powerful tool 创建数据实验. 除了机器学习工作室,还有其他机器学习解决方案,例如 Orange and Tiberious. 不管你喜欢什么样的开发环境, 我鼓励你探索机器学习,找到你内心的数据科学家.
Ivan有超过12年的开发经验 .NET和web应用程序,包括针对医疗机构的基于web的解决方案.
15
世界级的文章,每周发一次.
世界级的文章,每周发一次.
Join the Toptal® community.