天天看點

小白學資料分析----->在clementine基于兩步聚類算法的次日留存分析探索

上次簡單的說了一下SPSS下使用兩步聚類分析的大緻過程,今天簡單說說在Clementine下怎麼進行聚類分析,方法同樣是兩步聚類。

之前說過聚類分析是無指導的,揭示的輸入字段集的模式,不是一種預測。在我們輸入的字段上進行聚類分析找出組合最佳,能夠反映共同屬性的模式。兩步聚類有兩步,第一步是擴充,處理成若幹子聚類,第二步利用分層聚類方法進行合并,形成大的聚類,實際上是剪枝合并的過程,此步不再進行資料處理。分層聚類不需要确定聚類數,這點在兩步聚類分析中得以避免,因為分層聚類經常因為處理大資料量而失敗,但是第一步的資料預處理得以避免了這個問題的出現。

兩步聚類分析的資料要求

1)  角色設定必須為輸入,其他的目标、兩者或者無都會在分析中被忽略;

2)  不處理缺失值;

3)  模型建構時,忽略輸入字段包含空白的記錄。

下面就說一下在Clementine中操作過程和注意事項。

首先我們打開Clementine[有關Clementine的基礎操作以後會慢慢整理],第一件事就是要引入我們要分析的檔案,目前clementine支援的資料檔案格式非常豐富,如下圖:

小白學資料分析----->在clementine基于兩步聚類算法的次日留存分析探索

今天我們使用的檔案是SPSS檔案的格式,是以,在源頁籤,輕按兩下SPSS檔案圖示,就會出現以下的畫面[或者左鍵點選直接拖入資料流編輯區域]:

小白學資料分析----->在clementine基于兩步聚類算法的次日留存分析探索

之後右鍵編輯,彈出視窗,在彈出視窗找到要分析的SPSS檔案,引入:

小白學資料分析----->在clementine基于兩步聚類算法的次日留存分析探索

點選類型的标簽,可以看到目前字段的類型、是否缺失、設定方向等等資訊,如下圖:

小白學資料分析----->在clementine基于兩步聚類算法的次日留存分析探索

點選确定,完成了資料檔案的引入操作,但是往往我們檔案中的一些字段在進行分析時是不需要的,有一些字段的屬性還需要調整,資料品質還要檢驗,是以簡單說說這個過程。

資料品質檢驗

輸出頁籤,輕按兩下資料稽核圖示,此時就會自動連接配接資料檔案,資料稽核幫助簡單分析和整理原資料檔案的情況。

小白學資料分析----->在clementine基于兩步聚類算法的次日留存分析探索

右鍵單擊資料稽核圖示,選擇執行,彈出視窗,可以看到字段類型、是否有空值、完成度等資訊,彈出如下的視窗:

小白學資料分析----->在clementine基于兩步聚類算法的次日留存分析探索

分析字段選擇

有一些字段在我們分析的時候是不需要的,比如我們這個檔案中的playerid字段就沒什麼實際利用意義,為此這一類的字段我們可以實作進行排除,這樣後續的操作和分析會比較便利,此處我們做的是次日留存玩家的特征提取和分析,由于此處我們使用的檔案已經是經過處理的,即已經把非新登使用者那一部分資料踢出了,否則此處我們就必須使用這個功能[次日留存玩家設定為NO,非新登玩家次日登陸的設定為YES],此處我們通過選擇排除playerid這個字段。

單擊字段選項,輕按兩下選擇過濾圖示,并使之與源檔案連接配接:

小白學資料分析----->在clementine基于兩步聚類算法的次日留存分析探索

右鍵編輯,在打開的視窗中,把playerid過濾掉,點選箭頭即可,變成紅叉表明被過濾,在後續的分析中不會出現該字段。

小白學資料分析----->在clementine基于兩步聚類算法的次日留存分析探索

此時我們可以連接配接顯示一下過濾以後的資料内容形式,在輸出選項,輕按兩下表圖示,連接配接一個個表,此時右鍵執行,看到如下的效果,發現playerid木有了。

小白學資料分析----->在clementine基于兩步聚類算法的次日留存分析探索

下面到了比較重要的地方,我們選擇模組化,之後選擇細分标簽裡的兩步,輕按兩下,連接配接到檔案上,效果如下:

小白學資料分析----->在clementine基于兩步聚類算法的次日留存分析探索

右鍵兩步圖示,選擇編輯,彈出了兩步節點模型的選項

小白學資料分析----->在clementine基于兩步聚類算法的次日留存分析探索

模型名稱

可以選擇自己設定,也可以系統生成。

使用分區資料

若定義了分區字段,那麼這個選項保證了僅僅訓練分區的資料用于構模組化型。此處我們沒有進行資料的分區操作,不必勾選這個選項。

标準化數值字段

預設情況下,兩步聚類會對所有數值輸入字段進行标準化,使它們具有相同的尺度,即均值為 0 且方差為 1。要保留數值字段的原始尺度,可取消選中此選項。符号字段不受影響。

排除離群值

如果選中此選項,則那些與主要聚類似乎格格不入的記錄将自動排除在分析之外。這樣可以防止此類情況歪曲結果。

IBM官方手冊的解釋如下:

“離群值檢測在預聚類步驟進行。選中此選項時,會将相對于其他子聚類具有較少記錄的

子聚類視為潛在離群值,且重新建構不包括這些記錄的子聚類樹。子聚類被視為包含潛在離群值的下限大小由百分比選項控制。如果其中某些潛在離群值記錄與任何新子聚類配置足夠相似,則可将其添加到重新建構的子聚類中。将其餘無法合并的潛在離群值視為離群值添到“噪聲”聚類中并排除在分層聚類步驟之外。

使用經過離群值處理的“兩步”模型對資料進行評分時,會将與最近主要聚類的距離大于特定門檻值距離(基于對數似然)的新觀測值視為離群值配置設定到“噪聲”聚類中,名稱為 -1。”

聚類标簽

為生成的聚類成員關系字段指定格式

自動計算聚類數

“兩步聚類可以非常迅速地對大量聚類解決方案進行分析并為訓練資料選擇最佳聚類數。通過設定最大聚類數和最小聚類數指定要嘗試的聚類解決方案的範圍。“兩步聚類”通過一個兩階段過程确定最佳聚類數。在第一個階段,随着所添加聚類的增多,可基于貝葉斯資訊準則 (BIC) 中的差異選擇模型中聚類數的上限。在第二個階段,為聚類數比最小 BIC 解決方案還少的所有模型找出聚類間最小距離的差異。距離的最大差異用于識别最終聚類模型。”

指定聚類數

如果确定聚類數,也可以自己自行指定。

距離測量

同樣這裡有兩種,歐式和對數似然,但是由于有分類變量隻能選擇對數似然。

聚類準則

準則有BIC和AIC,确定自動聚類算法如何确定聚類數。

之後點選執行,但是此時我們發現了如下的錯誤:

小白學資料分析----->在clementine基于兩步聚類算法的次日留存分析探索

原來我們對于過濾後的資料,沒有進行資料類型的重新指定,為此此處我們要重新指定資料的類型,字段頁籤,輕按兩下類型,之後再次連接配接兩步的圖示,此時就OK了。如下所示:

小白學資料分析----->在clementine基于兩步聚類算法的次日留存分析探索

此後,執行模型,傳回聚類模型結果資訊,如下所示:

小白學資料分析----->在clementine基于兩步聚類算法的次日留存分析探索

輕按兩下打開該模型,顯示資訊如下:

小白學資料分析----->在clementine基于兩步聚類算法的次日留存分析探索

模型顯示主要有模型,檢視器,彙總三個重要的标簽,此處先看彙總:

小白學資料分析----->在clementine基于兩步聚類算法的次日留存分析探索

“兩步”聚類模型塊的“彙總”頁籤顯示找出的聚類數以及有關訓練資料、估計過程和所使用的建構設定的資訊。

檢視器主要是通過圖形化手段顯示聚類的資訊,便于使用者更加直覺的分析(但是我覺得很蛋疼,沒發現直覺那裡去)。

小白學資料分析----->在clementine基于兩步聚類算法的次日留存分析探索

相比較而言我覺得比較有用的模型界面,這裡能夠很直覺看到我們使用該算法建構的模型的具體情況,這裡我們分析的次日留存的玩家的特征。在确定的變量我們建構了兩個類。

小白學資料分析----->在clementine基于兩步聚類算法的次日留存分析探索

可以看到一類比較龐大,但是注意:得到的模型一定程度上取決于訓練資料的順序。重排資料順序并重新構模組化型有可能得到不同的聚類模型。并且通過聚類分析得到的以此結果并不能足夠說明我們整個玩家的特征,其顯著性是需要檢驗的,這受到諸如遊戲活動,聚類分析樣本提取時間,等很多的因素影響,換句話要想具有普适性,還是需要疊代,不斷的綜合和分析整理才能拿出來玩家的特點,切勿選取一批樣本資料,得到的玩家特點就放之四海,利用起來,而這也是CRISP-DM所提出的早期的工作重中之重和加入評估階段的要義。是以還是多多進行如此類的時間,有的放矢才能做好。

繼續閱讀