# Data Mining HW1 [](https://github.com/a868111817/data_mining_hw1) ###### tags: `data mining` --- 實驗環境: --- ## ibm-5000 dataset - VSCode :heart: - I use tabs. :cat: ### dataset analyze --- - **ibm-5000 dataset:** 有828個transaction,下圖x軸為item的ID,y軸為此item佔所有transaction中的百分比。 ![](https://i.imgur.com/zPHwBBp.png) - 可以看到大部分資料差異很大,所以適度調整minimal support可以過濾部份少出現的item。 ### Apriori 執行時間 - x軸為support變化量,y軸為執行時間。 --- ![](https://i.imgur.com/c3ji7Cw.png) - 可以看到support在接近0.1時,執行時間就已經下降到0.01秒以下,表示大部分資料都被過濾掉了,所以執行時間才會有效的改善。 ![](https://i.imgur.com/lLgjJz0.png) ![](https://i.imgur.com/iHNhVS4.png) - 調高minimal confidence對總體執行時間並無太大的改善,執行時間主要依照minimal support高低改變。 --- ### FP-growth執行時間 --- ![](https://i.imgur.com/6FAIhvs.png) - 相比apriori演算法,FP-growth執行時間快上很多,大概在support=0.05時,執行時間快速下降,並且之後都維持相同的執行時間。 --- ### rules generation - min_support = 0.1 min_conf = 0.1 * 產出832條規則 ![](https://i.imgur.com/aifNw1C.png) - min_support = 0.1 min_conf = 0.8 * 產出758條規則 ![](https://i.imgur.com/VdCPVCT.png) - min_support = 0.2 min_conf = 0.1 * 產出602條規則 ![](https://i.imgur.com/bJyCPpc.png) - min_support = 0.4 min_conf = 0.1 * 產出2條規則 ![](https://i.imgur.com/7Tp6QVV.png) - min_support = 0.4 min_conf = 0.8 * 產出2條規則 ![](https://i.imgur.com/V1rQgbB.png) - 在support低的時候,調整confidence還是有很多規則產生,可能這時還有很多item未被min_support過濾,所以item之間比較多關聯,但是調高support後,所剩下的item所剩無幾,因此調高confidencce不改變產出的規則。 --- ### FP Growth V.S. Apriori --- | | FP Growth | Apriori | | ---------- | --------- | ------------------ | | speed | 較快 | 較慢 | | scans DB | 兩次 | 需要重複掃描好幾次 | | candidates | 不須產生 | 需要candidates | ### Find and answer --- **High support, high confidence** High support會過濾頻率低的item,執行時間快,並且產生關聯度跟出現頻率最高的組合。 **High support, low confidence** 高support會把低頻率組合過濾掉,這時候考慮的是資料的差異性,這是由於低confidence的關係,若是高於min_support的組合差異性不大,那很有可能出現很多關聯性強的組合,反之亦然,所以取決於資料的差異性。 **Low support, low confidence** 會產出很多低關聯度的組合,因為低sup以及低conf會讓很多規則都產生出來,也是全部中產出規則最多最錯亂的。 **Low support, high confidence** 找出低頻率但是關聯度卻蠻高的組合。