# 帳號分析 hash string clustering 210105 --- ## 本週實驗 延續上週實驗內容並調整 hash function,希望以藉此將群心數增大且不會overfitting ### 實驗方法 #### 與上週不變步驟 - 原始資料取10000筆,並用正則表示式過濾掉含特殊字元的帳號 - 過濾後剩餘9560筆 - 建立三種帳號,每種帳號各 50 個,總計 150 筆,規則如下。 1. 'hm0000'+流水號 2. 'ssu'+流水號+'ssu' 3. 'asd'+流水號+'asd' - (流水號範圍 0~50) - 將原始資料 9560 筆與流水號帳號串接,共 9710 筆帳號作為 test data - 將過濾後的帳號透過hash function轉成數值,並將此hash value與帳號長度做為Kmeans feature - 用Kmeans做分群並將結果匯出觀察 - 觀察各群數量分布與分群後是否有overfitting的情況 - 初步分群後,將各群再做minimum edit distance matrix - 確認分群後產生MED矩陣所需時間 #### 新增步驟 - 於hash function中增加對數字的處理 - 將所有數字的hash value調整為1 - 目的為減少數字對於整個字串的影響,同時仍保留數字的存在 - 如上週會分至不同群的流水號:hm00003、hm000013 - 上述案例未處理前兩個流水號的hash value為:456、505 (+- 49) - 經過處理後hash value分別為:218、219 (+- 1) ### 實驗結果 - 從10群至200群依然沒有overfitting的情況發生 - 因200群做MED的時間已有大幅度的降低,因此暫時沒有再往上確認群心數的極限 - 運行時間優化過程 (皆10000筆資料量,做MED) - 完全沒有初步分群直接做 (memory crash) - 分10群 (550 sec) ![](https://i.imgur.com/2e50ZfR.png =500x) - 分200群 (45 sec) ![](https://i.imgur.com/yiYdkK0.png) #### 分群結果 (K = 200) - https://docs.google.com/spreadsheets/d/1oCmO8gjvLjC0Jbm4XE7odbKNNKBp73EiXaoZW7-gcEs/edit?usp=sharing ![](https://i.imgur.com/QLDTU7X.png =400x) ![](https://i.imgur.com/HQJ2UHW.png =400x) ![](https://i.imgur.com/DG68OXK.png =400x) ![](https://i.imgur.com/Senpizv.png =400x) ![](https://i.imgur.com/wclMz2P.png =400x) ###### tags: `Progress Report`