用Python侦测比特币交易的网络可视化分析

简介:

用Python侦测比特币交易的网络可视化分析

今天给大家介绍如何用网络科学的大数据挖掘技术探索比特币交易的网络情况,特别是针对尺度较大的网络分析思路。

一般来讲,网络分析主要采用Ucinet、Netdraw、Gephi、Cytoscape、NodeXL等,但是往往节点或边数量受到限制,大部分只能处理节点或边在5000-10万之间,当然我们也不要期望能够将百万级别的节点和网络呈现总体的可视化。

对于大尺度的网络分析需要寻找新的编程思路,这里我们选择Python编程IPython Notebook是俺学习和最喜欢的编程环境,特别是Graphlab包提供了SGraph图数据包和分析Toolkits等一系列算法。

网络科学成为大数据挖掘最具代表性的算法和分析思想,无论是追踪网络交易行为、个性化推荐、计算PageRank、中心性测量等都需要我们有一套完善的网络分析思想,复杂网络科学的很多概念都会涉及到,不过今天主要是通过案例介绍Python分析比特币交易的过程、侦测特点节点异常交易并可视化这种交易过程。

首先,俺找到了一个Bitcoin的交易数据集,Bitcoin.csv,75兆大小。

用Jupther Notebook来操作:

我们先加载必要的算法包和设定环境,表征输出结果在Notebook里。

用Python侦测比特币交易的网络可视化分析

接下来我们把比特币交易数据集Bitcoin.csv加载进来,(也可以直接从云服务器下载)

用Python侦测比特币交易的网络可视化分析

整个交易数据包含了近200万的交易记录,数据结构非常简单,就是在什么时间源ID=Src与目标ID=Dst,在一个时间戳timestamp有个交易,交易比特币的价格=btc。

200万的可视化本身就是一个大数据分析问题,只是单用Excel无法处理,在这里非常快可以处理和可视化。

用Python侦测比特币交易的网络可视化分析

从可视化表可以看到有68万的源交易ID,近86万的目标ID,比特币btc交易的统计量也显示出来。先对数据量和统计信息有个基本了解。

接下来我们要从timestamp时间戳变量抽取年、月、日字段。

用Python侦测比特币交易的网络可视化分析

我们有了比特币交易数据,但是交易的实际交割日的比特币相当多少美金,我们需要找到比特币交易数据集,我们找到和下载这个交易期的数据集Martet-price.csv。加载进来…

用Python侦测比特币交易的网络可视化分析

该数据集标识了交易期的bitcoin收盘价close-price。

下面我们将对应交易日期年、月、日的交易日与交易收盘价合并两个数据集。事先将时间戳抽取年、月、日

用Python侦测比特币交易的网络可视化分析

至此数据准备工作完成。

接下来我们需要探索数据的交易情况,可以用Python的matplotlib包进行图形分析。

用Python侦测比特币交易的网络可视化分析

分别得到月交易量,单一用户ID交易量和交易分布图(省略部分算法)

用Python侦测比特币交易的网络可视化分析

交易最大值出现在2011年2-7月

用Python侦测比特币交易的网络可视化分析

source和destination用户的交易分布

用Python侦测比特币交易的网络可视化分析

具有粗略幂律分布的长尾分布,表明大部分交易频次在1次左右。

接下来,我们需要将交易数据集构造成为图SGraph存储结构,以便进行网络=图的网络分析算法。

用Python侦测比特币交易的网络可视化分析

总共有约88万个节点(vertice)和约196万的边(edge)

用Python侦测比特币交易的网络可视化分析用Python侦测比特币交易的网络可视化分析

网络分析的重要统计量是度degree分布,通过计算出度outdegree和入度indegree和总degree的分布,我们可以看出度分布基本上服从幂律分布特性。

幂律分布的基本要点:越重大的事情越很少发生,存在少数个别节点起着重要的作用。

用Python侦测比特币交易的网络可视化分析

我们很容易查看一下top=5,出度和入度比较异常的outliers交易ID

我们还可以看看最大比特币交易量的top5

用Python侦测比特币交易的网络可视化分析

我们也可以计算特别指定的某交易ID=307659的P2P交易的主要情况。

接下来我们利用Pagerank算法计算网络交易的Pagerank值。

用Python侦测比特币交易的网络可视化分析

Pagerank是Google网页排名算法:一个网页的价值是由链接这个网页的网页的加权计算的。

用Python侦测比特币交易的网络可视化分析

接下来我们进入比特币交易网络分析和路径可视化。我们不可能将整个网络可视化出来(但目前也找到了可以用javascript进行大规模网络数据展现的可能性,还没有学完)

用Python侦测比特币交易的网络可视化分析

指定ID=9264的节点看该ID的交易一度网络。

用Python侦测比特币交易的网络可视化分析

选择特定节点筛选后的比特币交易网络的交易对象和交易值

用Python侦测比特币交易的网络可视化分析

交易账户的特定网络可视化

用Python侦测比特币交易的网络可视化分析

特点账户人物的交易网络

用Python侦测比特币交易的网络可视化分析

高亮两个特点节点的交易网络。

用Python侦测比特币交易的网络可视化分析

筛选后的某账户节点的交易行为。

用Python侦测比特币交易的网络可视化分析

某账户节点的比特币交易路径和资金交易行为。

用Python侦测比特币交易的网络可视化分析

两个账户交易日期的网络路径可视化。

通过上述操作,我们可以看到数据结构是非常简单的,分析思想和算法语法都可以模仿,比如如果我们能够拿到微信群抢红包数据,就可以进行相关网络挖掘。

如果谁建一个群,招募500个人玩抢红包,把数据保留下来,进行分析也是非常有意思的事情。数据量足够大的话甚至可以反推红包算法了。

当然我主要学习这个算法后处理移动手机通过清单,分析的原理是一样的。


本文作者:沈浩

来源:51CTO

相关文章
|
2月前
|
存储 分布式计算 大数据
基于Python大数据的的电商用户行为分析系统
本系统基于Django、Scrapy与Hadoop技术,构建电商用户行为分析平台。通过爬取与处理海量用户数据,实现行为追踪、偏好分析与个性化推荐,助力企业提升营销精准度与用户体验,推动电商智能化发展。
|
2月前
|
机器学习/深度学习 大数据 关系型数据库
基于python大数据的台风灾害分析及预测系统
针对台风灾害预警滞后、精度不足等问题,本研究基于Python与大数据技术,构建多源数据融合的台风预测系统。利用机器学习提升路径与强度预测准确率,结合Django框架实现动态可视化与实时预警,为防灾决策提供科学支持,显著提高应急响应效率,具有重要社会经济价值。
|
2月前
|
数据采集 监控 网络安全
VMware Cloud Foundation Operations for Networks 9.0.1.0 发布 - 云网络监控与分析
VMware Cloud Foundation Operations for Networks 9.0.1.0 发布 - 云网络监控与分析
389 3
VMware Cloud Foundation Operations for Networks 9.0.1.0 发布 - 云网络监控与分析
|
2月前
|
机器学习/深度学习 大数据 关系型数据库
基于python大数据的青少年网络使用情况分析及预测系统
本研究基于Python大数据技术,构建青少年网络行为分析系统,旨在破解现有防沉迷模式下用户画像模糊、预警滞后等难题。通过整合多平台亿级数据,运用机器学习实现精准行为预测与实时干预,推动数字治理向“数据驱动”转型,为家庭、学校及政府提供科学决策支持,助力青少年健康上网。
|
3月前
|
JSON 缓存 供应链
电子元件 item_search - 按关键字搜索商品接口深度分析及 Python 实现
本文深入解析电子元件item_search接口的设计逻辑与Python实现,涵盖参数化筛选、技术指标匹配、供应链属性过滤及替代型号推荐等核心功能,助力高效精准的电子元器件搜索与采购决策。
|
3月前
|
缓存 供应链 芯片
电子元件类商品 item_get - 商品详情接口深度分析及 Python 实现
电子元件商品接口需精准返回型号参数、规格属性、认证及库存等专业数据,支持供应链管理与采购决策。本文详解其接口特性、数据结构与Python实现方案。
|
12月前
|
SQL 安全 网络安全
网络安全与信息安全:知识分享####
【10月更文挑战第21天】 随着数字化时代的快速发展,网络安全和信息安全已成为个人和企业不可忽视的关键问题。本文将探讨网络安全漏洞、加密技术以及安全意识的重要性,并提供一些实用的建议,帮助读者提高自身的网络安全防护能力。 ####
279 17

热门文章

最新文章

推荐镜像

更多