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






你可能感興趣的文章

Guided Policy Search 環境安裝

Guided Policy Search 環境安裝

What Type of Laser Engraving Machine Should be Used for Stainless Steel Engraving?

What Type of Laser Engraving Machine Should be Used for Stainless Steel Engraving?

CH4. 老手看函式:理解函式呼叫

CH4. 老手看函式:理解函式呼叫






留言討論