全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
7547 4
2014-05-16


前言

近日,一份名为“2000万开房数据”的资料被网友疯狂下载。2000万条数据大范围泄露,显示了2000万个受害人包含姓名、身份证号、性别、出生年月日、手机号及注册邮箱在内的详细个人信息。本人从百度云上找到了这2000万开房数据,居然能找到本人的记录(可恨啊!)由于数据量太大,估计导入R也会出问题吧,只对最后50000条记录(写的是5千多条其实有误)作分析。


环境:

操作系统:Windows 7 64JDK1.7.0_40

R版本:R version 3.0.2 (2013-09-25) -- "Frisbee Sailing" 32

分词工具:Rwordseg

云图:wordcloud

关联分析及可视化:arules/arulesViz


注:Rwordseg 是一个R环境下的中文分词工具,使用rJava调用Java分词工具Ansj

Ansj 也是一个开源的 Java 中文分词工具,基于中科院的 ictclas 中文分词算法,采用隐马尔科夫模型(Hidden Markov Model, HMM)。作者孙健重写了一个Java版本,并且全部开源,使得 Ansi 可用于人名识别、地名识别、组织机构名识别、多级词性标注、关键词提取、指纹提取等领域,支持行业词典、 用户自定义词典。详细信息可以参考作者孙健的专访以及项目的Github地址。

当前版本的Rwordseg包完全引用了 Ansj 包,只是简单提供了R的接口,并根据R中处理文本的习惯进行了调整,


安装:


1)安装rJavaJAVA环境

该包依赖于rJava包和Java环境,在安装之前需要确保JRErJava包已经安装,并且正确地设置了环境变量。当前版本的R包在JRE 1.7.0_40下测试通过。

Windows系统为例,假设JRE安装目录为D:\jdk1.7.0_40\jreR安装在D:\R\R-3.0.2,那么需要将如下路径添加到PATH环境变量中。


D:\jdk1.7.0_40\jre\bin

D:\jdk1.7.0_40\jre\bin\client

D:\jdk1.7.0_40\jre\bin\server

D:\R\R-3.0.2\library\rJava\jri


2)安装Rwordseg

install.packages("Rwordseg", repos = "http://R-Forge.R-project.org")


注:如果是旧版本的R,可以通过source的方式进行安装:

install.packages("Rwordseg", repos = "http://R-Forge.R-project.org", type = "source")


3)安装arules wordcloud

install.packages("arules")

install.packages("arulesViz")

install.packages("wordcloud")

library(arules)

library(arulesViz)

library(wordcloud)

require(Rwordseg)


4)载入数据

data <-read.csv("c:/50000.csv")  


注:开房数据包括姓名、性别、年龄、开房注册时间、身份证、住址、手机号码等信息,数据的获取时间是2012-12-282013-1-1350151条。


分析


一 开房趋势分析

times <- as.Date(data$Version);

par(bg = "grey");

plot(table(as.Date(times)), xlab = "注册时间", ylab = "注册数量", main = "开房趋势",  col = 2:5);


结论:在12-28(周五)和29(周六)号开房纪录超多,随后的2013-01-03(周六)开房纪录也比较多,应该是周末人们更有时间开房吧,特别是接近年末的周末更是如此。


二 开房姓氏分析

1)名字长度

names <- as.character(data$Name)

cmt.len <- nchar(names)

rting <- sort(table(cmt.len), decreasing = T)


par(mar = c(0, 1, 2, 1))

pie(rate, labels = paste(names(rate), "", format(rate * 100, digits = 3),"%", sep = ""), col = rainbow(5))


三 开房性别分析


sex <- data$Gender

sex = sex[sex != ""]

sex = sex[sex != " "]

sex = sex[sex != 0]

sex = sex[sex != "N"]

rting <- sort(table(sex), decreasing = T)

rate <- rting/sum(rting)

pie(rate[1:2], main="性别比率", col=colors,cex=0.8)

legend(1,0.5,"right", legend = rate[1:2], bty = "n", fill = colors)





二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2014-5-16 14:49:51
赞一个。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-5-16 21:39:47
谢谢!看来大数据分析会发现许多有趣的现象。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-3-11 11:33:50
赞一个,大数据分析还是蛮有意思的。顺便推荐一款数据分析软件FIneBI,针对数据分析特别容易,数据分析后也能发现不少有趣的现象。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-3-13 11:35:31
赞一个,数据分析很有意思的
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群