加密货币数据分析实战:基于Databricks的情感与价格关联探索

·

加密货币市场在短时间内经历了爆炸式增长,其市值从2017年的170亿美元飙升至2021年的2.25万亿美元,涨幅超过130倍。尽管增长迅猛,加密货币仍以高波动性著称,其价格受市场趋势、政治事件、技术发展乃至社交媒体言论等多重因素影响。特别是在Twitter等平台上,知名人物的推文甚至能直接引发币价剧烈波动。

在哈佛大学扩展学院的一门数据工程与分析课程中,我们小组完成了一个项目:构建一个加密货币数据湖,供数据工程师、机器学习从业者和商业智能分析师等不同角色使用,旨在分析加密货币的长期趋势,尤其是社交媒体情绪对加密货币(如比特币)价格波动的影响。我们利用Databricks Lakehouse平台,通过Tweepy库摄取Twitter的非结构化数据,并通过yfinance库获取来自雅虎财经的传统结构化价格数据,最终构建了一个机器学习预测模型,用于分析投资者情绪对加密货币估值的影响。聚合后的趋势和可操作的见解通过Databricks SQL仪表板展示,方便相关利益方查阅。


项目架构概述

加密货币的一大优势是全天候交易,市场数据随时可用,这为分析推文与币价之间的相关性提供了便利。下图展示了数据和机器学习管道的高层架构:

我们的完整业务流程运行了一系列Databricks笔记本,执行以下任务:

数据摄取管道

数据科学处理

数据分析

Lakehouse范式结合了数据湖和数据仓库的关键能力,支持各种商业智能和人工智能用例。采用Lakehouse架构后,我们仅用一周时间就完成了管道的搭建。团队中不同成员扮演了不同数据角色,该范式实现了数据工程、机器学习和商业智能之间的无缝衔接,无需跨系统移动数据。


数据与机器学习管道

基于Medallion架构的数据摄取

主要数据源包括Twitter和雅虎财经。我们使用了一个查找表来存储加密货币代号及其对应的Twitter话题标签,以便后续搜索相关推文。

我们使用yfinance Python库从雅虎财经API以15分钟为间隔下载历史加密货币交易市场数据。原始数据存储在Bronze表中,包含代号、时间戳、开盘价、收盘价、最高价、最低价和成交量等信息。随后,我们创建了一个Delta Lake Silver表,添加了更多数据,如该时间段内代号的相对价格变化。Delta Lake保证了每次操作的原子性,便于数据重新处理,同时强制执行模式,防止不良数据进入数据湖。

我们使用tweepy Python库下载Twitter数据,将原始推文存储在Delta Lake Bronze表中。从中移除不必要的数据并过滤掉非ASCII字符(如表情符号)后,将精炼数据存入Delta Lake Silver表。


数据科学实践

数据科学部分包括三个主要环节:探索性数据分析、情感模型和相关性模型。目标是构建情感模型,并利用其输出评估情感与不同加密货币(如比特币、以太坊、Coinbase和币安)价格之间的相关性。情感模型采用有监督的多类别分类方法,而相关性模型使用线性回归模型。我们使用MLflow管理两个模型的生命周期,包括实验、可重现性、部署和中央模型注册。MLflow注册表通过提供集中式模型存储、API和UI,协作管理MLflow模型的全生命周期,支持模型溯源、版本控制、阶段转换(如从暂存到生产或归档)和注释等功能。

探索性数据分析

探索性数据分析部分通过可视化呈现数据集的深入洞察。例如,我们使用Seaborn的小提琴图查看了各情感类别推文长度的分布情况;通过matplotlib和wordcloud库生成正面和负面推文的词云,展示两种情感类型中最常见的词汇;还基于Gensim构建了交互式主题建模仪表板,展示数据集中最常见的主题、各主题中的高频词以及主题之间的相似度。

情感分析模型

开发准确的情感分析模型是本项目的核心任务之一。该模型的目标是将原始推文中表达的情感极性分类为“正面”、“中性”或“负面”。由于情感分析具有重要的实际意义,文献中提出了多种机器学习策略:

本项目聚焦后两种方法,因为它们最具潜力。我们选择SparkNLP作为自然语言处理库,因其功能广泛、可扩展性强(完全由Apache Spark™支持)且准确性高(包含多种最先进的嵌入技术,支持迁移学习)。首先,我们使用上述经典机器学习算法构建了情感分析管道,包括预处理、特征向量化以及训练和超参数调优三个部分。

我们在每个分类器上运行该管道,并比较它们在测试集上的准确率。结果,支持向量分类器的准确率最高,达到75.7%,逻辑回归(75.6%)、朴素贝叶斯(74%)和随机森林(71.9%)紧随其后。为提升性能,可测试XGBoost或GradientBoostedTrees等其他监督分类器,或将多个算法组合成集成模型进行预测(如多数投票或堆叠)。

除了第一条管道,我们还开发了第二条Spark管道,架构类似但利用了SparkNLP丰富的预训练词嵌入和深度学习模型功能。从标准文档组装注释器开始,我们仅使用标准化注释器移除Twitter句柄、字母数字字符、超链接、HTML标签和时间戳,未使用其他预处理相关注释器。在训练阶段,我们使用了SparkNLP提供的预训练(基于知名IMDb数据集)情感深度学习模型。使用默认超参数设置时,测试集准确率已达83%,若采用其他预训练词嵌入或情感深度学习模型,性能还可能进一步提升。因此,深度学习策略明显优于图5中支持向量分类器管道,准确率高出约7.4个百分点。

相关性模型

项目要求包含情感与价格的相关性模型,因此我们使用scikit-learn和mlflow.sklearn构建了线性回归模型。

我们通过为负面推文赋值-1、中性推文0、正面推文1来量化情感。每种加密货币的总情感得分按15分钟时间窗口累加计算。线性回归模型利用所有加密货币在各窗口内的总情感得分预测价格百分比变化。然而,该模型未显示情感与价格变化之间存在明确的线性关系。未来改进方向可能是利用情感极性预测价格变化。


商业智能应用

理解股票相关性模型是生成买卖预测的关键,但与信息交互并传达结果对于做出明智决策同样重要。市场动态变化,需要实时可视化来聚合和组织趋势信息。Databricks Lakehouse将所有商业智能分析师任务协调在一处,简化了对数据湖表的访问。首先,生成一组SQL查询从Lakehouse提取和聚合信息;然后通过GUI工具轻松导入数据表,快速创建仪表板视图。除仪表板外,还设置了警报触发器,用于通知用户关键活动,如股票涨跌幅超过X%、特定加密货币话题的Twitter活动增加或各加密货币整体正面/负面情绪变化。

仪表板生成

商业智能仪表板使用Databricks SQL创建。该系统提供完整的生态系统,用于生成SQL查询、创建数据视图和图表,并最终通过Databricks仪表板组织所有信息。

Databricks中的SQL编辑器是简化流程的关键。每个查询均可通过编辑器GUI选择不同的数据视图,包括表格、图表和摘要统计信息,即时查看输出结果。随后,视图可直接导入仪表板,消除了冗余,实现了同一查询用于不同可视化。

可视化呈现

针对Twitter情感分析主题,有三个关键视图帮助用户更深层次地与数据交互:


主要发现

通过数据分析,我们得出以下结论,凸显Twitter用户对加密货币价格的影响程度:

尽管这一工具无法助您智胜加密货币市场,但我们坚信它能预测波动性加剧的时期,这对特定投资条件有利。

免责声明: 本文不对金融投资决策负责。本网站内容不应被解释为投资建议。

👉 探索实时数据分析工具


常见问题

1. 为什么选择Delta Lake作为数据湖解决方案?
Delta Lake提供了ACID事务、模式强制执行和数据版本控制等功能,确保数据质量和一致性。它简化了数据重新处理流程,并防止不良数据污染数据湖,特别适合高频率更新和数据协作场景。

2. 情感分析模型的选择有哪些考量?
我们对比了经典机器学习算法和深度学习算法。经典方法成本低、易解释,但性能较低;深度学习方法准确率高、扩展性好,但计算成本较高。最终根据项目需求和资源选择了SparkNLP的预训练深度学习模型。

3. 如何保证数据管道的可扩展性?
Databricks Lakehouse平台基于Apache Spark构建,天然支持分布式计算和数据并行处理。Medallion架构(Bronze、Silver、Gold层)确保了数据逐步精炼,易于扩展和维护。

4. 推文情感与加密货币价格是否始终相关?
我们的模型未发现强烈的线性关系,但高推文频率时期与价格波动存在相关性。未来可探索非线性模型或引入其他因素(如交易量、市场情绪指数)增强预测能力。

5. Databricks在项目中的主要优势是什么?
Databricks提供了端到端的统一平台,整合了数据工程、机器学习和商业智能工作流。其协作笔记本、MLflow集成和SQL编辑器大幅降低了技术复杂度,加速了项目开发。

6. 该项目是否适用于其他金融数据分析场景?
是的,该架构和方法可扩展至股票、外汇等其他金融领域,只要数据源可用且分析目标涉及情感与市场行为的关联研究。


通过本项目,我们展示了如何利用现代数据平台和机器学习技术深入探索社交媒体与金融市场间的复杂关系。无论您是数据工程师、科学家还是分析师,这类方法都能为您提供强大的分析基础和 actionable 的洞察。