R语言对git安卓包分类统计、聚类、复杂网络可视化分析

简介: R语言对git安卓包分类统计、聚类、复杂网络可视化分析

全文链接:http://tecdat.cn/?p=31035


我们曾经为一位客户进行了短暂的咨询工作,他在构建一个主要基于安卓包分类的分析应用程序点击文末“阅读原文”获取完整代码数据


数据源是安卓的项目,把同一类功能的安卓代码的头部,每一个文件都有import 包名。把所有import的包名都抓了下来存到了mysql, 这是数据源 , 需要用r分析这些包名。

用r给这些包做统计,同名的包有多少,占百分之多少,做可视化图,打标签。

这个项目的目的是,比如一类功能是发email的app,每一个项目里java文件头部都有引用的包名,通过把所有的包名一分析,发现80%的项目里面都有同一个包,那么就认为这个包的功能就是email , 然后再通过标签关联java文件 。

导入数据

`Y2K7]~HM]E2E0X1F[TF5Q3.png

channel <- odbcConnect("test", uid="root", pwd="123");
 sqlTables(channel);#查看数据中的表
 data<-sqlFetch(channel,"test")# 查看表的内容,存到数据框里

画直方图显示词频重合率

#做出百分比统计直方图
barplot(table(data$package)/sum(table(data$package)))
# 一共多少包
unique(data$package)

5R{(0[H8[NT`(]537FZ8BAL.png


点击标题查阅往期内容


F2O{5I`S3WO{{V(WGJ95(7T.png

【视频】复杂网络分析CNA简介与R语言对婚礼数据聚类社区检测和可视化|数据分享


左右滑动查看更多

01

JIU323V_I@~FOS]GKTQWI%S.png

02

N]TRCL_Y}4HLD2%(BJESPSJ.png

03

J]R63G{7UBS]0C_E2TUIMPY.png

04

3J~XO0Z94F}_I96HOKEKDDI.png



删去没有重复的包

norepeat=which(table(data$package)==1)
data=data[-as.numeric(norepeat),]
for(i in names(table(data$package))[index][-1]){
  #找出project名
  data$project[data$package ==i]

变换数据

cordata2=matrix(0,length(unique(data$project)),length(unique(data$package)))
colnames(cordata2)=unique(data$package)
rownames(cordata2)=unique(data$project)

计算出重复率

L0UU56EUHER(]IJ]R95_BGF.png

画网络图

这个是git上的项目,每一个点是一个项目,不同颜色表示不同语言,每个点之间有线连着,表示每个项目的联系,可能是关注人一样,也可能是作者一样 。当把包名打上标签后,有可能不同包名是一个标签,那么就可以画出这种联系图。

}
  }
  close(f)
  cat(paste(c("Successfully output to ", getwd(), "/", filename, "/n"), collapse=""))
}
topajek(events, filename="mypajek.net")

对图进行删减,删去连接少的边

newe = censor.edgeweight(e, floor=0.5); newe
V(e)$color = rainbow(max(V(e)$sg),alpha=0.8)[V(e)$sg]
plot(newe,layout=layout.fruchterman.reingold, vertex.size=5,
     vertex.color=V(e)$color, edge.width=1,edge.arrow.size=0.08,

用网络图可视化

所有数据:

%)93N{W$3O0%8Y@SORIE(LV.png

以chat为基地:

5AZ2B68~)$6YOGL3YU0GRSV.png

以email为基地:

ZPNB)Q3`8IOJ~{W0B17]8DD.png

相关视频

0W04(@E3KE]O}@WELBUY4DJ.png



Kmeans算法聚类

聚类数为3,将数据聚成3个类别

y$name1=as.numeric(y$name)

相关视频

Z(VERVI@4RJS63@JBN_@C46.png

可视化聚类结果

B]`L5H]A`94}7IM`9968FTA.png

TT96A$5BSM}))BKK{RZ`2D9.png

相关文章
|
5月前
|
机器学习/深度学习 算法 调度
14种智能算法优化BP神经网络(14种方法)实现数据预测分类研究(Matlab代码实现)
14种智能算法优化BP神经网络(14种方法)实现数据预测分类研究(Matlab代码实现)
467 0
|
6月前
|
机器学习/深度学习 数据采集 运维
匹配网络处理不平衡数据集的6种优化策略:有效提升分类准确率
匹配网络是一种基于度量的元学习方法,通过计算查询样本与支持集样本的相似性实现分类。其核心依赖距离度量函数(如余弦相似度),并引入注意力机制对特征维度加权,提升对关键特征的关注能力,尤其在处理复杂或噪声数据时表现出更强的泛化性。
357 6
匹配网络处理不平衡数据集的6种优化策略:有效提升分类准确率
|
4月前
|
机器学习/深度学习 数据采集 存储
概率神经网络的分类预测--基于PNN的变压器故障诊断(Matlab代码实现)
概率神经网络的分类预测--基于PNN的变压器故障诊断(Matlab代码实现)
637 0
|
5月前
|
安全 网络性能优化 网络虚拟化
网络交换机分类与功能解析
接入交换机(ASW)连接终端设备,提供高密度端口与基础安全策略;二层交换机(LSW)基于MAC地址转发数据,构成局域网基础;汇聚交换机(DSW)聚合流量并实施VLAN路由、QoS等高级策略;核心交换机(CSW)作为网络骨干,具备高性能、高可靠性的高速转发能力;中间交换机(ISW)可指汇聚层设备或刀片服务器内交换模块。典型流量路径为:终端→ASW→DSW/ISW→CSW,分层架构提升网络扩展性与管理效率。(238字)
1367 0
|
11月前
|
API 数据处理 Android开发
Android网络请求演变:从Retrofit到Flow的转变过程。
通过这个比喻,我们解释了 Android 网络请求从 Retrofit 到 Flow 的转变过程。这不仅是技术升级的体现,更是反映出开发者在面对并发编程问题时,持续探索和迭求更好地解决方案的精神。未来,还会有更多新的技术和工具出现,我们期待一同 witness 这一切的发展。
349 36
|
9月前
|
存储 数据管理 网络虚拟化
特殊网络类型分类
本文介绍了网络技术中的关键概念,包括虚拟局域网(VLAN)、存储区域网络(SAN)、网络桥接、接入网以及按拓扑结构和交换方式分类的网络类型。VLAN通过逻辑分隔提高性能与安全性;SAN提供高性能的数据存储解决方案;网络桥接实现不同网络间的互联互通;接入网解决“最后一千米”的连接问题。此外,文章详细对比了总线型、星型、树型、环型和网状型等网络拓扑结构的特点,并分析了电路交换、报文交换和分组交换的优缺点,为网络设计与应用提供了全面参考。
410 8
|
9月前
|
Web App开发 缓存 JavaScript
Android网络小说阅读器的实现
小说阅读Demo,。此Demo使用Jsoup解析HTML,实现小说数据抓取(数据源自网络),并包含自定义View、六章小说缓存等功能,但未实现下载。项目还包括屏幕适配、字体设置等,借助第三方框架完成优化。以下是主页、详情页、阅读页等界面展示。
281 0
|
11月前
|
XML JavaScript Android开发
【Android】网络技术知识总结之WebView,HttpURLConnection,OKHttp,XML的pull解析方式
本文总结了Android中几种常用的网络技术,包括WebView、HttpURLConnection、OKHttp和XML的Pull解析方式。每种技术都有其独特的特点和适用场景。理解并熟练运用这些技术,可以帮助开发者构建高效、可靠的网络应用程序。通过示例代码和详细解释,本文为开发者提供了实用的参考和指导。
440 15
|
计算机视觉
RT-DETR改进策略【卷积层】| CGblock 内容引导网络 利用不同层次信息,提高多类别分类能力 (含二次创新)
RT-DETR改进策略【卷积层】| CGblock 内容引导网络 利用不同层次信息,提高多类别分类能力 (含二次创新)
285 5
RT-DETR改进策略【卷积层】| CGblock 内容引导网络 利用不同层次信息,提高多类别分类能力 (含二次创新)
|
网络协议
计算机网络的分类
【10月更文挑战第11天】 计算机网络可按覆盖范围(局域网、城域网、广域网)、传输技术(有线、无线)、拓扑结构(星型、总线型、环型、网状型)、使用者(公用、专用)、交换方式(电路交换、分组交换)和服务类型(面向连接、无连接)等多种方式进行分类,每种分类方式揭示了网络的不同特性和应用场景。