博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
手机通话记录统计分析
阅读量:4325 次
发布时间:2019-06-06

本文共 1764 字,大约阅读时间需要 5 分钟。

现如今,智能手机是人手一份。每天我们都通过手机与外界沟通交流,手机作为必不可少的媒介,无形中记录着我们日常生活中的点点滴滴。这些信息主要包括个人位置信息、通信信息、账号密码信息、存储文件信息等四大类。由于Android是开源的,软件用户可自行对软件进行修改、复制及再分发,直接进行信息交换。有些用户还会自己对系统进行破解,获取权限,窃取个人信息。一些山寨手机甚至还留有后门程序,固化窃听软件,并通过远程遥控使手机话筒在用户不知情的情况下开启,把手机变成一个窃听-器,造成个人隐私泄露。

因此,通过对手机数据的挖掘与分析,可以便捷地进行用户行为分析;比如,利用手机定位数据可以进行用户特征挖掘;利用通话记录可以进行社交亲密度分析等等。我带着这个想法,导出自己手机上可以找到的各种数据文件,并通过R软件十对这些数据进行了简单的统计分析,现将步骤记录如下:

通话记录分析

首先,读取xml格式通话记录并解析,将其转换成数据框格式;然后便可以通过DT包快速便捷地查看通话记录。

library(XML)xmlfile=xmlParse(file.choose(),encoding="UTF-8") #读取xml格式通话记录并解析mydata=xmlToDataFrame(xmlfile) #转换格式head(mydata)mydata$Duration=as.numeric(mydata$Duration)

查看列表

library(DT)datatable(mydata, options = list(pageLength = 10))

按人统计通话记录

calldata=data.frame(Totaltime=with (mydata , tapply (Duration , list (ContactName) , sum ) ),                    Average=with (mydata ,tapply (Duration , list (ContactName) , mean ) ))head(calldata)library(plotly)plot_ly(calldata,x=rownames(Totaltime),y=Totaltime,type = "bar",name = "sum")add_trace(calldata,x=rownames(Average),y=Average,name = "mean")

查询

plot_ly(mydata[mydata$ContactName=="张三",],x=StartTime,y=Duration,type = "bar")plot_ly(mydata[mydata$ContactName=="张三",],x=StartTime,y=Duration)

按日统计通话记录

library(dygraphs)library(xts)mydata$StartTime=as.Date(mydata$StartTime) #去除分秒daydata=with (mydata, tapply (Duration , list (StartTime) , sum ) ) #每日通话时长dygraph(daydata, main = "每日通话时长走势") %>%   dyRangeSelector(dateWindow = c("2016-05-01", "2016-06-01"))### 转化成时间序列画图xtsdata=xts(daydata,as.Date(names(daydata)))index(xtsdata)dygraph(xtsdata, main = "每日通话时长走势") %>%   dyRangeSelector(dateWindow = c("2016-05-01", "2016-06-01"))

这篇文章只记录了对通话记录的简单统计和可视化,手机数据真正的宝矿是其内置的各种传感器,随着物联网时代的到来,如何通过优秀的算法挖掘分析这些信号数据,具有十分重要的意义。

反馈与建议

  • 作者:
  • 邮箱:

转载于:https://www.cnblogs.com/shangfr/p/5564949.html

你可能感兴趣的文章
JS中各种跳转解析
查看>>
JAVA 基础 / 第八课:面向对象 / JAVA类的方法与实例方法
查看>>
Ecust OJ
查看>>
P3384 【模板】树链剖分
查看>>
Thrift源码分析(二)-- 协议和编解码
查看>>
考勤系统之计算工作小时数
查看>>
4.1 分解条件式
查看>>
Equivalent Strings
查看>>
flume handler
查看>>
收藏其他博客园主写的代码,学习加自用。先表示感谢!!!
查看>>
H5 表单标签
查看>>
su 与 su - 区别
查看>>
C语言编程-9_4 字符统计
查看>>
在webconfig中写好连接后,在程序中如何调用?
查看>>
限制用户不能删除SharePoint列表中的条目(项目)
查看>>
【Linux网络编程】使用GDB调试程序
查看>>
feign调用spring clound eureka 注册中心服务
查看>>
ZT:Linux上安装JDK,最准确
查看>>
LimeJS指南3
查看>>
关于C++ const成员的一些细节
查看>>