---
# System prepended metadata

title: Data Mining HW1
tags: [data mining]

---

# 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**

找出低頻率但是關聯度卻蠻高的組合。

