本文概述
如果你可以预测下个月所选择的股票会增加还是减少, 该怎么办?还是你最喜欢的足球队在下一场比赛中会赢还是输?你如何做出这样的预测?也许机器学习可以提供部分答案。 Windows Phone 8.1随附的由必应提供支持的新型数字个人助理Cortana可以准确预测2014年FIFA世界杯16场比赛中的15场。
在本Azure教程中, 我们将通过解决日常生活中遇到的问题之一来探索Azure机器学习的功能。
从机器学习开发人员的角度来看, 问题可以分为两类:可以使用标准方法解决的问题和不能使用标准方法解决的问题。不幸的是, 大多数现实生活中的问题属于第二类。这就是机器学习发挥作用的地方。基本思想是使用机器在历史数据中找到有意义的模式, 并用它来解决问题。
问题
汽油价格可能已经是大多数人预算中已经考虑的项目之一。持续增加或减少也会影响其他杂货和服务的价格。有很多因素会影响天然气价格, 从天气条件到政治决定和行政费用, 再到完全不可预测的因素, 例如自然灾害或战争。
此Azure机器学习教程的计划是研究一些可访问的数据, 并找到可用于创建预测模型的相关性。
Azure Machine Learning Studio
Azure Machine Learning Studio是用于开发数据实验的基于Web的集成开发环境(IDE)。它与Azure的其余云服务紧密结合, 并简化了机器学习模型和服务的开发和部署。
创建实验
创建机器学习示例的五个基本步骤。我们将通过开发我们自己的天然气价格预测模型来检查每个步骤。
获取数据
收集数据是此过程中最重要的步骤之一。数据的相关性和清晰度是创建良好预测模型的基础。 Azure Machine Learning Studio提供了许多示例数据集。可以在archive.ics.uci.edu/ml/datasets.html上找到另一个很好的数据集集合。
收集数据后, 我们需要通过其简单的数据上传机制将其上传到Studio:
上传后, 我们可以预览数据。下图显示了我们刚刚上传的部分数据。我们的目标是在标记为E95的列下预测价格。
我们的下一步是通过将模块从左侧面板拖放到工作区中来创建新实验。
预处理数据
预处理可用数据涉及根据需要调整可用数据。我们将在这里使用的第一个模块是”描述统计”。它根据可用数据计算统计数据。除”描述性统计”模块外, 常用的模块之一是”清除丢失的数据”。此步骤的目的是通过将其替换为其他值或将其完全删除来使缺失(空)值有意义。
定义功能
在本教程的此步骤中应用的另一个模块是”基于过滤器的特征选择”模块。此模块确定与我们要预测的结果最相关的数据集特征。在这种情况下, 如下图所示, ” E95″值的四个最相关的功能是” EDG BS”, “油”, ” USD / HRK”和” EUR / USD”。
由于” EDG BS”是另一个不能用于预测的”输出”值, 因此, 我们将从其余重要特征中仅选择两个, 即石油价格和USD / HRK列下的货币汇率。
处理后的数据集样本如下所示:
选择和应用算法
我们的下一步是使用”拆分”模块拆分可用数据。数据的第一部分(在我们的示例中为80%)将用于训练模型, 其余部分用于对训练后的模型进行评分。
以下步骤是整个Azure机器学习过程中最重要的步骤。 “火车模型”模块接受两个输入参数。首先是原始训练数据, 其次是学习算法。在这里, 我们将使用”线性回归”算法。 “训练模型”模块的输出是”得分模型”模块的输入参数之一。另一个是其余的可用数据。评分模型为我们的数据集添加了一个新列, 即”评分标签”。当应用的学习算法与可用数据配合得很好时, “得分标签”列下的值将更接近其相应的E95值。
评估模型模块为我们提供了以统计值表示的训练模型的评估。如果我们看”确定系数”, 我们可以得出结论, 使用此模型预测正确价格的机率大约为80%。
现在, 值得尝试使用”神经网络回归”模块。我们将需要添加新的”训练模型”和”得分模型”模块, 并将输出连接到现有的”评估模型”模块。
“神经网络回归”模块需要更多配置。由于这是整个实验中最重要的模块, 因此我们应该集中精力, 调整和试验整个学习算法的设置和选择。
在这种情况下, 评估模块为我们提供了两种训练模型的比较。同样, 基于确定系数, 我们看到神经网络提供的准确度预测稍差。
此时, 我们可以保存选定的训练模型以备将来使用。
当我们拥有训练有素的模型时, 我们可以继续创建”评分实验”。可以通过从头开始创建新实验或使用Azure Machine Learning Studio帮助程序来完成。只需选择训练有素的模型, 然后单击”创建评分实验”。我们这里需要的新模块是” Web服务输入”和” Web服务输出”。我们将添加一个”项目列”模块来选择我们的输入和输出值。输入值为Oil和USD / HRK, 输出为”得分模型”输出的”得分标签”列下的预测值。
下图显示了经过几次调整并相应地连接了” Web服务输入”和” Web服务输出”模块后的评分实验。
此时, 另一个漂亮的辅助功能开始发挥作用。借助”发布Web服务”, 你可以创建一个托管在Azure的云基础架构上的简单Web服务。
预测新数据
最后, 我们可以使用简单的测试表单来测试我们的预测Web服务。
总结
通过这个简单的机器学习教程, 我们展示了如何创建功能齐全的预测Web服务。集成到Azure平台中的Azure Machine Learning Studio可能是用于创建数据实验的非常强大的工具。除了Machine Learning Studio, 还有其他机器学习解决方案, 例如Orange和Tiberious。无论你喜欢哪种开发环境, 我都建议你探索机器学习并找到内部数据科学家。
评论前必须登录!
注册