您好,登錄后才能下訂單哦!
如何進行百度指數突變點檢測,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
百度指數是一款非常好用的工具,通過它我們能知道某些關鍵詞在過去的一些日子里的熱度變化趨勢并能夠對這些數據進行分析。如果能用得好百度指數,我們將能產出巨大的價值。你可以通過關注文章下方的Python實用寶典公眾號,回復 百度指數突變點 獲得本項目完整源代碼。
今天主要是來教大家如何找出百度指數中突變值的位置,如圖所示畫框框的部分:
30天的數據流中很容易通過人工的方法找到突變數據的位置,但如果是180天呢?這可就不好通過人工的方式來查找了:
如何使用Python自動找出這180天里的突變點?由于這里涉及到了對時間序列的突變點的檢測,我們可以使用一種叫 Pettitt突變點檢測 算法。
通過開發者工具找到數據接口,結果發現其接口返回來的數據進行了加密:
看起來就很像字符串替換,如果要從頭開始解密的話需要做一些對比工作(把源數據和該加密數據放一起進行比較)或者直接看前端源代碼 。由于這里不是今天要講的重點內容,我直接使用了他人的開源項目并做了一些修改, 百度指數爬蟲 :
https://github.com/longxiaofei/spider-BaiduIndex/tree/master/new_spider_without_selenium
你可以通過關注文章最下方的公眾號(Python實用寶典),回復 百度指數突變點 獲得本文所有的源代碼。
調用接口爬取數據,然后將爬取到的數據按照關鍵詞存放到數組中,你可以很輕易地修改我的代碼增加/減少關鍵詞,這里我為了簡化問題,僅選擇區塊鏈一個關鍵詞進行分析。代碼如下:
結果如下:
Pettitt突變點檢測算法是用R語言寫的,實現其實很簡單。作者并沒有說為什么這么做,而是給了相應的數學公式,我們試著跟著作者的思路走,看看效果如何。
算法代碼如下:
接下來需要將數據傳入該函數,就能得到這段數據的突變點(一個),由于它只能找出一段數據里的一個突變點,而我們需要獲得的是多個突變點,因此還得設置一個移動窗口,獲得每個窗口中的突變位置。
將數據設為30天一個窗口,檢測每個窗口中的突變值:
結果如下:
這樣看實在是不好看出效果,讓我們用matplotlib可視化一下:
結果:
說實話,不太滿意這個結果,有兩個突變點竟然沒找出來,其中右邊那個突變點其實比較重要。除開這兩個突變點不說,整體上看,這個檢測方法的效果還可以。
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。