Project 1
contributed by < robertlin0401
>
GitHub
作業要求
說明
檔案結構
- data:存放 IBM Quest Data Generator 格式的輸入資料
- ibm-2020.txt、ibm-2021.txt:moodle 公布的測資
- test.txt:使用 IBM Quest Data Generator 自行生成的側資
- output:存放輸出檔案
- 底下的檔案為以 data 資料夾中對應的輸入資料分別作為輸入的輸出結果
- src:存放原始碼
- test:shell script
- 執行後會將 data 資料夾中的三個檔案一一作為輸入來執行主程式,並將輸出檔案存放進 output 資料夾
執行
- 使用
make
指令後會生成可執行檔 apriori.exe
- 使用
./apriori.exe -h
或 ./apriori.exe --help
可取得說明
分析
support 與 confident
- 低 support 值會使 frequent itemset 的數量增加,因為需要的出現次數較少就能成為 frequent itemset
- 高 support 值會使 frequent itemset 的數量減少,因為需要出現較多次的 itemset 才能成為 frequent itemset
- 低 confident 值會使形成 association rule 的條件變得寬鬆,即較低關聯性的 itemsets 仍能形成 association rule
- 高 confident 值會使形成 association rule 的條件變得嚴謹,即較高關聯性的 itemsets 才有可能形成 association rule
各種 support 與 confident 組合的意義
High support, high confidence ?
- 較少 frequent itemsets 之間,需要有較高關聯性才能形成 association rule,代表所形成的 association rule 非常嚴謹,形成 association rule 的 itemsets 之間必定有很高的關聯性
- 但是會因此有相當多具有關聯性的 itemsets 不被列入 association rule,所以以一般情形而言,在這種組合下的 association rule 參考價值可能不高
High support, low confidence ?
- 僅有較少的 itemsets 能夠成為 frequent itemset,但形成 association rule 的條件較寬鬆,代表只要能夠成為 frequent itemset 就有很高機會能夠形成 association rule
- 會有部分具有關聯性的 itemsets 在選擇 frequent itemset 時就被排除掉,因此這種組合下的 association rule 會有些偏頗,一般而言參考價值可能不高
Low support, low confidence ?
- 成為 frequent itemset 的條件較寬鬆,同時形成 association rule 的條件也很寬松,代表任意的 itemsets 之間都有可能形成 association rule,因此這種組合下的 association rule 基本上參考價值較低
Low support, high confidence ?
- 成為 frequent itemset 的條件較寬鬆,但形成 association rule 的條件較嚴謹,因此有關聯性的 itemsets 較容易被納入,所形成的 association rule 較全面,在一般情形而言這種組合下的 association rule 較具有參考價值
心得
實作這項作業除了讓我對課堂內容理解得更清楚之外,還讓我在藉由 C 語言實作各個資料結構時,將 coding 的基本功打得更穩、更紮實了,不過有一點較可惜的是因為實作前的理解不夠清晰,導致誤判了實作所需的時間因而沒有分配足夠的時間,最終來不及完整實作這份作業。