Azure 教程:使用 Azure 机器学习工作室预测汽油价格

已发表: 2022-03-11

如果您可以预测您选择的股票在下个月是上涨还是下跌呢? 或者如果你最喜欢的足球队会赢或输下一场比赛? 你怎么能做出这样的预测? 也许机器学习可以提供部分答案。 Cortana 是由 Bing 提供支持的新型数字个人助理,Windows Phone 8.1 随附于 2014 年 FIFA 世界杯的 16 场比赛中准确预测了 15 场。

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

Azure 机器学习教程

从机器学习开发人员的角度来看,问题可以分为两组——可以使用标准方法解决的问题,以及使用标准方法无法解决的问题。 不幸的是,大多数现实生活中的问题都属于第二类。 这就是机器学习发挥作用的地方。 其基本思想是使用机器在历史数据中找到有意义的模式并用它来解决问题。

问题

汽油价格可能是大多数人预算中已经包含的项目之一。 不断增加或减少也会影响其他杂货和服务的价格。 影响天然气价格的因素有很多,从天气条件到政治决策和行政费用,再到自然灾害或战争等完全不可预测的因素。

本 Azure 机器学习教程的计划是调查一些可访问的数据并找到可用于创建预测模型的相关性。

Azure 机器学习工作室

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

创建实验

创建机器学习示例有五个基本步骤。 我们将通过开发我们自己的汽油价格预测模型来检查这些步骤中的每一个。

获取数据

收集数据是此过程中最重要的步骤之一。 数据的相关性和清晰度是创建良好预测模型的基础。 Azure 机器学习工作室提供了许多示例数据集。 另一个很棒的数据集集合可以在archive.ics.uci.edu/ml/datasets.html 找到。

采集完数据后,我们需要通过他们简单的数据上传机制上传到 Studio:

Azure 机器学习工作室

上传后,我们可以预览数据。 下图是我们刚刚上传的部分数据。 我们的目标是在标有 E95 的列下预测价格。

机器学习工作室

我们的下一步是通过将模块从左侧面板拖放到工作区中来创建一个新实验。

Azure 机器学习

预处理数据

预处理可用数据涉及根据您的需要调整可用数据。 我们将在这里使用的第一个模块是“描述性统计”。 它根据可用数据计算统计数据。 除了“描述性统计”模块外,常用的模块之一是“清理缺失数据”。 此步骤的目的是通过将缺失(空)值替换为其他值或完全删除它们来赋予缺失(空)值的意义。

定义特征

在我们教程的这一步应用的另一个模块是“基于过滤器的特征选择”模块。 该模块确定与我们想要预测的结果最相关的数据集特征。 在这种情况下,如下图所示,与“E95”值最相关的四个特征是“EDG BS”、“Oil”、“USD/HRK”和“EUR/USD”。

基于过滤器的特征选择

由于“EDG BS”是另一个不能用于预测的“输出”值,我们将只从剩余的重要特征中选择两个——即美元/HRK列下的石油价格和货币汇率。

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

天蓝色工作室数据集

选择和应用算法

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

天蓝色拆分模块

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

训练模型模块

评估模型模块为我们提供了以统计值表示的训练模型的评估。 如果我们查看“确定系数”,我们可以得出结论,使用该模型预测正确价格的可能性约为 80%。

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

神经网络回归模块

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

在这种情况下,评估模块为我们提供了两个训练模型的比较。 同样,基于确定系数,我们看到神经网络提供的预测准确度略低。

天蓝色评估模型

此时我们可以保存选择的训练模型以备将来使用。

天蓝色训练模型

当我们有一个训练有素的模型时,我们可以继续创建“评分实验”。 这可以通过从头开始创建新实验或使用 Azure 机器学习工作室帮助程序来完成。 只需选择经过训练的模型,然后单击“创建评分实验”。 我们这里需要的新模块是“Web 服务输入”和“Web 服务输出”。 我们将添加一个“项目列”模块来选择我们的输入和输出值。 输入值为石油和美元/HRK,输出为“评分模型”输出的“评分标签”列下的预测值。

下图是我们经过这几项调整后,将“Web 服务输入”和“Web 服务输出”模块相应连接后的评分实验。

评分实验

另一个漂亮的助手功能在这一点上发挥作用。 使用“发布 Web 服务”,您可以创建托管在 Azure 云基础架构上的简单 Web 服务。

发布网络服务

预测新数据

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

天蓝色的测试表格

机器学习测试表

结论

通过这个简单的机器学习教程,我们展示了如何创建功能齐全的预测 Web 服务。 集成到 Azure 平台中的 Azure 机器学习工作室可以成为创建数据实验的非常强大的工具。 除了机器学习工作室,还有其他机器学习解决方案,例如 Orange 和 Tiberious。 无论您喜欢哪种开发环境,我都鼓励您探索机器学习并找到您内心的数据科学家。