Project 1

contributed by < robertlin0401 >

tags: 資料探勘

GitHub


作業要求

  • Frequent itemsets mining
    • use apriori algorithm
    • use FP-growth
  • Generate association rules
  • Analyze datasets
    • Select from kaggle / UCI
    • Use IBM Quest Synthetic Data Generator

說明

檔案結構

  • 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 的基本功打得更穩、更紮實了,不過有一點較可惜的是因為實作前的理解不夠清晰,導致誤判了實作所需的時間因而沒有分配足夠的時間,最終來不及完整實作這份作業。