用於預測性社交網絡分析的數據挖掘
已發表: 2022-03-11自從人們第一次開始互動以來,社交網絡就以一種或另一種形式存在。 事實上,將兩個或更多人放在一起,您就擁有了社交網絡的基礎。 因此,在當今互聯網無處不在的世界中,在線社交網絡已經變得無處不在也就不足為奇了。
在這個在線社交網絡世界中,過去十年中一個特別引人入勝的現像是 Twitter 的爆炸式增長,通常被描述為“互聯網的 SMS”。 Twitter於2006年推出,迅速風靡全球,成為全球十大訪問量網站之一。 截至 2015 年 5 月,Twitter 擁有 3.02 億活躍用戶,每天總共產生 5 億條推文。 而且這些數字還在不斷增長。
鑑於如此龐大的社交媒體數據,分析師們開始將 Twitter 視為一個虛擬的信息寶庫,用於數據挖掘、社交網絡分析,以及用於感知公眾輿論趨勢和支持(或反對)各種政治和社會倡議。 數據科學公司發現 Twitter 趨勢主題作為衡量公眾輿論的有價值的代理越來越有用。
本文介紹了我用於概念驗證的技術,該技術有效地分析了 Twitter 趨勢主題,以作為示例測試用例預測 2014 年巴西總統大選中的區域投票模式。
選舉
2014年10月5日巴西舉行了總統大選,沒有候選人獲得超過50%的選票,因此在10月26日舉行了第二次決選。
在第一輪中,迪爾瑪·羅塞夫 (Partido dos Trabalhadores) 贏得了 41.6% 的選票,領先於 Aecio Neves (Partido da Social Democracia Brasileira) 的 33.6% 和瑪麗娜·席爾瓦 (Partido Socialista Brasileiro) 的 21.3%。 羅塞夫和內維斯在 10 月 26 日舉行了決選,羅塞夫以微弱優勢再次當選,51.6% 對內維斯的 48.4%。 本文中的分析具體涉及 10 月 26 日的決選。
Partido dos Trabalhadores (PT) 是巴西最大的政黨之一。 它是現任和前任總統迪爾瑪·羅塞夫和路易斯·伊納西奧·盧拉·達席爾瓦的政黨。 Partido da Social Democracia Brasileira (PSDB) 是前總統費爾南多·恩里克·卡多佐的政黨。
數據挖掘和提取 Twitter 趨勢主題數據
我通過提取通過 Twitter API 提供數據的 14 個巴西城市的 Twitter 趨勢主題數據開始社交媒體數據挖掘,即:巴西利亞、貝倫、貝洛奧里藏特、庫裡提巴、阿雷格里港、累西腓、里約熱內盧、薩爾瓦多、聖奧保羅、坎皮納斯、福塔萊薩、戈亞尼亞、馬瑙斯和聖路易斯。
我查詢 Twitter REST API 以獲取這 14 個城市在 20 分鐘內的前 10 個 Twitter 趨勢主題(受 Twitter 對其 API 的一些限制的限制)。 將查詢限制在這 14 個城市是通過指定他們的 Yahoo! GeoPlanet WOEID(地球上的 ID)。
對於這個概念驗證,我使用 Python 和 Twitter 庫(巧妙地稱為“twitter”)來獲取決選當天(10 月 26 日)以及前兩天(10 月24 日和 25 日)。 每天,我執行了大約 70 個不同的查詢來幫助識別即時趨勢主題。
下面是響應每個查詢返回的 JSON 對象的示例(此示例基於 10 月 26 日凌晨 12:40:00 的數據查詢,僅顯示貝洛奧里藏特的數據)。
[{"created_at": "2014-10-26T02:32:59Z", "trends": [{"url": "http://twitter.com/search?q=%23GolpeNoJN", "name": "#GolpeNoJN", "query": "%23GolpeNoJN", "promoted_content": null}, {"url": "http://twitter.com/search?q=%23SomosTodosDilma", "name": "#SomosTodosDilma", "query": "%23SomosTodosDilma", "promoted_content": null}, {"url": "http://twitter.com/search?q=%23EAecio45Confirma", "name": "#EAecio45Confirma", "query": "%23EAecio45Confirma", "promoted_content": null}, {"url": "http://twitter.com/search?q=Uilson", "name": "Uilson", "query": "Uilson", "promoted_content": null}, {"url": "http://twitter.com/search?q=%22Lucas+Silva%22", "name": "Lucas Silva", "query": "%22Lucas+Silva%22", "promoted_content": null}, {"url": "http://twitter.com/search?q=%22Marcelo+Oliveira%22", "name": "Marcelo Oliveira", "query": "%22Marcelo+Oliveira%22", "promoted_content": null}, {"url": "http://twitter.com/search?q=Cruzeiro", "name": "Cruzeiro", "query": "Cruzeiro", "promoted_content": null}, {"url": "http://twitter.com/search?q=Tupi", "name": "Tupi", "query": "Tupi", "promoted_content": null}, {"url": "http://twitter.com/search?q=%22Real+x+Bar%C3%A7a%22", "name": "Real x Bar\u00e7a", "query": "%22Real+x+Bar%C3%A7a%22", "promoted_content": null}, {"url": "http://twitter.com/search?q=Wanessa", "name": "Wanessa", "query": "Wanessa", "promoted_content": null} ], "as_of": "2014-10-26T02:40:03Z", "locations": [{"name": "Belo Horizonte", "woeid": 455821}] }]
社交網絡分析簡介
社交網絡理論是研究人、組織或群體如何在其網絡中與他人互動的研究。 社交網絡主要分為三種類型:

- 以自我為中心的網絡與單個節點或個人(例如,您和您所有的朋友和親戚)相連。
- 默認情況下,以社會為中心的網絡是封閉網絡。 此類網絡的兩個常用示例是教室中的兒童或組織內的工作人員。
- 開放系統網絡是邊界線沒有明確定義的網絡,這使得這種類型的網絡通常最難研究。 我們在本文中分析的社會政治網絡類型是開放系統網絡的一個例子。
社交網絡被認為是複雜網絡,因為它們顯示出非平凡的拓撲特徵,其元素之間的連接模式既不是純規則的也不是純隨機的。
社會網絡分析檢查社會實體之間的關係結構。 這些實體通常是人,但也可能是社會團體、政治組織、金融網絡、社區居民、國家公民等。 網絡的實證研究在社會科學中發揮了核心作用,許多用於研究網絡的數學和統計工具最早是在社會學中發展起來的。
建立網絡
為了使用 Twitter 趨勢主題創建網絡,我定義了以下規則:
- 每個城市都是網絡中的一個頂點(即節點)。
- 如果兩個城市之間至少有一個共同的趨勢主題,那麼這些城市之間就存在邊緣(即鏈接)。
- 根據這兩個城市之間共有的趨勢主題的數量對每條邊進行加權(即,兩個城市共有的趨勢主題越多,歸因於它們之間的聯繫的權重就越大)。
例如,在 10 月 26 日,福塔萊薩和坎皮納斯這兩個城市有 11 個共同的趨勢主題,因此當天的網絡包括福塔萊薩和坎皮納斯之間的一條邊,權重為 11:
此外,為了幫助權衡城市之間的關係,我還考慮了與選舉本身無關的話題(前提是具有其他共同優先事項和利益的城市可能更傾向於分享相同的政治傾向)。
儘管趨勢主題的順序可能對分析有一定的意義,但為了簡化概念驗證,我選擇忽略趨勢主題列表中的主題順序。
網絡拓撲結構
網絡拓撲本質上是網絡中各種元素(鏈路、節點等)的排列。 對於我們正在分析的社交網絡,網絡拓撲在 3 天內沒有發生顯著變化,因為網絡的節點(即 14 個城市)保持不變。 但是,可以在節點之間的鏈接權重中檢測到差異,因為城市之間的共同趨勢主題的數量在 3 天內有所不同,如下面的第 24 天與第 25 天的網絡拓撲比較所示。
使用 Twitter 趨勢主題數據預測選舉結果
為了幫助我們預測選舉結果,我們不僅考慮了城市之間共同的趨勢話題,而且還考慮了這些話題的內容與兩個主要政黨可能獲得的支持之間的關係; 即,Partido dos Trabalhadores (PT) 和 Partido da Social Democracia Brasileira (PSDB)。
首先,我創建了一個單詞和短語列表,這些單詞和短語被認為表明積極傾向於或支持其中一方。 (無可否認,填充這個列表是一項非常複雜的任務。在這個概念驗證的背景下,我特意採用了一種簡化的方法。如果有的話,這使得結果的口徑更加有趣,因為一個更高度調整的術語列表和短語可能會進一步提高結果的準確性。)
然後,對於每個節點,我計算:
- 包含表示支持 PT 的術語的鏈接數
- 包含表示支持 PSDB 的術語的鏈接數量
再次以福塔澤拉市為例,我得出以下結論:
Fortaleza['PT'] = 56 Fortaleza['PDSB'] = 37
因此,我們得出結論,福塔萊薩居民總體上偏愛 Partido dos Trabalhadores (PT)。
結果和結論
基於這種算法,分析產生的結果與實際選舉結果驚人地相似,尤其是考慮到我們方法的一般簡單性時。 以下是基於 Twitter Trend Topic 數據的預測結果與實際選舉結果的對比(紅色代表 Partido dos Trabalhadores,藍色代表 Partido da Social Democracia Brasileira):
改進的科學嚴謹性,以及更複雜的算法和指標,無疑將進一步改善結果。
例如,這裡有一些指標可用於推斷節點的重要性或影響力,進而可以告知本文中描述的預測分析類型:
節點中心性。 存在許多節點中心性度量,可用於幫助識別網絡中最重要或最有影響力的節點。 例如,中介中心性認為一個節點非常重要,如果它在許多其他節點之間形成橋樑。 另一方面,特徵值中心性基於一個節點的重要性,它基於鏈接到它的其他非常重要的節點的數量。
聚類係數。 節點的聚類係數衡量節點的“鄰居”相互連接的程度。 這是另一個與評估節點對其相鄰節點的假定影響程度相關的度量。
度中心性。 度中心性基於到節點的鏈接(即連接)的數量。 這是衡量網絡中節點“重要性”的最簡單方法之一。
但即使沒有這種複雜程度,通過這種簡單的概念驗證所取得的結果也提供了使用 Twitter 趨勢主題數據進行有效預測分析的令人信服的證明。 顯然,在未來進一步進行社交媒體數據分析的潛力。
進一步閱讀 Toptal 工程博客:
- 使用 Python/NetworkX 進行圖形數據科學