用KNIME構(gòu)建社會網(wǎng)絡(luò)
社會網(wǎng)絡(luò)分析(Social Network Analysis)是大數(shù)據(jù)分析的主要應(yīng)用方向。社會網(wǎng)絡(luò)分析關(guān)注的是關(guān)系,這種關(guān)系可以是人與人之間的關(guān)系,也可以是組織之間或是國家之間的關(guān)系,甚至可以是“啤酒”與“尿布”等物與物之間的關(guān)系。(注:“啤酒”與“尿布”的故事是一個數(shù)據(jù)挖掘的經(jīng)典案例,經(jīng)過數(shù)據(jù)挖掘與分析,沃爾瑪超市發(fā)現(xiàn)美國奶爸們買尿布的時候常常也會順帶著買啤酒,從而帶來營銷啟示。)
沈浩老師一直致力于社會網(wǎng)絡(luò)分析的研究,今天,主要介紹的是如何用數(shù)據(jù)挖掘軟件KNIME來構(gòu)建社會網(wǎng)絡(luò)。軟件作為工具,背后是理論的指導(dǎo),所以,我們先來簡要說明一下關(guān)于社會網(wǎng)絡(luò)的基本理論。
要研究網(wǎng)絡(luò),先要明白什么是網(wǎng)絡(luò)。網(wǎng)絡(luò)由節(jié)點(diǎn)(node)以及節(jié)點(diǎn)之間的連線(也叫邊,edge)構(gòu)成。一個節(jié)點(diǎn)代表著一個行動者,或者說是一個實(shí)體,可以是一個人、一個組織、一個國家、一個商品、一個學(xué)科,等等。邊是網(wǎng)絡(luò)中兩點(diǎn)之間的聯(lián)系。在社會網(wǎng)絡(luò)分析中,正是邊體現(xiàn)出了彼此之間的關(guān)系。邊分為有向邊和無向邊,網(wǎng)絡(luò)圖從而也分為有向圖和無向圖。
下面以案例的形式介紹用KNIME構(gòu)建社會網(wǎng)絡(luò)圖的詳細(xì)步驟:
步驟1:建立一個空網(wǎng)絡(luò)并讀取關(guān)系數(shù)據(jù)
這是本例中所用的關(guān)系數(shù)據(jù),Col0和Col1兩列是node,Row ID是edge,利用Object Inserter,我們將數(shù)據(jù)插入到網(wǎng)絡(luò)中。在Object Inserter中還可以選擇對邊的無向或有向以及邊的權(quán)重進(jìn)行設(shè)置,本例中我們設(shè)置邊為無向邊,不設(shè)置邊的權(quán)重。
步驟2:讀取節(jié)點(diǎn)特征數(shù)據(jù),向網(wǎng)絡(luò)中插入特征數(shù)據(jù)
這是本例中使用的節(jié)點(diǎn)特征數(shù)據(jù),我們能夠看到。這里的特征,指的是節(jié)點(diǎn)所代表的人的信息,分別是年齡、性別、收入和人生階段。分別將這4個特征插入到網(wǎng)絡(luò)中。也可以插入滿足研究需要的節(jié)點(diǎn)特征,本例中將參與人數(shù)(也就是節(jié)點(diǎn)數(shù))也插入其中。
細(xì)心的讀者可能會發(fā)現(xiàn),在“人生階段(phase oflife)”中,有一些標(biāo)了“?”的缺失值,對于這些缺失值,可以用決策樹來進(jìn)行預(yù)測,然后將預(yù)測值填入使數(shù)據(jù)完整。
可以看到,模型的準(zhǔn)確率是83.636%。
步驟3:生成可視化網(wǎng)絡(luò)圖
將預(yù)測值插入網(wǎng)絡(luò)中,用Network Viewer節(jié)點(diǎn)可視化呈現(xiàn)網(wǎng)絡(luò)圖。在該節(jié)點(diǎn)中,可以設(shè)置網(wǎng)絡(luò)布局的算法、顏色、形狀等等。
以節(jié)點(diǎn)名稱(人名)為標(biāo)簽所呈現(xiàn)的網(wǎng)絡(luò)圖
以節(jié)點(diǎn)特征(這里是年齡)為標(biāo)簽所呈現(xiàn)的網(wǎng)絡(luò)圖
值得注意的一點(diǎn)是,Network Viewer并不支持處理超圖(注:一般來講,網(wǎng)絡(luò)圖中的一條邊最多只能關(guān)聯(lián)2個節(jié)點(diǎn),但超圖hypergraph中,它的超邊hyperedge的關(guān)聯(lián)節(jié)點(diǎn)可以大于2)和空邊(邊的關(guān)聯(lián)節(jié)點(diǎn)小于1),所以如果網(wǎng)絡(luò)中有這樣的超邊或空邊,可以對其先進(jìn)行過濾。有時,根據(jù)研究者的需要,也可以對網(wǎng)絡(luò)的節(jié)點(diǎn)或邊做一些符合需要的過濾。
葉子節(jié)點(diǎn)(leaf)指的是沒有子節(jié)點(diǎn)的節(jié)點(diǎn)。環(huán)(loop)指的是邊的關(guān)聯(lián)節(jié)點(diǎn)數(shù)為1.
過濾后以節(jié)點(diǎn)特征(這里是年齡)為標(biāo)簽所呈現(xiàn)的網(wǎng)絡(luò)圖