本發(fā)明涉及計(jì)算機(jī)
技術(shù)領(lǐng)域:
,具體是一種檢測(cè)android應(yīng)用程序廣告插件的模型和方法。
背景技術(shù):
:隨著互聯(lián)網(wǎng)的普及,越來越多的人使用智能手機(jī)作為通訊和娛樂工具;android操作系統(tǒng)是智能手機(jī)中最常用也是最開放的一種嵌入式系統(tǒng),由于該系統(tǒng)開源可定制化程序高,所以越來越多的手機(jī)生產(chǎn)廠家采用android系統(tǒng)。伴隨著android操作系統(tǒng)的流行,運(yùn)行在android系統(tǒng)之上的應(yīng)用程序越來越多;作為最流行的移動(dòng)平臺(tái),許多應(yīng)用程序?qū)τ脩舳济赓M(fèi),導(dǎo)致應(yīng)用程序開發(fā)商轉(zhuǎn)而使用廣告作為一種盈利模式。大部分的應(yīng)用程序開發(fā)者只關(guān)注于廣告是否會(huì)給自己帶來經(jīng)濟(jì)利益,不會(huì)著重考慮廣告是否會(huì)對(duì)應(yīng)用程序使用者造成安全隱患。android應(yīng)用程序中的資源在使用之前,需要預(yù)先對(duì)相應(yīng)權(quán)限進(jìn)行授權(quán);廣告插件在展示其內(nèi)容或者獲取一些信息之前,需要事先在androidmanifest.xml文件中定義,所以廣告插件與權(quán)限之間必然有一定的聯(lián)系。android系統(tǒng)的權(quán)限審核機(jī)制比較簡單,應(yīng)用開發(fā)者只需在androidmanifest.xml文件中定義使用的權(quán)限,該應(yīng)用程序就可以獲取相應(yīng)的權(quán)限,而對(duì)使用者來說是透明的;惡意的廣告插件很可能會(huì)竊取用戶的信息,造成用戶信息的泄漏,給用戶造成安全隱患。在分析惡意的廣告插件之前,精準(zhǔn)地識(shí)別廣告插件是至關(guān)重要的一步。目前對(duì)于android應(yīng)用中的廣告插件檢測(cè)方法較少,僅有一些基于規(guī)則的低效率的檢測(cè)方法,即人工收集常見的廣告插件平臺(tái)特征,基于這些特征構(gòu)建廣告特征庫。對(duì)于待檢測(cè)的應(yīng)用,將其中的特征與廣告特征庫進(jìn)行匹配給出檢測(cè)結(jié)果;這種完全依賴于特征庫匹配的廣告檢測(cè)方式準(zhǔn)確率不高,因?yàn)楹茈y收集到所有廣告插件的特征。對(duì)于日益新增加的廣告插件,需要人為的不斷收集新的廣告插件特征來維護(hù)與擴(kuò)充特征庫,這樣做不僅效率很低,還耗費(fèi)大量的人力和物力。技術(shù)實(shí)現(xiàn)要素:本發(fā)明針對(duì)android應(yīng)用程序廣告插件竊取用戶信息,私自扣費(fèi),影響用戶使用的問題,提出了一種檢測(cè)android應(yīng)用程序廣告插件的模型和方法,可以高效率的識(shí)別android應(yīng)用程序中是否具有廣告插件。所述的檢測(cè)android應(yīng)用程序廣告插件的模型包括:解析配置文件模塊,廣告特征信息提取模塊,廣告特征向量生成模塊,廣告特征庫匹配模塊和分類器預(yù)測(cè)模塊;解析配置文件模塊用于提取待檢測(cè)的android應(yīng)用程序中的service,activities,broadcasts和receiver等特征信息;廣告特征信息提取模塊用于從待檢測(cè)的android應(yīng)用程序中的androidmanifest.xml文件中提取權(quán)限信息;廣告特征向量生成模塊將廣告特征信息提取模塊提取到的權(quán)限信息與google官方定義的android系統(tǒng)權(quán)限相比較,使用onehot編碼得出該應(yīng)用權(quán)限對(duì)應(yīng)的特征向量。廣告特征庫匹配模塊用于將解析配置文件模塊提取的特征信息與廣告插件指紋庫相匹配,當(dāng)在廣告指紋庫中匹配成功,則給出該廣告平臺(tái)名稱作為最終的檢測(cè)結(jié)果;分類器預(yù)測(cè)模塊用于將廣告特征向量生成模塊生成的特征向量輸入到廣告插件分類器中進(jìn)行識(shí)別;廣告插件分類器包括高斯貝葉斯分類器和隨機(jī)森林分類器;具體識(shí)別分類的過程為:先將特征向量通過高斯貝葉斯分類器進(jìn)行分類判別,若高斯貝葉斯分類器給出無廣告的結(jié)果,則輸出最終無廣告的檢測(cè)結(jié)果;否則將該特征向量輸入到隨機(jī)森林分類器中進(jìn)行分類檢測(cè),根據(jù)隨機(jī)森林給出的最終判別結(jié)果作為最終的分類結(jié)果。一種檢測(cè)android應(yīng)用程序廣告插件的方法,具體步驟如下:步驟一、建立android市場(chǎng)上主流常用的廣告插件指紋庫;通過收集android市場(chǎng)上主流常用的廣告插件應(yīng)用,并提取每個(gè)android應(yīng)用程序中的services,activities,broadcasts和receivers等特征信息,做成相應(yīng)的插件指紋,形成可擴(kuò)展的廣告插件指紋庫;步驟二、用戶在客戶端上傳待檢測(cè)廣告插件的android應(yīng)用程序并請(qǐng)求檢測(cè),服務(wù)器端時(shí)刻監(jiān)聽并將請(qǐng)求待檢測(cè)的android應(yīng)用程序下載到本地指定目錄,同時(shí)創(chuàng)建相應(yīng)的請(qǐng)求檢測(cè)任務(wù)存入請(qǐng)求隊(duì)列;步驟三、解析配置文件模塊從請(qǐng)求隊(duì)列中取出最近的請(qǐng)求檢測(cè)任務(wù),提取待檢測(cè)android應(yīng)用程序中的特征信息;特征信息包括activities、services、receivers、broadcasts、permissions等相關(guān)內(nèi)容。步驟四、廣告特征庫匹配模塊將提取到的特征信息與廣告插件指紋庫進(jìn)行匹配;并判斷是否匹配成功,如果是,給出該廣告插件的平臺(tái)信息,進(jìn)入步驟八;否則,進(jìn)入步驟五;步驟五、廣告特征信息提取模塊提取該待測(cè)android應(yīng)用程序的權(quán)限信息;步驟六、廣告特征向量生成模塊將提取到的android應(yīng)用權(quán)限信息以google官方標(biāo)準(zhǔn)權(quán)限為基準(zhǔn)通過onehot編碼方式,得到該android應(yīng)用權(quán)限對(duì)應(yīng)的特征向量。特征向量為一行135列的一維向量,每一列均為0或1,0表示該位對(duì)應(yīng)的權(quán)限在待檢測(cè)的android應(yīng)用程序中沒有出現(xiàn),1表示該位對(duì)應(yīng)的權(quán)限在android應(yīng)用程序中出現(xiàn)。步驟七、分類器預(yù)測(cè)模塊將待測(cè)android應(yīng)用程序的特征向量輸入到分類器中進(jìn)行分類,得到最終的廣告檢測(cè)結(jié)果。廣告插件分類器包括高斯貝葉斯分類器和隨機(jī)森林分類器;分類的具體過程如下:步驟701、將步驟六中得到的特征向量輸入到高斯貝葉斯分類模型中;步驟702、高斯貝葉斯模型利用貝葉斯公式進(jìn)行分類判別,得到該待測(cè)的android應(yīng)用程序有廣告插件的概率pad以及無廣告插件的概率1-pad;貝葉斯公式如下:pad=p(y=cad)πip(xi=xi|y=cad)其中pad代表待測(cè)的android應(yīng)用程序有廣告插件的概率;y代表輸出待測(cè)android應(yīng)用程序中是否具有廣告插件的隨機(jī)變量,cad代表待檢測(cè)的android應(yīng)用程序具有廣告插件的具體值;xi代表輸入的待測(cè)android應(yīng)用程序的第i個(gè)權(quán)限的隨機(jī)變量,xi代表待測(cè)android應(yīng)用程序中第i個(gè)權(quán)限的具體值;步驟703、根據(jù)概率pad以及1-pad的值,判斷高斯貝葉斯模型給出的結(jié)果是否為無廣告信息,如果是,則將結(jié)果作為最終的廣告檢測(cè)結(jié)果,結(jié)束算法;否則,進(jìn)入步驟704;當(dāng)待測(cè)的android應(yīng)用程序有廣告插件的概率pad大于待測(cè)的android應(yīng)用程序無廣告插件的概率1-pad時(shí),即pad>1-pad;則判定待測(cè)的android應(yīng)用程序有廣告插件;反之,pad≤1-pad,則斷定待測(cè)的android應(yīng)用程序無廣告插件。步驟704、通過將訓(xùn)練樣本集合分割為不同的子集,在每個(gè)子集上使用id3算法生成不同的決策樹,最終組合形成隨機(jī)森林。步驟705、將待檢測(cè)android應(yīng)用的特征向量輸入到隨機(jī)森林中,通過多棵決策樹給出的分類結(jié)果組合投票作為最終的判別結(jié)果。步驟八、將給出的檢測(cè)結(jié)果封裝到j(luò)son格式的數(shù)據(jù)中并返回給客戶端。本發(fā)明的優(yōu)點(diǎn)在于:1)、一種檢測(cè)android應(yīng)用程序廣告插件的方法,沒有完全依賴人工構(gòu)建的廣告插件特征庫,而是將機(jī)器學(xué)習(xí)引入到android廣告插件檢測(cè)中,通過大量樣本來訓(xùn)練廣告檢測(cè)分類器使其具備學(xué)習(xí)分類能力;對(duì)于新出現(xiàn)的廣告插件也具有較高的檢測(cè)能力。2)、一種檢測(cè)android應(yīng)用程序廣告插件的模型,對(duì)于機(jī)器學(xué)習(xí)分類模型的選擇上沒有依賴于單一的模型,而是通過多次的交叉驗(yàn)證來選擇模型,最終選定了基于高斯貝葉斯與隨機(jī)森林結(jié)合的分類模型,并加入了正則化約束來確保模型具有較高泛化學(xué)習(xí)能力,對(duì)于新出現(xiàn)的廣告插件也能給出正確的分類結(jié)果。附圖說明圖1是本發(fā)明一種檢測(cè)android應(yīng)用程序廣告插件的模型的整體框架圖;圖2是本發(fā)明一種檢測(cè)android應(yīng)用程序廣告插件的方法的具體流程圖;圖3是本發(fā)明分類器預(yù)測(cè)模塊將特征向量輸入到分類器中進(jìn)行分類的流程圖。具體實(shí)施例下面結(jié)合附圖對(duì)本發(fā)明的具體實(shí)施方法進(jìn)行詳細(xì)說明。隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展,機(jī)器學(xué)習(xí)的應(yīng)用范圍越來越廣泛;通過對(duì)大量android應(yīng)用程序的廣告與權(quán)限之間的關(guān)系進(jìn)行分析,使用機(jī)器學(xué)習(xí)的算法組建一個(gè)正確率較高的android應(yīng)用程序廣告檢測(cè)系統(tǒng),從而達(dá)到較高的檢測(cè)能力至關(guān)重要。本發(fā)明一種android應(yīng)用程序廣告插件的模型和方法,包括:解析配置文件模塊,廣告特征信息提取模塊,廣告特征向量生成模塊,廣告特征庫匹配模塊和分類器預(yù)測(cè)模塊;對(duì)于待檢測(cè)的android應(yīng)用程序,解析配置文件模塊提取activity、service、broadcast和receiver特征信息,廣告特征庫匹配模塊查看特征信息是否與指紋庫中的廣告提供商的各種指紋信息相匹配;若能匹配,說明該檢測(cè)的android應(yīng)用程序帶有廣告,給出該廣告插件的來源;若匹配不到,廣告特征信息提取模塊提取該待測(cè)android應(yīng)用程序的權(quán)限作為廣告檢測(cè)的特征,廣告特征向量生成模塊生成特征向量,并輸入到事先訓(xùn)練好的基于權(quán)限的android廣告插件分類器預(yù)測(cè)模塊進(jìn)行預(yù)測(cè),通過訓(xùn)練好的分類器:即先通過高斯貝葉斯分類器再通過隨機(jī)森林分類器,給出一個(gè)最終綜合判斷的廣告檢測(cè)結(jié)果。如圖1所示,用戶上傳待檢測(cè)的android應(yīng)用程序,廣告監(jiān)測(cè)服務(wù)端的android應(yīng)用程序下載模塊將待檢測(cè)的android應(yīng)用程序下載到指定目錄,同時(shí)創(chuàng)建相應(yīng)的請(qǐng)求檢測(cè)任務(wù)存入請(qǐng)求服務(wù)隊(duì)列;并發(fā)送請(qǐng)求檢測(cè)任務(wù)給檢測(cè)android應(yīng)用程序廣告插件的模型;當(dāng)檢測(cè)android應(yīng)用程序廣告插件的模型返回結(jié)果經(jīng)過廣告監(jiān)測(cè)服務(wù)端返回給用戶。所述的檢測(cè)android應(yīng)用程序廣告插件的模型包括:解析配置文件模塊,廣告特征信息提取模塊,廣告特征向量生成模塊,廣告特征庫匹配模塊和分類器預(yù)測(cè)模塊;解析配置文件模塊用于提取待檢測(cè)的android應(yīng)用程序中的service,activities,broadcasts和receiver等特征信息;廣告特征信息提取模塊用于從待檢測(cè)的android應(yīng)用程序中的andoidmanifest.xml文件中提取權(quán)限信息。androidmanifest.xml是一種基于xml格式的文件,在實(shí)際編譯好的android應(yīng)用中androidmanifest.xml以二進(jìn)制形式存在,在進(jìn)行權(quán)限信息提取之前,需要使用apktools等工具對(duì)應(yīng)用程序進(jìn)行分編譯,使用androguard提取androidmanifest.xml中標(biāo)簽<permission>與標(biāo)簽</permission>之間的內(nèi)容,作為權(quán)限信息;廣告特征向量生成模塊將廣告特征信息提取模塊提取到的android應(yīng)用程序的所有的權(quán)限信息與google官方定義的android系統(tǒng)權(quán)限相比較,使用onehot編碼得出該應(yīng)用權(quán)限對(duì)應(yīng)的特征向量。雖然android系統(tǒng)允許開發(fā)者自定義一些權(quán)限,通過調(diào)研和研究發(fā)現(xiàn),廣告插件為了適配不同版本的系統(tǒng),不會(huì)自定義一些權(quán)限,所以對(duì)于應(yīng)用程序開發(fā)者自定義的一些權(quán)限信息不會(huì)將其應(yīng)用到特征向量中;廣告特征庫匹配模塊用于將特征信息與廣告插件指紋庫相匹配,當(dāng)在廣告指紋庫中匹配成功,則給出該廣告平臺(tái)名稱作為最終的檢測(cè)結(jié)果;分類器預(yù)測(cè)模塊用于將特征向量輸入到廣告插件分類器中進(jìn)行分類識(shí)別;廣告插件分類器包括高斯貝葉斯分類器和隨機(jī)森林分類器;具體識(shí)別分類的過程為:先將特征向量通過高斯貝葉斯分類器進(jìn)行分類判別,若高斯貝葉斯分類器給出無廣告的結(jié)果,則輸出最終無廣告的檢測(cè)結(jié)果;否則將該特征向量輸入到隨機(jī)森林分類器中進(jìn)行分類檢測(cè),根據(jù)隨機(jī)森林給出的最終判別結(jié)果作為最終的分類結(jié)果。一種檢測(cè)android應(yīng)用程序廣告插件的方法,如圖2所示,具體步驟如下:步驟一、建立android市場(chǎng)上主流常用的廣告插件應(yīng)用的指紋庫;基于各個(gè)廣告插件提供商提供帶有廣告的demo程序,通過收集android市場(chǎng)上主流常用的廣告插件應(yīng)用,使用開源的工具androguard從應(yīng)用程序的androidmanifest.xml中,提取該android應(yīng)用程序中的services,activities,broadcasts,receivers等信息,提取具有明顯特征的部分,生成一種判斷規(guī)則,作為具有該廣告插件應(yīng)用程序的指紋;給予一個(gè)android應(yīng)用程序,可以根據(jù)指紋來識(shí)別該應(yīng)用程序中是否具有廣告插件;將收集到的各種插件的指紋建立一個(gè)廣告插件指紋庫,作為插件識(shí)別模型的重要組成部分;該庫支持后期的對(duì)各個(gè)廣告插件指紋的維護(hù)。例如當(dāng)某一個(gè)廣告插件有更新時(shí),可以對(duì)某一個(gè)插件添加一個(gè)指紋或者修改原來的指紋,就能正確地的匹配到該廣告插件。步驟二、用戶在客戶端上傳待檢測(cè)廣告插件的android應(yīng)用程序并請(qǐng)求檢測(cè),服務(wù)器端時(shí)刻監(jiān)并將請(qǐng)求待檢測(cè)的android應(yīng)用程序下載到本地指定目錄,同時(shí)創(chuàng)建相應(yīng)的請(qǐng)求檢測(cè)任務(wù)存入請(qǐng)求隊(duì)列;用戶上傳要檢測(cè)的android應(yīng)用程序,廣告監(jiān)測(cè)服務(wù)端將待檢測(cè)的android應(yīng)用程序下載到指定目錄,判別該應(yīng)用是否為有效的應(yīng)用,并發(fā)送請(qǐng)求檢測(cè)任務(wù)給檢測(cè)android應(yīng)用程序廣告插件的模型。步驟三、解析配置文件模塊從請(qǐng)求隊(duì)列中取出最近的請(qǐng)求檢測(cè)任務(wù),提取待檢測(cè)android應(yīng)用程序android應(yīng)用中的特征信息;提取的特征信息包括activities、services、receivers、broadcasts和permissions等相關(guān)內(nèi)容。步驟四、廣告特征庫匹配模塊將提取到的特征信息與廣告插件指紋庫進(jìn)行匹配;并判斷是否匹配成功,如果匹配成功,給出該廣告插件的平臺(tái)信息作為最終的檢測(cè)結(jié)果,進(jìn)入步驟八;否則,進(jìn)入步驟五;步驟五、廣告特征信息提取模塊使用androguard提取待測(cè)android應(yīng)用程序中的權(quán)限信息;廣告特征信息提取模塊在應(yīng)用的配置文件中提取該應(yīng)用申請(qǐng)的權(quán)限信息。步驟六、廣告特征向量生成模塊將提取到的android應(yīng)用中的權(quán)限信息與google官方標(biāo)準(zhǔn)權(quán)限為基準(zhǔn)通過onehot編碼方式,得到該應(yīng)用權(quán)限對(duì)應(yīng)的特征向量。從帶有廣告的樣本android應(yīng)用程序提取標(biāo)準(zhǔn)google官方的權(quán)限;由于android系統(tǒng)是一種開源并且可定制的系統(tǒng),有些生產(chǎn)廠家可以基于開源的android系統(tǒng)個(gè)性化地定制自己的系統(tǒng),也可以自己定義一些系統(tǒng)的權(quán)限。為了防止各個(gè)廠家的權(quán)限對(duì)檢測(cè)結(jié)果的影響,根據(jù)google官方提供的權(quán)限列表,只提取google官方定義的權(quán)限,對(duì)于系統(tǒng)自定義的權(quán)限或者開發(fā)者自定義的權(quán)限,直接過濾掉,不會(huì)將其添加到特征向量中。廣告插件的特征向量為一行135列的一維向量矩陣,每一列均為0或1,0表示該位對(duì)應(yīng)的權(quán)限在待檢測(cè)的android應(yīng)用程序中沒有出現(xiàn),1表示該位對(duì)應(yīng)的權(quán)限在待檢測(cè)的android應(yīng)用程序中出現(xiàn)。例如:待檢測(cè)的android應(yīng)用程序a中包含有access_mock_location與access_network_state兩個(gè)權(quán)限,這兩個(gè)權(quán)限在特征向量中對(duì)應(yīng)的位置分別為第一位與第二位,也就是第一位和第二位為1,其他位都為0,則待檢測(cè)的android生成的特征向量抽象為x=[1,1,0,0,0,0,0…];在矩陣生成過程中,廣告特征向量生成模塊還會(huì)將不屬于google官方定義的權(quán)限過濾掉。步驟七、分類器預(yù)測(cè)模塊將待測(cè)android應(yīng)用程序的特征向量輸入到已經(jīng)訓(xùn)練好的分類器中進(jìn)行分類,得到最終的廣告檢測(cè)結(jié)果。廣告插件分類器包括高斯貝葉斯分類器和隨機(jī)森林分類器;如圖3所示,分類的具體過程如下:步驟701、將步驟六中得到的特征向量輸入到高斯貝葉斯分類模型中;步驟702、高斯貝葉斯模型利用貝葉斯公式進(jìn)行分類判別,得到該待測(cè)的android應(yīng)用程序有廣告插件的概率pad以及無廣告插件的概率1-pad;貝葉斯公式如下:pad=p(y=cad)πip(xi=xi|y=cad)其中pad代表待測(cè)的android應(yīng)用程序有廣告插件的概率;y代表輸出待測(cè)android應(yīng)用程序中是否具有廣告插件的隨機(jī)變量,cad代表待檢測(cè)的android應(yīng)用程序具有廣告插件的具體值;xi代表輸入的待測(cè)android應(yīng)用程序的第i個(gè)權(quán)限的隨機(jī)變量,xi代表待測(cè)android應(yīng)用程序中第i個(gè)權(quán)限的具體值;步驟703、根據(jù)概率pad以及1-pad的值,判斷高斯貝葉斯模型給出的結(jié)果是否為無廣告信息,如果是,則將結(jié)果作為最終的廣告檢測(cè)結(jié)果,結(jié)束算法;否則,進(jìn)入步驟704;當(dāng)待測(cè)的android應(yīng)用程序有廣告插件的概率pad大于待測(cè)的android應(yīng)用程序無廣告插件的概率1-pad時(shí),即pad>1-pad;則判定待測(cè)的android應(yīng)用程序有廣告插件;反之,pad≤1-pad,則斷定待測(cè)的android應(yīng)用程序無廣告插件。步驟704、通過將訓(xùn)練樣本集合分割為不同的子集,在每個(gè)子集上使用id3算法生成不同的決策樹,最終組合形成隨機(jī)森林。步驟705、將待檢測(cè)android應(yīng)用的特征向量輸入到隨機(jī)森林中,通過多棵決策樹給出的分類結(jié)果組合投票作為最終的判別結(jié)果。例如:在由決策樹組成的隨機(jī)森林中,每棵決策樹輸出的值為0時(shí)代表無廣告;輸出1時(shí)代表有廣告。對(duì)于待檢測(cè)的應(yīng)用a對(duì)應(yīng)的特征向量[1,1,0,0,0,0…]輸入到由三棵決策樹組成的隨機(jī)森林中,得出結(jié)果中表示有廣告的個(gè)數(shù)多于無廣告的個(gè)數(shù)時(shí),則判定該應(yīng)用有廣告插件;反之,則判定該應(yīng)用中無廣告插件。步驟八、將給出的檢測(cè)結(jié)果封裝到j(luò)son格式的數(shù)據(jù)中并返回給客戶端。為清楚說明本發(fā)明的技術(shù)方案,下面給出一種android應(yīng)用程序廣告插件檢測(cè)的實(shí)現(xiàn)方式。首先,建立android廣告插件指紋庫,收集大量包含android市場(chǎng)上主流常用的廣告插件android應(yīng)用,提取android應(yīng)用中的services,activities,broadcasts和receivers等信息,做成相應(yīng)的插件指紋。插件指紋庫共78條,樣例如下表所示:表1然后,搭建一個(gè)android廣告插件檢測(cè)服務(wù)端,用于實(shí)時(shí)監(jiān)聽等待用戶上傳待檢測(cè)的android應(yīng)用文件;下載待檢測(cè)的android應(yīng)用到本地并借助androguard工具提取android應(yīng)用android應(yīng)用中的activities、services、receivers、broadcasts和permissions等相關(guān)特征信息。樣例如下表所示:表2android應(yīng)用提取樣例benardseethx.god0119144ric.mainluck.servicebenardseethx.god0119144ric.thxwebgodcom.google.ads.adactivityandroid.permission.internetandroid.permission.access_network_stateandroid.permission.set_wallpaperandroid.permission.mount_unmount_filesystemsandroid.permission.write_external_storage進(jìn)一步,將android應(yīng)用中提取到的activities、services、receivers和broadcasts特征信息與本地建立好的廣告指紋庫進(jìn)行匹配,若能匹配到則給出該android應(yīng)用廣告的平臺(tái)信息。若是在目標(biāo)android應(yīng)用中的信息沒有在本地廣告指紋庫中匹配到,則將目標(biāo)android應(yīng)用的權(quán)限信息基于google官方的標(biāo)準(zhǔn)權(quán)限比較,生成android應(yīng)用對(duì)應(yīng)的特征向量。google官方標(biāo)準(zhǔn)權(quán)限如表3所示:表3最后,將生成的特征向量輸送到之前訓(xùn)練好的基于機(jī)器學(xué)習(xí)的高斯貝葉斯與隨機(jī)森林分類模型中。首先,將特征向量輸入到高斯貝葉斯分類模型中,若該模型給出的是無廣告的信息,則將該結(jié)果作為最終的廣告檢測(cè)結(jié)果;若高斯貝葉斯對(duì)于該android應(yīng)用給出的是有廣告的信息,則將該廣告特征向量輸入到隨機(jī)森林分類模型中,將隨機(jī)森林給出的分類結(jié)果作為最終的判別結(jié)果。并將檢測(cè)結(jié)果封裝到j(luò)son格式的數(shù)據(jù)中并返回給客戶端。本發(fā)明在各大應(yīng)用市場(chǎng)收集帶有是否含有廣告標(biāo)識(shí)的android的應(yīng)用程序(可能具有廣告,也可能不具有廣告),提取的廣告插件指紋建立廣告插件指紋庫,驗(yàn)證該應(yīng)用程序是否具有廣告的插件,并且提取該應(yīng)用程序的標(biāo)準(zhǔn)的權(quán)限保存到數(shù)據(jù)庫中,作為廣告檢測(cè)分類器的樣本特征;提取其中的權(quán)限信息作為判別該應(yīng)用中是否含有廣告插件的標(biāo)識(shí);指紋庫的信息很可能會(huì)過期,也可能會(huì)有新的廣告商出現(xiàn),指紋庫并不是完全覆蓋所有的廣告商的指紋。為了提高檢測(cè)的效果,采用機(jī)器學(xué)習(xí)的算法建立預(yù)測(cè)模型,通過大量的有廣告插件應(yīng)用與無廣告插件應(yīng)用對(duì)應(yīng)的權(quán)限來訓(xùn)練高斯貝葉斯分類器與隨機(jī)森林分類器,對(duì)android應(yīng)用程序的廣告情況進(jìn)行預(yù)測(cè)。根據(jù)應(yīng)用程序權(quán)限特征庫,使用機(jī)器學(xué)習(xí)算法中的高斯貝葉斯算法和隨機(jī)森林算法對(duì)應(yīng)用程序權(quán)限和應(yīng)用程序廣告進(jìn)行訓(xùn)練,建立預(yù)測(cè)模型。具體為:通過2000個(gè)無廣告的android應(yīng)用程序與1500個(gè)有廣告的android應(yīng)用程序共3500個(gè)進(jìn)行訓(xùn)練,并用交叉驗(yàn)證的方法不斷的調(diào)整分類模型的參數(shù),選出最優(yōu)的分類模型;將3500個(gè)訓(xùn)練android應(yīng)用隨機(jī)分成10份,依次將其中9份作為訓(xùn)練集其余1份為測(cè)試集,記錄這一過程該參數(shù)對(duì)應(yīng)的模型的分類正確率,然后改變機(jī)器學(xué)習(xí)模型的參數(shù)不斷的重復(fù)之前的操作;通過交叉驗(yàn)證來選出最優(yōu)的模型,最終得到廣告分類檢測(cè)模型的正確率達(dá)到了97%。然后,使用評(píng)價(jià)機(jī)器學(xué)習(xí)分類算法的標(biāo)準(zhǔn)指標(biāo):正確率、召回率來評(píng)價(jià)本發(fā)明的廣告插件檢測(cè)的效果。tp(truepositive)被分類模型判別為正的正樣本數(shù);對(duì)應(yīng)為被本廣告插件檢測(cè)模型判別為無廣告的樣本數(shù)。fp(falsepositive)被分類模型判別為正的負(fù)樣本數(shù);對(duì)應(yīng)為本廣告插件檢測(cè)模型將有廣告的android應(yīng)用判別為無廣告的樣本數(shù)。fn(falsepositive)被分類模型預(yù)測(cè)為負(fù)的正樣本數(shù);對(duì)應(yīng)為本廣告插件檢測(cè)模型將無廣告的android應(yīng)用判別為有廣告的樣本數(shù)。precision(正樣本預(yù)測(cè)正確結(jié)果數(shù)/被判為正樣本數(shù)):recall(正樣本預(yù)測(cè)正確結(jié)果數(shù)/正樣本實(shí)際數(shù)):模型的測(cè)試集一選擇沒有在訓(xùn)練集中出現(xiàn)的300個(gè)無廣告的android應(yīng)用與300個(gè)含有廣告的android應(yīng)用。模型的測(cè)試集二選擇沒有在訓(xùn)練集中出現(xiàn)的550個(gè)無廣告的android應(yīng)用與550個(gè)含有廣告的android應(yīng)用。在兩個(gè)測(cè)試集上對(duì)隨機(jī)森林、高斯貝葉斯、伯努利貝葉斯、多項(xiàng)式貝葉斯4種android廣告插件檢測(cè)模型進(jìn)行測(cè)試;以正確率、召回率、f1-measure在兩個(gè)測(cè)試集上的值作為衡量檢測(cè)模型的標(biāo)準(zhǔn);測(cè)試的結(jié)果如表4所示:表4由表4可以看出高斯貝葉斯分類模型對(duì)于無廣告的android應(yīng)用判別比較準(zhǔn)確fp值是四個(gè)模型中最低的,隨機(jī)森林模型對(duì)于有無廣告的綜合判別比較準(zhǔn)確正確率可以達(dá)到98.29%。所以最終確定的android廣告插件的檢測(cè)流程為先通過高斯貝葉斯模型檢測(cè),若其判別為有廣告則再通過隨機(jī)森林模型檢測(cè),并給出最終的檢測(cè)結(jié)果。當(dāng)前第1頁12