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

原文出处:拓端数据部落公众号

咱们已经为一位客户进行了短暂的征询工作,他正在构建一个次要基于安卓包分类的剖析应用程序。

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

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

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

导入数据

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

画直方图显示词频重合率

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

删去没有反复的包

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)

计算出反复率

画网络图

这个是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,

用网络图可视化

所有数据:

以chat为基地:

以email为基地:

Kmeans算法聚类

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

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

可视化聚类后果


最受欢迎的见解

1.R语言k-Shape算法股票价格工夫序列聚类

2.R语言基于温度对城市档次聚类、kmean聚类、主成分剖析和Voronoi图

3.R语言对用电负荷工夫序列数据进行K-medoids聚类建模和GAM回归

4.r语言鸢尾花iris数据集的档次聚类

5.Python Monte Carlo K-Means聚类实战

6.用R进行网站评论文本开掘聚类

7.R语言KMEANS均值聚类和档次聚类:亚洲国家地区生存幸福品质异同可视化**

8.PYTHON用户散失数据挖掘:建设逻辑回归、XGBOOST、随机森林、决策树、反对向量机、奢侈贝叶斯模型和KMEANS聚类用户画像

9.R语言基于Keras的小数据集深度学习图像分类