对网上盛传的两千万泄漏数据的简单分析

  1. 云栖社区>
  2. 博客>
  3. 正文

对网上盛传的两千万泄漏数据的简单分析

浣熊干面包 2015-01-23 10:44:00 浏览590
展开阅读全文

最近网上盛传两千万酒店用户数据泄漏,出于好奇,我也从网上下载了一份下来。本次下载纯粹是出于学习和研究用,不会做什么坏事,不要问本人要下载地址,大家自己找。由于本人并不是学统计和数据挖掘方面的,所以只能浅显的做做统计分析,下面开始我们的学习和研究。

首先,数据源只有一个表(总数据2005W),里面主要存放了用户的姓名、证件类型,证件号码,生日,性别,住址,手机号码,邮箱等私人信息。这些数据应该是从多个数据源集成进来的,因为里面的格式很不工整,有些默认值使用的也不一样。我们要做数据分析,那么需要进行数据清理,然后建立Cube,使用ETL转换成维度模型,最后使用各种前段呈现工具进行展示。

数据清理

主要是去除字符串首尾的空格,还有就是很多数据是没有生日和性别的值的,但是我们知道,通过身份证号码就能够推断出生日和性别,所以这部分数据可以补齐。另外还有就是数据重复问题,我们可以把身份证号码作为主键进行去重,我搜索了下,有相同身份证号码的大概占总数据的0.5%,所以我也就没有做去重工作,认为里面的数据都表示一个独立的人。

多维分析模型

有姓名,我们可以对姓氏分布进行分析,有了身份证号码,我们可以对出生地(省、市、区)进行分析,对出生的年月分布进行分析,对性别分布进行分析。住址由于格式太不一样,就不分析了,有了手机号码我们可以对手机号码段的分布进行分析,也可以对用户所在地进行分析(绝大多数用户使用的手机号就是平时生活所在地的号),有了邮箱地址可以对域名进行统计。

要得到身份证对于的地区,以及电话号码对应的地区,可以从网上找到对应表,导入数据库中即可进行联合分析。

image

出生年月和性别

在建立了多维模型后,使用Excel连接Cube进行多维分析是个很简单的事情。下面我们看看所有人员的年龄分布。

image

我们可以看到,住酒店的人主要集中在1962~1990年左右,由于我们的数据是Budget Hotel(比较廉价的酒店)数据,可以想象,住这些酒店的都是社会的中低层,高富帅和官二代是肯定不住这种酒店的,穷的很的那就只有住更廉价的招待所或者睡火车站了。住酒店的人的年龄段大部分都还在工作,看来很多人住酒店还是因为商务的原因。从16岁到20岁左右的酒店人数还是少数哈,并不是传说的都是约炮数据。

下面再来对比一下各年龄段性别上的分布。(为了便于观看主体数据,我把时间段缩短成1949~2000)

image

从图中可以看到,在1990年之前出生人里面,住酒店的男性比例远高于女性,毕竟出差的人还是以男性居多吧,这个数据可以理解。但是在90后的年龄段里面,女性比例和男性比例基本是1:1,甚至还有些数据是女性比例高于男性,90后才刚跨入社会开始工作,或者还没有开始工作,所以不存在大量男性出差的问题,但是为什么女性比例会比男性比例高呢?这个问题有意思,留给大家自己YY。

省份分布

我们可以从身份证号码前2位知道一个人在出生上户口的时候所在的省份,可以统计每个省份的住酒店人数。本身统计这个没什么意思,把全国人口统计数据拿出来比较就比较有意思了。下面看看做出的表。

省份 酒店排行 人口排行 上升名次
江苏 1 5 4
山东 2 2 0
浙江 3 10 7
河南 4 3 -1
安徽 5 8 3
湖北 6 9 3
上海 7 24 17
河北 8 6 -2
辽宁 9 14 5
山西 10 18 8
四川 11 4 -7
江西 12 13 1
黑龙 13 15 2
陕西 14 16 2
福建 15 17 2
湖南 16 7 -9
广东 17 1 -16
北京 18 26 8
吉林 19 21 2
内蒙 20 23 3
天津 21 27 6
甘肃 22 22 0
广西 23 11 -12
贵州 24 19 -5
新疆 25 25 0
云南 26 12 -14
青海 27 30 3
宁夏 28 29 1
重庆 29 20 -9
海南 30 28 -2
西藏 31 31 0

我们可以看到,上海、浙江、山西、北京、天津这几个地方的住酒店人数排名远高于人口排名,江浙一带和京津塘一带经济很发达,出差频繁,可以理解,但是山西为什么出差那么多呢?可能山西人有商业的基因吧。

另外就是发现广东、广西、云南、四川、重庆的住酒店人数小于人口排名,广东很发达啊,怎么会住酒店的人少呢?可能是因为广东人喜欢在本地发展吧,出来到处漂的并不多。

上面只是从身份证上得出的省份,下面再看看手机号得出的省份数据,这个数据反映的应该是人们当前工作/生活的省份的情况。

省份 酒店排行 人口排行 上升名次
江苏 1 5 4
上海 2 24 22
北京 3 26 23
山东 4 2 -2
广东 5 1 -4
浙江 6 10 4
河南 7 3 -4
湖北 8 9 1
辽宁 9 14 5
陕西 10 16 6
河北 11 6 -5
福建 12 17 5
山西 13 18 5
安徽 14 8 -6
黑龙 15 15 0
天津 16 27 11
四川 17 4 -13
江西 18 13 -5
湖南 19 7 -12
吉林 20 21 1
内蒙 21 23 2
重庆 22 20 -2
广西 23 11 -12
甘肃 24 22 -2
贵州 25 19 -6
新疆 26 25 -1
云南 27 12 -15
海南 28 28 0
宁夏 29 29 0
青海 30 30 0
西藏 31 31 0

 

 

 

这个数据比上一个数据的差别更大,可以说是非常不平衡,可以看到,上海、北京、天津的商业很发达,人口排名不高,但是住酒店的人口排名非常高。比较杯具的是云南、四川、湖南、广西,工作和出差人数远少于人口基数。

姓名分布

这里我只统计了姓,没有统计名,不过姓名可以先说一下,在所有姓名数据中,重名最高的前10个姓名是:张伟,王伟,王磊,李伟,张磊,刘伟,李强,张勇,王勇,刘洋。相信很多人周围就有这些姓名的人。重名排行前250位左右的都是两个字的姓名,看来起三个字姓名的重名率会低很多很多。重名率最高的Top10三个字姓名的是:王建军,王志强,王建华,王晓东,张建军,王婷婷,王志刚,张建华,张志强,张婷婷。好像周围也很容易找到这些姓名的人。

下面还是说姓吧,这个对中国人来说很重要。姓氏很多,网上找了一个前200姓氏人口排名表,拿来和我做出来的数据对比,发现有以下几个数字比较突出:

  • 金姓和陆姓的酒店统计排名远远高于人口统计排名。
  • 邓,曾,孔这三个姓的酒店统计排名远远小于人口统计排名。

其中原因还得从其他维度去联合分析,可能是因为有些姓是集中在某个地方吧!

另外一个题外话,在Top200的姓氏人口统计中没有肖姓,却有萧姓,其实这是同一个姓,古时候根本没有姓肖的,后来由于文革时期的简体字运动,把萧简写成了肖,后来这个简写又被取消了。

出生月份统计

很简单的一个统计分析,看看一年12个月里面,哪个月出生的人最多。

image

从图中可以看出,10月份的人最多,4月份的人最少。为什么会这样呢?可能需要专家来解释。

手机号段分布

我这里取的是手机号码的前三位,应该哪个最高?我一直以为是138,结果发现是139。

139 1399857
138 1230530
135 782764
136 778188
137 683742
186 581451
159 456526
158 434760
133 356135
150 324798

移动的号码占很大优势,联通186和电信的133都排在后面了。看来广大中低产阶级还是选移动的多啊。

本来还可以进一步分析具体是全球通、神州行还是动感地带的,难得提取了。有需要的话可以再花点时间分析分析。

邮箱域名分布

邮箱域名里面,哪个最多?以前听说是163,后来又听说QQ邮箱把他超越了,我们还是看数据吧。

前10大邮箱域名排名:

@qq.com 611842
@163.com 594392
@126.com 274512
@hotmail.com 203237
@sina.com 151798
@yahoo.com.cn 101692
@gmail.com 96346
@139.com 67565
@sohu.com 50179
@yahoo.cn 31274

QQ邮箱果然是最多的,不过优势也不是那么明显,而且排第二第三的都是网易的邮箱,加起来就超过QQ邮箱了。

以上只是简单的分析,其实在进行了很好的数据清洗和模型设计后,我们还可以从中挖掘出很多好玩的地方。尤其是应用上数据挖掘算法,可以造成多个维度之间的相关性,由于工作较忙,时间比较仓促,所以实验就做到这里。大家有什么想分析的话可以留言,我再做做。

本文转自深蓝居博客园博客,原文链接:http://www.cnblogs.com/studyzy/p/3388887.html,如需转载请自行联系原作者

网友评论

登录后评论
0/500
评论
浣熊干面包
+ 关注