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

用Python侦测比特币买卖的网络可视化剖析(python获取比特币数据)  Python 数据可视化 网络分析 第1张

今日给咱们介绍如何用网络科学的大数据发掘技能探究比特币买卖的网络状况,特别是针对标准较大的网络剖析思路。

一般来讲,网络剖析首要选用Ucinet、Netdraw、Gephi、Cytoscape、NodeXL等,可是往往节点或边数量受到限制,大部分只能处理节点或边在5000-10万之间,当然咱们也不要希望能够将***其他节点和网络出现整体的可视化。

关于大标准的网络剖析需求寻觅新的编程思路,这儿咱们挑选Python编程IPython Notebook是俺学习和最喜欢的编程环境,特别是Graphlab包供给了SGraph图数据包和剖析Toolkits等一系列算法。

网络科学成为大数据发掘***代表性的算法和剖析思维,无论是追寻网络买卖行为、个性化引荐、核算PageRank、中心性丈量等都需求咱们有一套完善的网络剖析思维,杂乱网络科学的许多概念都会涉及到,不过今日首要是经过事例介绍Python剖析比特币买卖的进程、侦测特色节点反常买卖并可视化这种买卖进程。

首要,俺找到了一个Bitcoin的买卖数据集,Bitcoin.csv,75兆巨细。

用Jupther Notebook来操作:

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

用Python侦测比特币买卖的网络可视化剖析(python获取比特币数据)  Python 数据可视化 网络分析 第2张

接下来咱们把比特币买卖数据集Bitcoin.csv加载进来,(也能够直接从云服务器下载)

用Python侦测比特币买卖的网络可视化剖析(python获取比特币数据)  Python 数据可视化 网络分析 第3张

整个买卖数据包含了近200万的买卖记载,数据结构十分简略,便是在什么时刻源ID=Src与方针ID=Dst,在一个时刻戳timestamp有个买卖,买卖比特币的价格=btc。

200万的可视化自身便是一个大数据剖析问题,仅仅单用Excel无法处理,在这儿十分快能够处理和可视化。

用Python侦测比特币买卖的网络可视化剖析(python获取比特币数据)  Python 数据可视化 网络分析 第4张

从可视化表能够看到有68万的源买卖ID,近86万的方针ID,比特币btc买卖的核算量也显示出来。先对数据量和核算信息有个根本了解。

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

用Python侦测比特币买卖的网络可视化剖析(python获取比特币数据)  Python 数据可视化 网络分析 第5张

咱们有了比特币买卖数据,可是买卖的实践交割日的比特币适当多少美金,咱们需求找到比特币买卖数据集,咱们找到和下载这个买卖期的数据集Martet-price.csv。加载进来…

用Python侦测比特币买卖的网络可视化剖析(python获取比特币数据)  Python 数据可视化 网络分析 第6张

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

下面咱们将对应买卖日期年、月、日的买卖日与买卖收盘价兼并两个数据集。事先将时刻戳抽取年、月、日

用Python侦测比特币买卖的网络可视化剖析(python获取比特币数据)  Python 数据可视化 网络分析 第7张

至此数据准备工作完结。

接下来咱们需求探究数据的买卖状况,能够用Python的matplotlib包进行图形剖析。

用Python侦测比特币买卖的网络可视化剖析(python获取比特币数据)  Python 数据可视化 网络分析 第8张

别离得到月买卖量,单一用户ID买卖量和买卖散布图(省掉部分算法)

用Python侦测比特币买卖的网络可视化剖析(python获取比特币数据)  Python 数据可视化 网络分析 第9张

买卖***值出现在2011年2-7月

用Python侦测比特币买卖的网络可视化剖析(python获取比特币数据)  Python 数据可视化 网络分析 第10张

source和destination用户的买卖散布

用Python侦测比特币买卖的网络可视化剖析(python获取比特币数据)  Python 数据可视化 网络分析 第11张

具有大略幂律散布的长尾散布,标明大部分买卖频次在1次左右。

接下来,咱们需求将买卖数据集结构成为图SGraph存储结构,以便进行网络=图的网络剖析算法。

用Python侦测比特币买卖的网络可视化剖析(python获取比特币数据)  Python 数据可视化 网络分析 第12张

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

用Python侦测比特币买卖的网络可视化剖析(python获取比特币数据)  Python 数据可视化 网络分析 第13张用Python侦测比特币买卖的网络可视化剖析(python获取比特币数据)  Python 数据可视化 网络分析 第14张

网络剖析的重要核算量是度degree散布,经过核算出度outdegree和入度indegree和总degree的散布,咱们能够看出度散布根本上遵守幂律散布特性。

幂律散布的根本关键:越严重的工作越很少产生,存在少量单个节点起着重要的效果。

用Python侦测比特币买卖的网络可视化剖析(python获取比特币数据)  Python 数据可视化 网络分析 第15张

咱们很简略检查一下top=5,出度和入度比较反常的outliers买卖ID

咱们还能够看看***比特币买卖量的top5

用Python侦测比特币买卖的网络可视化剖析(python获取比特币数据)  Python 数据可视化 网络分析 第16张

咱们也能够核算特别指定的某买卖ID=307659的P2P买卖的首要状况。

接下来咱们使用Pagerank算法核算网络买卖的Pagerank值。

用Python侦测比特币买卖的网络可视化剖析(python获取比特币数据)  Python 数据可视化 网络分析 第17张

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

用Python侦测比特币买卖的网络可视化剖析(python获取比特币数据)  Python 数据可视化 网络分析 第18张

接下来咱们进入比特币买卖网络剖析和途径可视化。咱们不行能将整个网络可视化出来(但现在也找到了能够用javascript进行大规模网络数据展示的可能性,还没有学完)

用Python侦测比特币买卖的网络可视化剖析(python获取比特币数据)  Python 数据可视化 网络分析 第19张

指定ID=9264的节点看该ID的买卖一度网络。

用Python侦测比特币买卖的网络可视化剖析(python获取比特币数据)  Python 数据可视化 网络分析 第20张

挑选特定节点挑选后的比特币买卖网络的买卖目标和买卖值

用Python侦测比特币买卖的网络可视化剖析(python获取比特币数据)  Python 数据可视化 网络分析 第21张

买卖账户的特定网络可视化

用Python侦测比特币买卖的网络可视化剖析(python获取比特币数据)  Python 数据可视化 网络分析 第22张

特色账户人物的买卖网络

用Python侦测比特币买卖的网络可视化剖析(python获取比特币数据)  Python 数据可视化 网络分析 第23张

高亮两个特色节点的买卖网络。

用Python侦测比特币买卖的网络可视化剖析(python获取比特币数据)  Python 数据可视化 网络分析 第24张

挑选后的某账户节点的买卖行为。

用Python侦测比特币买卖的网络可视化剖析(python获取比特币数据)  Python 数据可视化 网络分析 第25张

某账户节点的比特币买卖途径和资金买卖行为。

用Python侦测比特币买卖的网络可视化剖析(python获取比特币数据)  Python 数据可视化 网络分析 第26张

两个账户买卖日期的网络途径可视化。

经过上述操作,咱们能够看到数据结构是十分简略的,剖析思维和算法语法都能够仿照,比方假如咱们能够拿到微信群抢红包数据,就能够进行相关网络发掘。

假如谁建一个群,招募500个人玩抢红包,把数据保存下来,进行剖析也是十分有意思的工作。数据量足够大的话乃至能够反推红包算法了。

当然我首要学习这个算法后处理移动手机经过清单,剖析的原理是相同的。

转载请说明出处
知优网 » 用Python侦测比特币买卖的网络可视化剖析(python获取比特币数据)

发表评论

您需要后才能发表评论