Facebook粉絲頁分析三部曲-爬取,分析,預測


本篇文章主要介紹如何分析 Facebook 粉絲專業,從如何爬資料到視覺化圖表分析,再輸出成excel 報表,最後用機器學習的方法去預測發文可以得到的讚數,此篇 blog 會把程式碼獨立出來透過 jupyter notebook 來一步步實作,程式為 Python3,本文分析以擁有 200 多萬粉絲的蘋果日報為例。
文章中每篇都是大略說明和附幾張圖帶過,真正內容還是在Github 以Jupyter notebook一步步實做其連結如下 :

  1. Facebook粉絲頁分析三部曲-爬取篇(posts)
  2. Facebook粉絲頁分析三部曲-爬取篇(comments)
  3. Facebook粉絲頁分析三部曲-分析和輸出報表篇
  4. Facebook粉絲頁分析三部曲-預測篇

一 Facebook粉絲頁爬取篇(post,comment)

要爬取基本上是透過 Facebook Graph API 去取得粉絲頁的資料,但是使用 Facebook Graph API 還需要取得權限,有兩種方法 :
第一種是取得 Access Token
第二種是建立 Facebook App 的應用程式,用該應用程式的帳號,密碼當作權限
兩者的差別在於第一種會有時效限制,必須每隔一段時間去更新 Access Token,才能使用
Access Token

本文是採用第二種方法
要先取得應用程式的帳號,密碼 app_id, app_secret

其內容實作 : Facebook粉絲頁分析三部曲-爬取篇(posts)
其結果為5234篇post共花了20分鐘,存為csv截圖如下:

其內容實作 : Facebook粉絲頁分析三部曲-爬取篇(comments)
總共跑完有690628筆,106Mb,要花十幾個小時,存為csv截圖如下:

二 Facebook粉絲頁分析篇

使用套件
pandas : 在做資料分析的時候,通常都會把資料轉成pandas中DataFrame,因為可以快速有效地處理這些資料(統計,過濾,分組...)
matplotlib : python中最著名的繪圖套件,可以很輕易地畫出各種分析統計圖表
seaborn : 在matplotlib更強大方便的繪圖套件,提供更高階的API(用matplotlib要設定比較多,自由度較高,seaborn自由度沒那麼高,但比較易用)

按讚,留言,分享隨時間變化趨勢圖

星期幾發文數目統計長條圖

發文種類數目統計長條圖

Pearson Correlation of Features HeatMap

發文字頻文字雲

最後存為的分析報表

其內容實作 : Facebook粉絲頁分析三部曲-分析和輸出報表篇

三 Facebook粉絲頁預測篇

當我們爬完和分析完資料後,可不可以做更進一步的應用呢?

sure! 接下來就要來預測某篇post的按讚程度,假設我們知道post內容,發文類型,發文時間點,

我們能不能預測這篇post能得到多少讚呢? 若要預測得到多少讚的話,這就是一個regression problem

但我們先簡單一點,把它當成一個classification problem,

要如何作到這一點呢?

我們把reaction高於中位數的label成1,低於的label成0,去預測某篇post是0或是1就行了
預測結果 :

其內容實作 : Facebook粉絲頁分析三部曲-預測篇

結語

其中在預測的部份還有蠻多地方要改進的,原本我是把預測讚數當作 regression problem ,但是我用 ML 中 GBRT(Gradient Boost Regression Tree) 或是 time series forecasting 的 ARIMA model 做出來的效果都奇差無比,而且就算是當作 binary classification 做出來的準確度還是不高,猜測可能是 feature ngineering 要多加油或是還要找新的 feature 加入才行。

#Data Analysis






你可能感興趣的文章

人人都能使用的圖片轉文字(OCR)

人人都能使用的圖片轉文字(OCR)

【 JavaScript 學習筆記 】迴圈

【 JavaScript 學習筆記 】迴圈

[JS] 參數傳遞方式 Call by what?

[JS] 參數傳遞方式 Call by what?






留言討論