如何進(jìn)行百度指數(shù)突變點(diǎn)檢測(cè),很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。
我們提供的服務(wù)有:網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)、微信公眾號(hào)開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、陳巴爾虎ssl等。為上1000+企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的陳巴爾虎網(wǎng)站制作公司
百度指數(shù)是一款非常好用的工具,通過它我們能知道某些關(guān)鍵詞在過去的一些日子里的熱度變化趨勢(shì)并能夠?qū)@些數(shù)據(jù)進(jìn)行分析。如果能用得好百度指數(shù),我們將能產(chǎn)出巨大的價(jià)值。你可以通過關(guān)注文章下方的Python實(shí)用寶典公眾號(hào),回復(fù) 百度指數(shù)突變點(diǎn) 獲得本項(xiàng)目完整源代碼。
今天主要是來教大家如何找出百度指數(shù)中突變值的位置,如圖所示畫框框的部分:
30天的數(shù)據(jù)流中很容易通過人工的方法找到突變數(shù)據(jù)的位置,但如果是180天呢?這可就不好通過人工的方式來查找了:
如何使用Python自動(dòng)找出這180天里的突變點(diǎn)?由于這里涉及到了對(duì)時(shí)間序列的突變點(diǎn)的檢測(cè),我們可以使用一種叫 Pettitt突變點(diǎn)檢測(cè) 算法。
通過開發(fā)者工具找到數(shù)據(jù)接口,結(jié)果發(fā)現(xiàn)其接口返回來的數(shù)據(jù)進(jìn)行了加密:
看起來就很像字符串替換,如果要從頭開始解密的話需要做一些對(duì)比工作(把源數(shù)據(jù)和該加密數(shù)據(jù)放一起進(jìn)行比較)或者直接看前端源代碼 。由于這里不是今天要講的重點(diǎn)內(nèi)容,我直接使用了他人的開源項(xiàng)目并做了一些修改, 百度指數(shù)爬蟲 :
https://github.com/longxiaofei/spider-BaiduIndex/tree/master/new_spider_without_selenium
你可以通過關(guān)注文章最下方的公眾號(hào)(Python實(shí)用寶典),回復(fù) 百度指數(shù)突變點(diǎn) 獲得本文所有的源代碼。
調(diào)用接口爬取數(shù)據(jù),然后將爬取到的數(shù)據(jù)按照關(guān)鍵詞存放到數(shù)組中,你可以很輕易地修改我的代碼增加/減少關(guān)鍵詞,這里我為了簡(jiǎn)化問題,僅選擇區(qū)塊鏈一個(gè)關(guān)鍵詞進(jìn)行分析。代碼如下:
結(jié)果如下:
Pettitt突變點(diǎn)檢測(cè)算法是用R語言寫的,實(shí)現(xiàn)其實(shí)很簡(jiǎn)單。作者并沒有說為什么這么做,而是給了相應(yīng)的數(shù)學(xué)公式,我們?cè)囍髡叩乃悸纷?,看看效果如何?/p>
算法代碼如下:
接下來需要將數(shù)據(jù)傳入該函數(shù),就能得到這段數(shù)據(jù)的突變點(diǎn)(一個(gè)),由于它只能找出一段數(shù)據(jù)里的一個(gè)突變點(diǎn),而我們需要獲得的是多個(gè)突變點(diǎn),因此還得設(shè)置一個(gè)移動(dòng)窗口,獲得每個(gè)窗口中的突變位置。
將數(shù)據(jù)設(shè)為30天一個(gè)窗口,檢測(cè)每個(gè)窗口中的突變值:
結(jié)果如下:
這樣看實(shí)在是不好看出效果,讓我們用matplotlib可視化一下:
結(jié)果:
說實(shí)話,不太滿意這個(gè)結(jié)果,有兩個(gè)突變點(diǎn)竟然沒找出來,其中右邊那個(gè)突變點(diǎn)其實(shí)比較重要。除開這兩個(gè)突變點(diǎn)不說,整體上看,這個(gè)檢測(cè)方法的效果還可以。
看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對(duì)創(chuàng)新互聯(lián)的支持。