SQL中的时间序列预测

2022-02-22 14:57:22

在过去的几个月里,我有机会指导有抱负的数据科学家和该领域的爱好者。作为一名数据科学家,我情不自禁地注意到,所有学员都是从学习SQL开始他们的旅程的!

数据科学工具的数量让人们很难快速进入需求旺盛的领域,这已经不是秘密。总的来说,这使得向数据科学的过渡变得非常艰难和可怕!

如果你向任何一位数据科学家询问他们最常用的工具,他们可能会回答“SQL”和“Python”。然而,如果你在没有任何编程背景的情况下过渡,会发生什么?MindsDB是一个开源工具,允许您使用SQL生成预测,因此它使转换变得更加容易。

让我们通过使用Kaggle的著名比特币历史数据解决一个时间序列预测示例,进一步深入了解该工具。

如前所述,MindsDB允许您直接在数据库中进行预测。就这样。那很简单。这就是为什么这是一个伟大的工具,为学员谁是过渡到数据科学,而不需要过度复杂的学习与不成比例的工具数量。

在本教程中,我想展示如何使用此工具轻松解决时间序列问题。你可以通过多种方式建立MindsDB,他们的网站上有很棒的文档解释如何建立MindsDB。我们将采取以下步骤:

在本实践教程中,我们将只关注MySQL,但您可以使用他们支持的任何数据库。如果你没有安装MySQL,你可以在这里下载安装程序,并遵循MySQL的入门指南。

一旦你安装了MySQL,我们就可以简单地登录并用你在这里可以找到的数据创建一个数据库。

然后,我们将创建一个数据库btc_data,并用之前下载的数据填充。该数据包含上述原始比特币历史数据集的每日加权_价格(加权比特币价格)的清洁版本。我们有两列:ds对应于(每日)时间戳,y对应于比特币的加权价格。

创建数据库btc_数据;使用btc_数据;创建表btc(ds日期不为空,y浮动);加载数据本地填充'/路径/到/btc_数据。csv和#39;在以';结尾的表btc字段中' 以'结尾的行;\n';忽略1行(ds,y);

其中/path/to/btc_数据。csv对应于下载和存储btc_数据的路径。csv文件。

现在,我们可以通过运行以下命令来检查数据是否已成功加载:

你需要做的下一步是在这里创建MindsDB帐户。然后你需要连接你的数据库。如果你的数据库是本地托管的,就像我的一样,你需要允许远程连接。我用ngrok曝光了它。

您将使用所选主机和端口作为输入,将本地数据库连接到MindsDB Cloud,并提供额外参数:

支持的数据库:在本例中为MySQL——根据您使用的数据库选择任何其他数据库。

集成名称:这个名称由您选择,以及您希望如何命名数据库和MindsDB之间的集成。我选择称之为btc_数据。

现在,通过运行以下命令,我们可以通过MySQL客户端连接到out MindsDB:

为了创建和训练预测模型,我们将使用mindsdb数据库。运行以下命令时,您应该会看到类似的情况:

其中btc_pred是预测器/模型的名称,btc_数据对应于集成数据库/名称,y是我们希望从数据预测的特征的名称。对于时间序列预测,MindsDB还允许我们添加额外的标志,例如ORDER BY或WINDOW,这允许我们在进行预测时指定要“回顾”的行数。您可以通过运行以下命令查看预测器的状态:

为了让你有一个想法,在这一点上,我们已经花了几分钟来设置我们的环境,培训大约用了不到1分钟。我们现在可以对数据运行预测模型。

我们现在可以运行预测模型来获得预测结果。可以通过运行以下自定义查询来实现这一点:

选择原始表格。ds作为日期,pred_表。正如预测的一样,原始表格。y为btc_数据中的实际_y。btc作为原始表连接mindsdb。btc_pred作为pred_表,其中orig_表。ds>'2011-12-30' 按原始表格订购。ds DESC限制10;

我们在这里做的是一个简单的查询,以获取一个表,其中包含时间框架和预测与实际加权比特币价格。你应该得到这样的结果(为了表现,结果是有限的):

选择原始表格。ds作为日期,pred_表。正如预测的一样,原始表格。y为btc_数据中的实际_y。btc作为原始表连接mindsdb。btc_pred作为pred_表,其中orig_表。ds>;最近的

现在我们已经有了一个或预测模型,让我们在原始数据集上创建空行,以检索未来的预测以进行表示。我们将使用out MySQL服务器实例插入它们。在最后一个7天后添加的简单查询语句如下所示:

为了表示预测,我们将添加到2020-12-31的日期。使用MySQL Workbench,我将查询预测,并将其导出到csv文件中以可视化它。您可以使用任何工具来可视化结果,例如通过将MindsDB与Tableau集成。

在本教程中,我们学习了如何轻松创建和应用用于时间序列预测的机器学习模型。MindsDB是一个伟大的创新工具,可供数据科学领域刚刚起步的人使用。

数据科学缺乏具有跨学科背景和编程领域以外专业知识的专家。MindsDB通过为非专家提供如此简单的工具来帮助数据科学领域,并有可能帮助该领域的专家完成实验等任务,总体上降低开发和生产环境的复杂性。

你可以在他们的网站上探索许多其他用例。我相信他们的社区在未来几年会继续发展,所以不要怀疑自己可以尝试一下,通过他们的渠道加入社区!