R語(yǔ)言對(duì)git安卓包分類統(tǒng)計(jì)、聚類、復(fù)雜網(wǎng)絡(luò)可視化分析
全文鏈接:http://tecdat.cn/?p=31035
原文出處:拓端數(shù)據(jù)部落公眾號(hào)
我們?cè)?jīng)為一位客戶進(jìn)行了短暫的咨詢工作,他正在構(gòu)建一個(gè)主要基于安卓包分類的分析應(yīng)用程序。
數(shù)據(jù)源是安卓的項(xiàng)目,把同一類功能的安卓代碼的頭部,每一個(gè)文件都有import?包名。把所有import的包名都抓了下來(lái)存到了mysql, 這是數(shù)據(jù)源 , 需要用r分析這些包名。
用r給這些包做統(tǒng)計(jì),同名的包有多少,占百分之多少,做可視化圖,打標(biāo)簽。
這個(gè)項(xiàng)目的目的是,比如一類功能是發(fā)email的app,每一個(gè)項(xiàng)目里java文件頭部都有引用的包名,通過(guò)把所有的包名一分析,發(fā)現(xiàn)80%的項(xiàng)目里面都有同一個(gè)包,那么就認(rèn)為這個(gè)包的功能就是email , 然后再通過(guò)標(biāo)簽關(guān)聯(lián)java文件 。
導(dǎo)入數(shù)據(jù)

channel <- odbcConnect("test", uid="root", pwd="123");
?sqlTables(channel);#查看數(shù)據(jù)中的表?data<-sqlFetch(channel,"test")# 查看表的內(nèi)容,存到數(shù)據(jù)框里
畫(huà)直方圖顯示詞頻重合率
#做出百分比統(tǒng)計(jì)直方圖barplot(table(data$package)/sum(table(data$package)))# 一共多少包unique(data$package)
?
?


刪去沒(méi)有重復(fù)的包
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]
變換數(shù)據(jù)
cordata2=matrix(0,length(unique(data$project)),length(unique(data$package)))colnames(cordata2)=unique(data$package)rownames(cordata2)=unique(data$project)
計(jì)算出重復(fù)率

畫(huà)網(wǎng)絡(luò)圖
這個(gè)是git上的項(xiàng)目,每一個(gè)點(diǎn)是一個(gè)項(xiàng)目,不同顏色表示不同語(yǔ)言,每個(gè)點(diǎn)之間有線連著,表示每個(gè)項(xiàng)目的聯(lián)系,可能是關(guān)注人一樣,也可能是作者一樣 。當(dāng)把包名打上標(biāo)簽后,有可能不同包名是一個(gè)標(biāo)簽,那么就可以畫(huà)出這種聯(lián)系圖。
? }
?}
?close(f) ?cat(paste(c("Successfully output to ", getwd(), "/", filename, "/n"), collapse=""))
}
topajek(events, filename="mypajek.net")
對(duì)圖進(jìn)行刪減,刪去連接少的邊
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,
用網(wǎng)絡(luò)圖可視化
所有數(shù)據(jù):

以chat為基地:

以email為基地:

Kmeans算法聚類
聚類數(shù)為3,將數(shù)據(jù)聚成3個(gè)類別
y$name1=as.numeric(y$name)
可視化聚類結(jié)果




最受歡迎的見(jiàn)解
1.R語(yǔ)言k-Shape算法股票價(jià)格時(shí)間序列聚類
2.R語(yǔ)言基于溫度對(duì)城市層次聚類、kmean聚類、主成分分析和Voronoi圖
3.R語(yǔ)言對(duì)用電負(fù)荷時(shí)間序列數(shù)據(jù)進(jìn)行K-medoids聚類建模和GAM回歸
4.r語(yǔ)言鳶尾花iris數(shù)據(jù)集的層次聚類
5.Python Monte Carlo K-Means聚類實(shí)戰(zhàn)
6.用R進(jìn)行網(wǎng)站評(píng)論文本挖掘聚類
7.R語(yǔ)言KMEANS均值聚類和層次聚類:亞洲國(guó)家地區(qū)生活幸福質(zhì)量異同可視化
8.PYTHON用戶流失數(shù)據(jù)挖掘:建立邏輯回歸、XGBOOST、隨機(jī)森林、決策樹(shù)、支持向量機(jī)、樸素貝葉斯模型和KMEANS聚類用戶畫(huà)像
9.R語(yǔ)言基于Keras的小數(shù)據(jù)集深度學(xué)習(xí)圖像分類