加密货币的市值从 2017 年的 170 亿美元增加到 2021 年的 2.25 万亿美元。在短短 5 年内,投资回报率超过 13,000%!即使有这种增长,加密货币仍然非常不稳定,其价值受到多种因素的影响:市场趋势、政治、技术……和 Twitter。是的,这是正确的。在某些情况下,他们的价格因名人的推文而受到影响。
作为哈佛扩展学院数据工程和分析课程的一部分,我们小组致力于一个项目,为不同的数据角色(包括数据工程师、ML 从业者和 BI 分析师)创建一个加密货币数据湖,以分析一段时间内的趋势,特别是社交媒体对比特币(BTC)等加密资产价格波动的影响。我们利用Databricks Lakehouse 平台利用Tweepy 库和Yahoo Finance的传统结构化定价数据从 Twitter 提取非结构化数据,以创建机器学习预测模型,分析投资者情绪对加密资产估值的影响。汇总的趋势和可操作的见解在Databricks SQL上呈现仪表板,便于相关利益相关者使用。
本博客介绍了我们如何利用 Databricks 及其协作笔记本在短短几周内构建此 ML 模型。我们要感谢 Databricks 大学联盟计划和扩展团队的所有支持。
概述
对投资者而言,加密货币的一个优势是它可以 24/7 全天候交易,并且可以全天候获取市场数据。这使得分析推文和加密货币价格之间的相关性变得更加容易。数据和机器学习管道的高级架构如下图 1 所示。

图 1:使用 Delta 的 Crypto Lake
完整的编排工作流程运行一系列 Databricks 笔记本,这些笔记本执行以下任务:
数据摄取管道
- 将原始数据导入 Cryptocurrency Delta Lake Bronze 表
数据科学
- 清理数据并将 Twitter 情绪机器学习模型应用到 Silver 表中
- 将精炼的 Twitter 和 Yahoo Finance 数据聚合到一个聚合的 Gold Table 中
- 计算价格和情绪之间的相关性 ML 模型
数据分析
- 在 Gold 表上运行更新的 SQL BI 查询
Lakehouse范式结合了数据湖和数据仓库的关键功能,以支持各种 BI 和 AI 用例。使用 Lakehouse 架构可以将管道创建速度快速缩短至一周。作为一个团队,我们扮演特定角色来模拟不同的数据角色,这种范式促进了数据工程、机器学习和商业智能角色之间的无缝切换,而无需跨系统移动数据。
数据/机器学习管道
使用 Medallion 架构进行摄取
两个主要数据源是 Twitter 和 Yahoo Finance。查找表用于保存加密代码及其 Twitter 主题标签,以方便后续搜索相关推文。
我们使用yfinance python 库每隔 15 分钟从 Yahoo Finance 的 API 下载历史加密货币交易市场数据。原始数据存储在青铜表中,其中包含股票代码、日期时间、开盘价、收盘价、最高价、最低价和成交量等信息。然后,我们创建了一个 Delta Lake Silver 表,其中包含其他数据,例如该时间间隔内股票价格的相对变化。使用 Delta Lake 可以轻松地重新处理数据,因为它保证了每个操作的原子性。它还确保实施模式并防止不良数据潜入湖中。
我们使用 tweepy python 库来下载 Twitter 数据。我们将原始推文存储在 Delta Lake Bronze 表中。我们从青铜表中删除了不必要的数据,并过滤掉了非 ASCII 字符,如表情符号。这些精炼的数据存储在 Delta Lake Silver 表中。
数据科学
我们项目的数据科学部分由 3 个主要部分组成:探索性数据分析、情感模型和相关性模型。目标是建立一个情绪模型,并使用模型的输出来评估情绪与不同加密货币(如比特币、以太坊、Coinbase 和 Binance)价格之间的相关性。在我们的案例中,情感模型遵循有监督的多类分类方法,而相关模型使用线性回归模型。最后,我们使用了 MLflow用于两个模型的生命周期管理,包括实验、可重复性、部署和中央模型注册表。MLflow Registry 通过提供集中式模型存储、一组 API 和 UI 来协作管理 MLflow 模型的整个生命周期。它的一些最有用的功能包括模型沿袭(MLflow 实验和运行产生了模型)、模型版本控制、阶段转换(例如从登台到生产或存档)和注释。
探索性数据分析
EDA 部分提供了关于数据集的富有洞察力的可视化。例如,我们使用Seaborn的小提琴图查看了每个情绪类别的推文长度分布。正面和负面推文的词云(使用matplotlib和wordcloud库)也用于显示两种情绪类型的最常见词。最后,使用Gensim构建了一个交互式主题建模仪表板,以提供有关数据集中最常见的主题和每个主题中最常用的词的见解,以及这些主题彼此之间的相似程度。

图 4:交互式主题建模仪表板
情绪分析模型
开发合适的情感分析模型一直是该项目的核心任务之一。在我们的案例中,该模型的目标是使用纯粹的情感极性视图将原始推文中表达的极性分类为输入(即,推文被归类为“正面”、“中性”或“负面”)。由于情感分析是一个具有重要实际意义的问题,因此在文献中可以找到与其相关的多种 ML 策略也就不足为奇了:

在这个项目中,我们专注于后两种方法,因为它们被认为是最有前途的。因此,我们使用SparkNLP作为首选的 NLP 库,因为它具有广泛的功能、可扩展性(Apache Spark™ 完全支持)和准确性(例如,它包含多个最先进的嵌入并允许用户使用迁移学习)。首先,我们使用上述经典 ML 算法构建了情感分析管道。下图显示了它的高级架构,由三部分组成:预处理、特征向量化和最后的训练,包括超参数调整。

图 5:机器学习模型管道
我们为每个分类器运行这个管道,并比较它们在测试集上的相应准确度。结果,支持向量分类器的准确率最高,为 75.7%,紧随其后的是逻辑回归(75.6%)、朴素贝叶斯(74%),最后是随机森林(71.9%)。为了提高性能,可以测试其他监督分类器,如XGBoost或GradientBoostedTrees 。此外,可以将各个算法组合成一个集成,然后将其用于预测(例如多数投票、堆叠)。
除了第一个管道之外,我们还开发了第二个具有类似架构的 Spark 管道,利用了有关预训练词嵌入和 DL 模型的丰富 SparkNLP 功能。从标准的 Document Assembler 注释器开始,我们只使用 Normalizer 注释器来删除 twitter 句柄、字母数字字符、超链接、html 标签和时间戳,但没有进一步预处理相关的注释器。在训练阶段,我们使用了SparkNLP 提供的预训练(在著名的 IMDb 数据集上)情感 DL模型。使用默认的超参数设置,我们已经实现了 83% 的测试集准确率,甚至可以使用其他预训练的词嵌入或情感 DL模型来增强. 因此,使用支持向量分类器的 DL 策略明显优于图 5 中的管道约 7.4 个百分点。
相关模型
项目要求包括情绪和价格的相关模型;因此,我们使用scikit-learn和mlflow.sklearn为该任务构建了一个线性回归模型。
我们通过将负面推文评分为 -1、中性推文评分为 0、正面推文评分为 1 来量化情绪。然后通过将每种加密货币的评分相加来计算每种加密货币的总情绪评分 15-分钟间隔。线性回归模型是使用所有公司每个窗口中的总情绪得分来预测加密货币价格的百分比变化。然而,该模型显示情绪与价格变化之间没有明确的线性关系。相关模型未来可能的改进是使用情绪极性来预测价格变化。相关模型
项目要求包括情绪和价格的相关模型;因此,我们使用scikit-learn和mlflow.sklearn为该任务构建了一个线性回归模型。
我们通过将负面推文评分为 -1、中性推文评分为 0、正面推文评分为 1 来量化情绪。然后通过将每种加密货币的评分相加来计算每种加密货币的总情绪评分 15-分钟间隔。线性回归模型是使用所有公司每个窗口中的总情绪得分来预测加密货币价格的百分比变化。然而,该模型显示情绪与价格变化之间没有明确的线性关系。相关模型未来可能的改进是使用情绪极性来预测价格变化。

商业智能
了解股票相关性模型是生成买卖预测的关键组成部分,但传达结果和与信息交互对于做出明智的决策同样重要。市场如此动态,因此需要实时可视化来汇总和组织趋势信息。Databricks Lakehouse 通过简化对 Lakehouse 数据表的访问,使所有 BI 分析师任务能够在一个地方进行协调。首先,生成一组 SQL 查询以从 Lakehouse 中提取和汇总信息。然后使用 GUI 工具轻松导入数据表,以快速创建仪表板视图。除了仪表板之外,还创建了警报触发器以通知用户关键活动,例如股票上涨/下跌 > X%,
仪表板生成
商业智能仪表板是使用Databricks SQL创建的。该系统提供了一个完整的生态系统来生成SQL 查询、创建数据视图和图表,并最终使用Databricks Dashboards组织所有信息。
在 Databricks 中使用 SQL 编辑器是使该过程快速而简单的关键。对于每个查询,编辑器 GUI 可以选择不同的数据视图,包括表格、图表和汇总统计信息,以便立即查看输出。从那里,视图可以直接导入仪表板。这通过对不同的可视化使用相同的查询来消除冗余。
可视化
对于 Twitter 情感分析的话题,有三个关键视图可以帮助用户更深层次地与数据交互。
视图 1:概述页面,对 Twitter 影响者、股票走势以及与特定加密货币相关的推文频率进行高级视图。

图 7:具有顶级统计信息的概览仪表板视图
视图 2:情绪分析,了解每条推文是正面的、负面的还是中性的。在这里,您可以轻松地看到在给定时间窗口内哪些加密货币受到最多关注。

视图 3:股票波动性为用户提供有关每种加密货币价格的更具体信息以及随时间的趋势。

图 9:股票行情仪表板
概括
我们的数据工程师、数据科学家和 BI 分析师团队能够利用 Databricks 工具来调查 Twitter 使用和加密货币股票变动的复杂问题。Lakehouse 设计创建了一个强大的数据环境,整个团队可以顺畅地摄取、处理和检索。即使在高更新频率下,也可以轻松管理使用 Delta 表部署的数据收集和清理管道。数据通过自然语言情感模型和使用 MLflow 的股票相关模型进行分析,这使得各种模型版本的组织变得简单。创建了强大的分析仪表板,以使用内置的 SQL 和仪表板功能查看和解释结果。Databricks 端到端产品工具的功能消除了重大的技术障碍,这使得整个项目能够在不到 4 周的时间内完成,挑战最小。这种方法可以很容易地应用于其他技术,在这些技术中,简化的数据管道、机器学习和 BI 分析可以成为更深入了解数据的催化剂。
我们的发现
这些是数据分析的额外结论,以突出 Twitter 用户对加密货币价格的影响程度。
推文的数量与加密货币价格的波动性
相关推文频率高的时期与加密货币的波动有明显的相关性。请注意,这发生在股价变化之前和之后,这表明一些推特狂热先于价格变化,并且可能会影响价值,而另一些则是对价格大幅变化的反应。
拥有更多追随者的 Twitter 用户实际上并没有对加密股票价格产生更大的影响
这经常在媒体活动中讨论,尤其是对于鲜为人知的货币。埃隆·马斯克(Elon Musk)等一些极端影响者因能够通过少量有针对性的推文推动巨大的市场波动而享有盛誉。虽然一条推文确实可以影响加密货币价格,但关注者数量与货币价格变动之间没有潜在的相关性。转发数量与价格变动之间也存在轻微的负相关,这表明影响者的推特活动可能具有更广泛的影响力,因为它进入了新文章等其他媒体,而不是直接接触投资者。
Databricks 平台对于解决诸如合并 Twitter 和股票数据等复杂问题非常有用。
总体而言,使用 Databricks 来协调来自数据摄取、Lakehouse 数据结构和 BI 报告仪表板的管道对于高效完成该项目非常有益。在很短的时间内,该团队就能够构建数据管道、完成机器学习模型并生成高质量的可视化来传达结果。Databricks 平台提供的基础设施消除了许多技术挑战,使项目取得了成功。
虽然此工具无法让您战胜加密货币市场,但我们坚信它将预测波动性增加的时期,这对特定的投资条件可能是有利的。
免责声明:本文对金融投资决策不承担任何责任。本网站所包含的任何内容均不应被视为投资建议。
原文标题:Introduction to Analyzing Crypto Data Using Databricks
原文作者:Monica Lin, Christoph Meier, Matthew Parker and Kiran Ravella
原文地址:https://www.databricks.com/blog/2022/05/02/introduction-to-analyzing-crypto-data-using-databricks.html




