Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
BAB 5 ANALISIS ASOSIASI Pendahuluan Analisis asosiasi (association analysis) berguna untuk mengungkap hubungan yang menarik yang tersembunyi dalam dataset besar. Hubungan yang terungkap tersebut dapat direpresentasikan dalam bentuk aturan asosiasi (association rules) atau himpunan item yang sering muncul (sets of frequent items). Tabel 5.1 Contoh transaksi belanja TID 1 2 3 4 5 Item {Bread, Milk} {Bread, Diapers, Beer, Eggs} {Milk, Diapers, Beer, Cola} {Bread, Milk, Diapers, Beer} {Bread, Milk, Diapers, Cola} Sebagai contoh, berikut ini merupakan aturan yang dapat di-ekstrak dari dataset yang transaksi belanja (market basket transaction) pada Tabel 5.1. {Diapers} Æ {Beer} Aturan di atas menunjukkan terdapat hubungan yang kuat antara penjualan diapers dengan beer, karena banyak pembeli yang membeli diapers juga membeli beer. Selain data transaksi belanja, analisis asosiasi juga dapat diterapkan pada domain masalah lainnya seperti bioinformatika, diagnosis medis, Web Mining, dan analisis data scientifik. Meskipun teknik-teknik yang disajikan di sini secara umum dapat diterapkan ke berbagai dataset yang lebih luas, namun untuk mengilustasikan analisis asosiasi dalam modul ini hanya menggunakan data transaksi belanja. 5.1 Definisi Masalah Pada bagian ini akan dilihat kembali terminologi yang digunakan dalam analisis asosiasi dan menyatakan pekerjaan asosiasi secara formal. • Binary Representation. Data transaksi belanja dapat dinyatakan dalam format biner seperti ditunjukkan pada Tabel 5.2, dimana setiap baris menunjukkan transaksi dan masing-masing kolom menunjukkan item. Item dapat diperlakukan seperti variabel biner yang bernilai 1 jika item tersebut terdapat dalam transaksi dan 0 jika selainnya. • Itemset. Ditetapkan I= {i1,i2, …., id} merupakan himpunan semua item dalam data transaksi belanja dan T = {t1,t2, …., tN} merupakan himpunan semua transaksi. Setiap transaksi ti mengandung subset item yang dipilih dari I. Dalam analisis asosiasi, koleksi nol atau lebih item disebut itemset. Jika itemset berisi k item, maka disebut k-itemset. Contoh, {Beer, Diapers, Milk} adalah 3-itemset. Set null atau kosong adalah itemset yang tidak berisi item. Modul Kuliah Data Mining 88 Tabel 5.2 Representasi biner data transaksi belanja • Transaction Width didefinisikan sebagai jumlah item yang terdapat dalam sebuah transaksi. Transaksi tj dikatakan mengandung itemset X jika X merupakan subset dari tj. Contoh , pada transaksi kedua dalam Tabel 5.2 mengandung itemset {Bread, Diapers} namun tidak mengandung itemset {Bread, Milk}. • Support Count adalah jumlah transaksi yang mengandung itemset tertentu. Secara matematik support count σ(X) dinyatakan sebagai σ (X) =| {t i | X ⊆ t i , t i ∈ T} | , Dimana simbol |.| menyatakan jumlah elemen dalam set. Dalam data pada Tabel 2, support count untuk {Beer, Diapers, Milk} adalah dua (2) karena hanya dua transakasi yang mengandung ketiga item tersebut. • Aturan Asosiasi (Association Rule) adalah ekspresi implikasi yang dinyatakan dalam bentuk XÆ Y, dimana X dan Y adalah itemset terpisah (disjoint) yaitu X ∩ Y= Ø. Kekuatan aturan asosiasi dapat diikur dengan support dan confidence. Support menentukan seberapa sering aturan tersebut diterapkan dalam dataset, sedangkan Confidence menentukan frekuensi item dalam Y muncul dalam transaksi yang mengandung X. Defini formal dari keduanya adalah Support, s(X → Y ) = σ (X ∪ Y) Confidence, c(X → Y ) = N ; σ (X ∪ Y) X Contoh 5.1: Perhatikan aturan {Milk, Diapers} Æ {Beer}. Karena support count untuk {Milk, adalah 2 dan jumlah total transaksi adalah 5, maka support bagi aturan tersebut adalah 2/5 = 0.4. Confidence didapat dengan membagi support count untuk {Milk, Diapers, Beer} dengan support count untuk {Milk, Diapers}, yaitu 2/3 = 0.67 Diapers, Beer} • Formulasi Masalah Association Rule Mining. Permasalahan association rule dapat dinyatakan secara formal sebagai berikut Definisi 5.1: (Association Rule Discovery) Diberikan sebuah himpunan transaksi T, cari semua aturan yang memiliki support ≥ minsup dan confidence ≥ minconf dimana minsup dan minconf merupakan nilai ambang (treshold) bagi support dan confidence. Modul Kuliah Data Mining 89 Jika dilakukan secara brute-force, maka total aturan yang mungkin di-ekstrak dari dataset yang berisi d item adalah R= 3d – 2d+1 + 1, sehingga pendekatan brute-force tidak mungkin dilakukan. Strategi yang sering diambil untuk menyelesaikan permasalahan association rule discovery adalah dengan memecah masalah tersebut ke dalam dua pekerjaan utama, yaitu 1.1. Pembangkitan Frequent Itemset, bertujuan untuk mencari semua itemset yang memenuhi nilai ambang minsup. Itemset ini disebut frequent itemset. 1.2. Pembangkitan Aturan, bertujuan untuk meng-ekstrak seluruh aturan yang memiliki confidence tinggi dari frequent itemset yang telah ditemukan pada pekerjaan sebelumnya. Aturan yang memiliki confidence tinggi disebut strong rules. Secara umum pekerjaan pembangkitan frequent itemset memerlukan sumberdaya komputasi yang lebih besar dibanding pekerjaan pembangkitan aturan. 5.2 Pembangkitan Frequent Itemset Misal terdapat itemset I = {a,b,c,d,e} daftar seluruh itemset yang mungkin dibentuk dari itemset I dapat dilihat pada Gambar 5.1. Gambar 5.1 Itemset Lattice Umumnya, sebuah dataset yang mengandung k item dapat membangkitkan 2k-1 frequent itemset. Karena pada banyak aplikasi ukuran k sangat besar, maka ruang pencarian itemset yang perlu dijelajahi membesar secara eksponensial. Jika mengunakan pendekatan brute-force, maka kita harus menghitung support count untuk seluruh candidate itemset dalam struktur lattice seperti diperlihatkan pada Gambar 5.2. Modul Kuliah Data Mining 90 Gambar 5.2 Menghitung support bagi candidate itemset. Dalam Gambar 5.2 terlihat jika candidate itemset terdapat dalam transaksi, maka nilai support count-nya akan dinaikkan. Sebagai contoh, support untuk {Bread, Milk} dinaikkan tiga kali karena itemset tersebut terkandung dalam transaksi 1, 4 dan 5. Pendekatan ini sangat mahal karena memerlukan pembandingan sebesar O(NMw), dimana N adalah jumlah transaksi, M = 2k-1 adalah jumlah candidate itemset, dan w adalah transaction width maksimum. Ada beberapa beberapa cara untuk mengurangi kompleksitas komputasi dalam pembangkitan frequent itemset, yaitu 1. Mengurangi jumlah candidate itemset (M). Prinsip apriori, akan dijelaskan kemudian, merupakan cara yang efektif untuk menghilangkan beberapa candidate itemset tanpa perlu menghitung nilai support-nya. 2. Mengurangi jumlah pembandingan. Daripada mencocokkan setiap candidate itemset dengan setiap transaksi, kita dapat mengurangi jumlah pembandingan dengan menggunakan struktur data lanjut, baik untuk menyimpan candidate itemset atau untuk melakukan kompresi dataset. 5.2.1 Prinsip Apriori Penggunaan support untuk memangkas (pruning) candidate itemset dilakukan dengan mengikuti prinsip berikut Teorema 5.1: (Prinsip Apriori) Jika sebuah itemset sering muncul, maka seluruh subset dari itemset tersebut juga harus sering muncul (If an itemset is frequent, then all of the subsets must also be frequent). Contoh 5.2: Pada struktur lattice di Gambar 5.3 misal {c,d,e} adalah frequent itemset, maka seluruh subset dari {c,d,e}- yaitu node yang abu-abu, juga harus sering muncul (frequent). Sebaliknya jika itemset {a,b} jarang muncul (infrequent), maka seluruh superset-nya juga harus jarang muncul sehingga dapat dipangkas (Gambar 5.4). Strategi pemotongan ruang pencarian yang berdasarkan pada ukuran support disebut support-based pruning. Dalam strategi ini nilai support untuk itemst tidak pernah melebihi support subset-nya, sifat ini dikenal sebagai anti-monotone. Modul Kuliah Data Mining 91 Gambar 5.3 Jika {c,d,e} frequent maka seluruh subset-nya juga harus frequent. Gambar 5.4 Jika {a,b} infrequent maka seluruh supersetnya juga infrequent. Definisi 5.2: (Monotonicity Property). Ditetapkan I adalah sebuah set item, dan J=2I adalah pangkat dari I. Ukuran f bersifat monoton (atau upward closed) jika ∀X, Y ∈ J : (X ⊆ Y) → f (X) ≤ f (Y) , yang bermakna jika X adalah subset dari Y, maka f(X) harus tidak melebihi f(Y). Sebaliknya f bersifat anti-monoton (atau downward closed) jika ∀X, Y ∈ J : (X ⊆ Y) → f (Y) ≤ f (X) , yang bermakna jika X adalah subset dari Y, maka f(Y) harus tidak melebihi f(X). Modul Kuliah Data Mining 92 5.2.2 Pembangkitan Frequent Itemset dalam Algoritma Apriori Apriori merupakan algoritma association rule mining pertama yang mempelopori pengunaan pemangkasan itemset berdasarkan nilai support (supportbased pruning) untuk secara sistematis mengendalikan pertumbuhan candidate itemset yang tumbuh secara eksponensial. Gambar 5.5 memberikan ilustrasi pembangkitan frequent itemset dalam algoritma Apriori untuk transaksi yang terdapat di Tabel 5.1. Gambar 5.5 Pembangkitan frequent itemset menggunakan program Apriori (Treshold 60 % atau support count = 3) Awalnya, setiap item dianggap sebagai candidate 1-itemset. Setelah menghitung support untuk setiap item maka candidate itemset {Cola} dan {Eggs} dibuang karena kemunculan itemset tersebut lebih sedikit dari tiga. Pada iterasi berikutnya, candidate 2-itemset dibangkitkan hanya dengan menggunakan frequent 1-itemset karena prinsip Apriori menjamin bahwa seluruh superset dari infrequent 1-itemset pastilah juga infrequent. Karena hanya ada ⎛ 4⎞ empat frequent 1-itemset, maka jumlah candidate 2-itemset adalah ⎜⎜ ⎟⎟ = 6. ⎝ 2⎠ Dua dari enam candidate 2-itemset yaitu {Beer, Bread} dan {Beer, Milk} ternyata setelah dihitung nilai support-nya ternyata infrequent. Karena yang tersisa hanya empat kandidat, maka digunakan untuk membangkitkan candidate 3-itemset. Tingkat ke-efektif-an strategi pemangkasan Apriori dapat ditunjukkan dengan menghitung jumlah candidate itemset yang dihasilkan. Strategi bruteforce untuk mencacah seluruh itemset (sampai ukuran 3) menghasilkan kandidat sebanyak Modul Kuliah Data Mining 93 ⎛ 6⎞ ⎛ 6⎞ ⎛ 6⎞ ⎜⎜ ⎟⎟ + ⎜⎜ ⎟⎟ + ⎜⎜ ⎟⎟ = 6 + 15 + 20 = 41 ⎝ 1⎠ ⎝ 2⎠ ⎝ 3⎠ Dengan prinsip Apriori, jumlah kandidat yang dihasilkan berkurang menjadi ⎛ 6⎞ ⎛ 4⎞ ⎜⎜ ⎟⎟ + ⎜⎜ ⎟⎟ + 1 = 6 + 6 + 1 = 13 ⎝1⎠ ⎝ 2⎠ Pseudocode untuk membangkitkan frequent itemset sebagai bagian dari algoritma Apriori disajikan dalam Algoritma 5.1. Algoritma 5.1. Pembangkitan Frequent Itemset dalam algoritma Apriori Ditetapkan Ck menunjukkan candidate k-itemset dan Fk menunjukkan frequent kitemset. • Algoritma ini pada awalnya menghitung support untuk setiap item. Hasil tahap ini adalah frequent 1-itemset F1 (Langkah 1 dan 2). • Berikutnya, algoritma secara iteratif akan membangkitkan candidate k-itemset baru menggunakan frequent (k-1)itemset yang ditemukan pada iterasi sebelumnya. (Langkah 5). Pembangkitan candidate itemset dilakukan menggunakan fungsi apriori-gen yang akan dijelaskan pada Bagian 2.3 • Untuk menghitung support dari kandidat, algoritma perlu membaca kembali dataset (Langkah 6-10). Fungsi subset digunakan untuk menentukan semua candidate itemset dalam Ck yang terkandung dalam setiap transaksi t. Implementasi dari fungsi ini akan dibahas pada Bagian 2.4 • Setelah menghitung support bagi candidate itemset maka algoritma akan menghilangkan semua candidate itemset dengan nilai support count kurang dari minsup (Langkah 12) • Algoritma berhenti ketika tidak ada lagi frequent itemset baru yang dihasilkan, yaitu Fk = Ø (Langkah 13) 5.2.3 Candidate Generation dan Prunning Fungsi apriori-gen yang ditunjukkan dalam Langkah 5 pada Algoritma 1 membangkitkan candidate itemset dengan melakukan dua operasi berikut: Modul Kuliah Data Mining 94 1. Candidate Generation. Operasi ini membangkitkan candidate k-itemset baru berdasarkan frequent (k-1)itemset yang ditemukan pada iterasi sebelumnya 2. Candidate Pruning. Operasi ini menghilangkan beberapa candidate k-itemset menggunakan strategi pemangkasan berdasarkan nilai support. Sebagai ilustrasi operasi pemangkasan kandidat, perhatikan candidate k-itemset X={i1,i2,….,ik}. Algoritma harus menentukan apakah seluruh subset X-{ij} (∀ j = 1,2,...., k ) frequent. Jika satu diantara subset tersebut infrequent, maka X segera dipangkas. Pendekatan ini secara efektif mengurangi jumlah candidate itemset yang dipertimbangkan selama penghitungan support. Kompleksitas operasi ini adalah O(k) untuk setiap candidate k-itemset. Namun seperti ditunjukkan kemudian, kita tidak perlu memeriksa seluruh k subset dari candidate itemset. Jika m dari k subset telah digunakan untuk membangkitkan kandidat, kita hanya perlu memeriksa sisa k-m subset selama pemangkasan kandidat. Secara prinsip, terdapat beberapa cara untuk membangkitkan candidate itemset. Berikut ini adalah persyaratan bagi prosedur pembangkitan kandidat secara efektif: 1. Prosedur harus menghindari membangkitkan terlalu banyak kandidat yang tidak perlu. Candidate itemset dinyatakan tidak perlu jika paling tidak satu subset-nya infrequent. 2. Prosedur hraus menjamin bahwa himpunan kandidat adalah lengkap, yaitu tidak ada frequent itemset yang tertinggal. Untuk menjamin kelengkapan, himpunan candidate itemset harus memasukkan himpunan semua frequent itemset, yaitu ∀k : Fk ⊆ Ck 3. Prosedur seharusnya tidak membangkitkan candidate itemset yang sama lebih dari sekali. Sebagai contoh, candidate itemset {a,b,c,d} dapat dibangkitkan dalam beberapa cara – dengan menggabung {a,b,c} dengan {d},{b,d} dengan {a,c}, {c} dengan {a,b,d} dan sebagainya. Pembangkitan kandidat yang duplikat menyebabkan pemborosan sumberdaya komputasi dan tidak efisien. Berikutnya, akan dijelaskan beberapa prosedur pembangkitan kandidat, termasuk yang digunakan dalam fungsi apriori-gen. 1. Metode Brute-Force Metode Brute-Force mempertimbangkan semua k-itemset sebagai kandidat potensial dan kemudian menerapkan pemangkasan kandidat untuk menghilangkan kandidat yang tidak perlu (Gambar 5.6). Jumlah candidate ⎛d ⎞ itemset yang dibangkitkan pada level k adalah ⎜⎜ ⎟⎟ dimana d adalah total ⎝k ⎠ jumlah item. Meskipun metode ini terlihat sederhana, namun proses pemangkasan kandidat akan memerlukan sumberdaya komputasi yang besar karena banyaknya itemset yang harus diperiksa. Komputasi yang diperlukan untuk setiap kandidat adalah O(k), sehingga kompleksitas keseluruhan dari ⎛ d ⎛ d ⎞⎞ metode ini adalah O⎜⎜ ∑ k × ⎜⎜ ⎟⎟ ⎟⎟ = O d ⋅ 2 d −1 . ⎝ k =1 ⎝ k ⎠ ⎠ ( Modul Kuliah Data Mining ) 95 Gambar 5.6 Metode brute-force untuk membangkitkan candidate 3-itemset 2. Fk-1 × F1 Method Metode alternatif untuk membangkitkan kandidat adalah dengan memperluas masing-masing frequent (k-1)itemset dengan frequent itemset lainnya. Gambar 5.7 merupakan ilustrasi bagaimana frequent 2-itemset seperti {Beer, Diaper} dapat ditambah dengan frequent item seperti Bread untuk menghasilkan frequent 3-itemset { Beer, Diaper, Bread}. Metode ini akan menghasilkan O ( Fk −1 × F1 ) candidate k-itemset, dimana F j adalah jumlah frequent j- ( ) itemset. Kompleksitas keseluruhan tahap ini adalah O ∑ k k Fk −1 F1 . Gambar 5.7 Metode Fk-1 × F1 Prosedur ini lengkap karena setiap frequent k-itemset tersusun dari frequent (k-1)itemset dan frequent 1-itemset. Dengan demikian, semua frequent kitemset merupakan bagian dari candidate k-itemset yang dibangkitkan oleh prosedur ini. Pendekatan ini, bagaimanapun, tidak mencegah candidate itemset yang sama dibangkitkan lebih dari sekali. Contoh {Bread, Diapers, Milk} Modul Kuliah Data Mining 96 dapat dibangkitkan dengan menggabung {Bread, Diapers} dengan {Milk}, {Bread, Milk} dengan {Diapers}, atau {Diapers,Milk} dengan {Bread}. Salah satu cara untuk menghindari pembangkitan kandidat yang duplikat adalah dengan memastikan bahwa item-item dalam setiap frequent itemset disusun berurut berdasarkan aturan perkamusan (lexicographic). Setiap frequent (k-1)itemset X kemudian diperluas dengan frequent item yang secara leksikal lebih besar dari item di dalam X. Contoh, itemset {Bread, Diapers} dapat ditambah dengan {Milk} karena Milk secara leksikal lebih besar dari Bread dan Diapers. Namun, kita seharusnya tidak menambahkan {Diapers, Milk} dengan {Bread} tidak juga {Bread,Milk} dengan {Diapers} karena melanggar kondisi urutan leksikal. Meskipun prosedur ini merupakan perbaikan yang mendasar dari metode brute-force, namun metode ini masih menghasilkan sejumlah besar kandidat yang tidak perlu. Contoh, candidate itemset yang diperoleh dengan menggabungkan {Beer, Diapers} dengan {Milk} tidak diperlukan karena salah satu subset-nya yaitu {Beer, Milk} infrequent. Terdapat beberapa heuristics untuk mengurangi jumlah kandidat yang tidak perlu. Misalnya, diperhatikan bahwa, setiap candidate k-itemset yang lolos dari tahap pemangkasan, setiap item dalam kandidat tersebut harus terkandung paling tidak dalam k-1 buah frequent (k-1)itemset. Selainnya, kandidat tersebut dapat dijamin infrequent. Contoh, {Beer, Diapers, Milk} dapat terus menjadi candidate 3-itemset hanya jika setiap item dalam kandidat, termasuk Beer, terdapat paling tidak dalam dua frequent 2-itemset. Karena hanya satu frequent 2-itemset yang mengandung Beer, maka semua candidate itemset yang melibatkan Beer haruslah infrequent. 3. Fk-1 × Fk-1 Method Prosedur pembangkitan kandidat dalam fungsi apriori-gen menggabungkan sepasang frequent (k-1)itemset hanya jika k-2 item pertama-nya identik. Misalkan A={a1,a2,….ak-1} dan B={b1,b2,…..,bk-1} adalah sepasang frequent (k-1)itemset. A dan B digabung jika memenuhi kondisi berikut ai = bi (untuk i=1,2,…..,k-2) dan ak-1 ≠ bk-1. Dalam Gambar 5.8 frequent itemset {Bread, Diapers} dan {Bread, Milk} digabung untuk membentuk candidate 3-itemset {Bread, Diapers, Milk}. Algoritma tidak menggabungkan {Beer, Diapers} dengan {Diapers, Milk} karena item pertama dalam kedua itemset berbeda. Sebenarnya, jika {Beer, Diapers, Milk} merupakan kandidat yang akan bertahan, itemset tersebut dapat diperoleh dengan menggabungkan {Beer, Diapers} dengan {Beer, Milk}. Contoh di atas memberikan ilustrasi sifat kelengkapan dari prosedur pembangkitan kandidat dan keunggulan menggunakan urutan leksikal untuk menghindari kandidat yang duplikat. Bagaimanapun, karena setiap kandidat diperoleh dengan menggabungkan sepasang frequent (k-1)itemset, maka perlu dilakukan langkah tambahan dalam pemangkasan kandidat untuk memastikan bahwa k-2 subset yang tersisa adalah frequent. Modul Kuliah Data Mining 97 Gambar 5.8 Metode Fk-1 x Fk-1 5.2.4 Support Counting Penghitungan nilai support count (Support counting) adalah proses menentukan frekuensi kejadian bagi setiap candidate itemset yang bertahan dari tahap pemangkasan kandidat dalam fungsi apriori-gen. Penghitungan support count di-implementasikan dalam langkah 6 sampai 11 dari Algoritma 1. Satu pendekatan untuk melakukan penghitungan support count adalah dengan membandingkan masing-masing transaksi dengan setiap candidate itemset (Gambar 2) dan memperbarui support count dari kandidat yang terdapat dalam transaksi. Pendekatan ini memerlukan sumberdaya komputasi yang besar, terutama jika jumlah transaksi dan kandidat besar. Pendekatan alternatif adalah dengan menghitung itemset yang terkandung dalam setiap transaksi dan menggunakannya untuk memperbarui support count dari candidate itemset masing-masing. Sebagai ilustrasi, terdapat transaksi t yang ⎛ 5⎞ mengandung lima item {1,2,3,5,6}. Terdapat ⎜⎜ ⎟⎟ =10 itemset berukuran 3 dalam ⎝ 3⎠ transaksi ini. Beberapa itemset mungkin berhubungan dengan candidate 3-itemset yang sedang diperiksa, dalam kasus ini support count dinaikkan.Subset lainnya dari t yang tidak berhubungan dengan kandidat manapun dapat diabaikan. Gambar 5.9 memperlihatkan cara sistematis untuk mencacah 3-itemset yang terkandung dalam t. Diasumsikan bahwa masing-masing item diurutkan menaik secara leksikal. Sebagai ilustrasi, diberikan t = {1,2,3,5,6}, seluruh 3-itemset yang terkandung dalam t harus diawali dengan item 1,2, atau 3. Tidak mungkin membentuk 3-itemset yang diawali dengan 5 atau 6, karena hanya terdapat dua item dalam yang diawali dengan 5 atau 6, karena hanya terdapat dua item dalam t yang label-nya lebih besar atau sama dengan 5. Jumlah cara untuk menentukan item pertama dari 3-itemset di-ilustrasikan oleh struktur prefix Level 1 dalam Gambar 5.9. Sebagai contoh, 1 2 3 5 6 menyatakan 3-itemset yang diawali dengan 1, dan diikuti oleh dua item selanjutnya yang dipilih dari himpunan {2 3 5 6}. Setelah menetapkan item pertama, stuktur prefix Level 2 merepresentasikan banyaknya cara untuk memilih item kedua. Sebagai contoh, 1 2 3 5 6 merujuk Modul Kuliah Data Mining 98 itemset yang diawali dengan prefix {1 2} dan diikuti oleh item 3,5 atau 6. Akhirnya, struktur prefix Level 3 menyatakan set lengkap 3-itemset dalam t. Sebagai contoh, 3-itemset yang dimulai dengan prefix {1 2} adalah {1,2,3}, {1,2,5} dan {1,2,6}, sedangkan yang dimulai dengan prefix {2 3} adalah {2,3,5} dan {2,3,6}. Gambar 5.9 Penghitungan subset dengan tiga item dari transaksi t. Struktur prefix yang ditampilkan dalam Gambar 9 menunjukkan bagaimana itemset dalam transaksi dalam dicacah secara sistematis, yaitu dengan menentukan item satu per satu, dari item paling kiri ke item paling kanan. Namun kita tetap perlu menentukan apakah masing-masing 3-itemset yang tercacah berhubungan dengan candidate itemset yang ada. Jika 3-itemset tercacah cock dengan sebuah candidate itemset maka support count untuk kandidat tersebut dinaikkan. Operasi pencocokan ini dalam dilakukan secara efisien menggunakan struktur hash tree. 5.3 Pembangkitan Aturan Bagian ini menjelaskan bagaimana meng-ekstrak aturan asosiasi (association rule) dari frequent itemset yang diberikan. Setiap frequent k-itemset Y, dapat menghasilkan sampai dengan 2k-2 aturan asosiasi, dengan mengabaikan aturan yang memiliki anteseden atau konsekuen kosong (ØÆ Y atau YÆ Ø). Aturan asosiasi dapat di-ekstrak dengan membagi itemset Y ke dalam dua sub-set yang tidak kosong, yaitu X dan (Y-X), sehingga XÆ Y-X memenuhi nilai ambang confidence. Perlu dicatat bahwa semua aturan harus telah memenuhi nilai ambang support karena aturan tersebut dibangkitkan dari frequent itemset. Contoh 5.3: Ditetapkan X={1,2,3} merupakan frequent itemset. Terdapat enam kandidat aturan asosiasi yang dapat dibangkitkan dari X yaitu : {1,2}Æ{3}, {1,3}Æ{2}, {2,3}Æ{1}, {1}Æ{2,3}, {2}Æ{1,3}, dan {3}Æ{1,2}. Karena setiap support Modul Kuliah Data Mining 99 kandidat aturan asosiasi di atas sama dengan support bagi X, maka aturan di atas pastilah memenuhi support treshold. Menghitung confidence bagi aturan asosiasi tidak memerlukan pembacaan dataset lagi. Perhatikan aturan {1,2}Æ{3}, yang dibangkitkan dari frequent itemset X={1,2,3}. Confidence bagi aturan ini adalah σ({1,2,3})/ σ({1,2}). Karena {1,2,3} frequent, sifat anti-monoton bagi support menjamin bahwa {1,2} juga frequent. Karena support count bagi kedua itemset telah ditemukan selama kegiatan pembangkitan itemset, maka tidak perlu lagi membaca seluruh dataset. 5.4 Pemangkasan berdasarkan Confidence Tidak seperti pengukuran support, confidence tidak memiliki sifat monoton. Sebagai contoh, confidence aturan XÆ Y dapat lebih besar, lebih kecil atau sama dengan confidence aturan dimana dan . Meskipun demikian, jika kita membandingkan aturan-aturan yang dibangkitkan dari frequent itemset Y yang sama, maka teorema berikut berlaku bagi ukuran confidence Teorema 5.2: Jika aturan XÆ Y-X tidak memenuhi nilai ambang confidence, maka aturan X’Æ Y-X’, dimana X’ adalah subset dari X, pastilah juga tidak memenuhi nilai ambang confidence. 5.5 Pembangkitan Aturan dalam Algoritma Apriori Algoritma Apriori menggunakan pendekatan level-wise untuk membangkitkan aturan asosiasi, dimana masing-masing level berhubungan dengan jumlah item yang menjadi konsekuen aturan. Awalnya, seluruh aturan dengan confidence tinggi yang hanya memiliki satu item pada sisi konsekuen, di-ekstrak. Aturan ini nanti akan digunakan untuk membangkitkan aturan kandidat yang baru. Sebagai contoh, jika {acd}Æ{b} dan {abd}Æ {c} merupakam aturan dengan confidence tinggi, maka aturan kandidat {ad}Æ{bc} dibangkitkan dengan menggabungkan konsekuen dari kedua aturan. Gambar 10 memperlihatkan struktur lattice untuk aturan asosiasi yang dibangkitkan dari frequent itemset {a,b,c,d}. Jika sembarang node dalam lattice memiliki confidence rendah, maka menurut Teorema 2, seluruh subgraph yang terentang oleh node tersebut dapat langsung dipangkas. Sebagai contoh, jika confidence untuk {bcd} Æ{a} rendah. Seluruh aturan yang mengandung item a dalam konsekuen-nya, termasuk {cd}Æ{ab}, {bd}Æ{ac}, {bc}Æ{ad} dan {d}Æ{abc} dapat dihilangkan. Pseucode untuk pembangkitan aturan asosiasi dapat dilihat pada Algoritma 5.2 dan 5.3. Perhatikan kesamaan antara prosedur ap-genrules pada Algoritma 5.3 dengan prosedur apriori-gen untuk membangkitkan frequent itemset pada Algoritma 5.1. Perbedaannya adalah, kita tidak perlu melakukan pembacaan ulang seluruh dataset untuk menghitung confidence dari aturan kandidat. Tentu saja, kita menentukan confidence untuk setiap aturan berdasarkan support count yang telah dihitung selama pembangkitan frequent itemset. Modul Kuliah Data Mining 100 Gambar 5.10 Pemangkasan aturan asosiasi menggunakan ukuran confidence. Algoritma 5.2. Pembangkitan aturan dalam Algoritma Apriori Algoritma 5.3. Prosedur ap-genrules(fk,Hm) 5.6 Contoh : Congressional Voting Records Bagian ini menunjukkan hasil penerapan analisis asosiasi pada data voting anggota Kongres Amerika (Congressional Voting Records). Setiap transaksi berisi informasi tentang afiliasi partai (Partai Republik atau Partai Demokrat) dari anggota kongres dan catatan pilihan voting yang dilakukan oleh masing-masing anggota (ada 16 isu utama). Terdapat 435 transaksi dan 34 item dalam dataset. Himpunan item dapat dilihat pada Tabel 5.3. Modul Kuliah Data Mining 101 Tabel 5.3 Atribut biner dari Congressional Voting Record USA tahun 1984 Algoritma Apriori diterapkan pada dataset dengan minsup = 30% dan minconf = 90%. Beberapa aturan dengan confidence tinggi yang berhasil di-ekstrak oleh algoritma disajikan pada Tabel 5.4. Tabel 5.4 Aturan asosiasi yang di-ekstrak dari Congressional Voting Record USA tahun 1984 5.7 Evaluasi Pola Asosiasi Algoritma analisis asosiasi memiliki potensi untuk membangkitkan pola (pattern) dalam jumlah besar. Sebagai contoh, meskipun dataset pada Tabel 1 hanya berisi enam item, dataset tersebut dapat menghasilkan ribuan aturan asosiasi pada nilai support dan confidence tertentu. Dengan ukuran dan dimensi basisdata yang mungkin sangat besar, mungkin diperoleh ribuan atau jutaan pola yang kebanyakan tidak menarik. Menyaring pola untuk mengidentifikasi pola yang paling menarik bukanlah pekerjaan yang sederhana karena pola yang tidak menarik bagi seseorang mungkin menjadi menarik bagi orang lain (“one person’s trash might be another person’s treasure”). Karena itu perlu ada kriteria yang diterima secara umum untuk menguji kualitas dari pola asosiasi. 5.7.1 Argumen Statistik Kriteria pertama yang dapat ditetapkan adalah argumen statistik. Pola yang melibatkan himpunan item yang saling independen (mutually independent) atau mencakup sangat sedikit transaksi dianggap tidak menarik karena mungkin menangkap hubungan yang semu dalam data. Pola seperti itu dapat dihilangkan dengan menerapkan ukuran kemenarikan objektif (objective interestingness measure). Ukuran kemenarikan objektif menggunakan statistik yang diturunkan dari data untuk menentukan apakah sebuah pola menarik. Contoh ukuran kemenarikan objektif adalah support, confidence dan correlation. Beberapa Modul Kuliah Data Mining 102 ukuran simetrik bagi itemset {A,B} dapat dilihat pada Tabel 5.5. Sedangkan contoh ukuran asimetrik bagi aturan AÆB dapat dilihat pada Tabel 5.6. Tabel 5.5 Contoh symmetric objective measures bagi itemset {A,B} Tabel 5.6 Contoh asymetric objective measures bagi aturan AÆB 5.7.2 Argumen Subjektif Kriteria kedua yang dapat ditetapkan adalah argumen subjektif. Pola secara subjektif dianggap tidak menarik kecuali aturan tersebut mengungkap informasi yang tidak terduga (unexpected information) tentang data, atau memberikan pengetahuan yang berguna sehingga memicu tindakan yang menguntungkan. Contoh, aturan {Butter}Æ{Bread} mungkin tidak menarik, meskipun memiliki nilai support dan confidence yang tinggi, karena pola tersebut terlihat umum. Pada sisi lain, aturan {Diapers}Æ{Beer} menarik karena hubungan tersebut tidak terduga dan dapat meningkatkan penjualan silang (cross-selling). Menyertakan pengetahuan subjektif dalam evaluasi pola merupakan tugas yang sukar karena memerlukan sejumlah informasi dari ahli bidang yang bersangkutan. Berikut adalah beberapa pendekatan untuk menyertakan pengetahuan subjektif dalam pekerjaan pencarian pola 4. Visualisasi. Pendekatan ini memerlukan lingkungan yang user-frienly untuk memudahkan domain expert memeriksa pola yang ditemukan. 5. Template-based approach. Pendekatan ini mengijinkan pengguna untuk membatasi jenis pola yang di-ekstrak oleh algoritma data mining. Daripada melaportkan seluruh aturan yang di-ekstrak, hanya aturan yang memenuhi template yang telah ditentukan oleh pengguna yang disajikan ke pengguna. Modul Kuliah Data Mining 103 6. Subjective interestingness measure. Ukuran subjektif didefinisikan berdasarkan domain information seperti hirarki konsep atau profit margin dari item. Ukuran ini kemudian dapat digunakan untuk menyaring pola yang umum dan non-actionable. 5.6 Topik Riset Topik riset dalam data mining terus berkembang. Topik isu untuk pola asosiasi dapat dilihat pada Gambar 5.11. Gambar 5.11 Topik riset dalam mining association pattern Penutup – Soal Latihan Tugas Individu Jawablah pertanyaan berikut secara singkat dan jelas. 1. Apa yang dimaksud dengan confidence dan support dalam teknik asosiasi. 2. Berikan contoh sebuah aturan asosiasi dari data set transaksi swalayan yang memenuhi kondisi berikut: a. Sebuah aturan yang memiliki support yang tinggi dan confidence yang tinggi b. Sebuah aturan yang memiliki support yang tinggi dan confidence yang rendah c. Sebuah aturan yang memiliki support yang rendah dan confidence yang tinggi Modul Kuliah Data Mining 104 d. Sebuah aturan yang memiliki support yang rendah dan confidence yang rendah Jelaskan apakah aturan-aturan demikian dapat dinyatakan sebagai aturan yang menarik. Tugas Kelompok 1. Sebuah basis data terdiri dari 5 transaksi, sebagai berikut TID T100 T200 T300 T400 T500 Item_yang_dibeli {Mie, Susu, Mentega, Roti, Saus, Kecap} {Kopi, Susu, Mentega, Roti, Saus, Kecap} {Mie, Gula, Roti, Saus } {Mie, Sirup, Snack, Roti, Kecap} {Snack, Susu, Susu, Roti, Air Mineral, Saus} Misalkan min_sup = 60% dan min_conf = 80%. Tentukan semua frequent itemset dengan menggunakan algoritme Apriori. 2. Diberikan data set transaksi berikut: a. Hitunglah support untuk itemset {e}, {b,d}, dan {b, d, e}. b. Berdasarkan hasil dari point a, hitunglah confidence untuk aturan asosiasi {b, d} Æ {e} dan {e} Æ {b, d}. 3. Perhatikan frequent 3-itemset: {1, 2, 3}, {1, 2, 4}, {1, 2, 5}, {1, 3, 4}, {1, 3, 5}, {2, 3, 4}, {2, 3, 5}, {3, 4, 5} Asumsikan bahwa hanya terdapat lima aitem dalam data set. a. Tentukan semua 4-itemset kandidat yang diperoleh dengan prosedur generasi kandidat dengan mengunakan strategi penggabungan Fk-1 × F1. b. Tentukan semua 4-itemset kandidat yang diperoleh dengan prosedur generasi kandidat dalam Apriori. Modul Kuliah Data Mining 105