BAB II : TINJAUAN PUSTAKA
II. 3 .3. Asosiasi
II. 4. Algoritma Penambangan Aturan Asosiasi Langka
II. 4. Algoritma Penambangan Aturan Asosiasi Langka
Aturan langka dalam sebuah basis data sulit untuk ditemukan, oleh karena itu banyak peneliti yang mencoba mengamati dan mencoba menemukan berbagai macam pendekatan untuk menemukan aturan langka tersebut. Pendekatan yang digunakan untuk melakukan penambangan aturan langka dalam basis data sangatlah beraneka ragam, dimana setiap pendekatan memiliki keunggulan dan
kelemahan masing-masing. Penambangan aturan asosiasi langka memiliki beberapa pendekatan diantaranya:
II. 4.1 Apriori Inverse
Misal I = { } merupakan semesta dari item dan D adalah himpunan transaksi, di mana setiap transaksi T berisi satu set item yang memenuhi aturan T I.
Gambar 2.3. Algoritma Apriori Inverse
Sumber : Koh & Pears (2010)
Rule asosiasi adalah implikasi berbentuk A B dimana A I, B I dan dengan ketentuan A disebut sebagai anteseden dari aturan yang terbentuk, dan B sebagai konsekuen. Aturan A B berlaku dalam transaksi D dengan confidence c % jika c % dari transaksi di D yang mengandung X juga mengandung Y.Aturan A B memiliki support s % dalam transaksi D, jika s % transaksi di D berisi AB. Dalam konteks penambangan aturan asosiasi langka, semua aturan R seperti A B harus memenuhi dua syarat di bawah ini:
C(R) ≥ CLower dimana CLower adalah lower bound confidence threshold
atau biasa disebut sebagai minimum confidence yang didefinisikan nilainya oleh pengguna yang melakukan penambangan data. Minimum confidence
menandakan ambang batas (threshold) dari sebuah aturan asosiasi untuk menentukan aturan asosiasi yang kuat (strong association rule).
S(R) ≤ SUpper dimana SUpper adalah upper bound support threshold atau biasa disebut maximum support threshold yang digunakan sebagai batas atas support dari himpunan item yang ada dalam kandidat aturan.
Maximum support digunakan untuk membatasi nilai support dari aturan yang ada sehingga hanya aturan tertentu saja yang bisa dijadikan atau diputuskan sebagai aturan asosiasi dari sebuah dataset.
Selain yang dijelaskan diatas, dalam algoritma Apriori Inverse juga menerapkan penggunaan support constraint lain, yang disebut MinAbsSup yang didefinisikan sebagai jumlah minimum kemunculan dari itemset (A, B) agar bisa dipertimbangkan dalam prose pembentukan aturan. Batasan (constraint) ini berasal dari fisher test untuk signifikansi co-occurrence darisetiap item.
Karena kita berhadapan dengan kandidat himpunan item yang memiliki nilai support rendah, kemungkinan bahwa suatu itemset muncul akibat suatu ketidaksengajaan lebih tinggi dibandingkan kandidat himpunan item dengan nilai
support yang lebih tinggi. Himpunan item yang terjadi dalam dataset yang disebabkan karena ketidaksengajaan harus dipangkas atau dibersihkan selama proses pembentukan kandidat himpunan item. Karena pembentukan kandidat itemset jangka panjang tidak dapat meningkatkan nilai support dari item tersebut,
maka semua ekstensi nilai support diperbolehkan kecuali yang termasuk di bawah nilai minimum absolut support. Itemset yang masuk dalam pengecualian ini akan dipangkas atau dihapus dari candidate itemset, dan tidak digunakan untuk memperluas himpunan item pada putaran berikutnya. Berikut adalah proses perhitungan MinAbsSup dihitung menggunakan fungsi fisher test. Pertama hitung probabilitas dari dua transaksi (A dan B) dapat terjadi bersamaan secara kebetulan dalam satu waktu tertentu (c) atau dikenal dengan istilah "probability of chance collision". Kita bisa menghitung probabilitas ini menggunakan PCC dalam (2.4). Probabilitas bahwa A dan B akan terjadi bersama-sama persis sebanyak c kali adalah:
.........(2.4)
Dimana :
C = prediksi jumlah minimum kemunculan itemset a dan b dalam transaksi di dataset agar tidak dianggap sebagai kemunculan yang bersifat kebetulan, dengan aturan 0 ≤ c ≤ a.
N = jumlah keseluruhan transaksi dalam dataset, sedangkan a dan b adalah jumlah kemunculan masing – masing items yang akan digabungkan menjadi sebuah itemset baru. Persamaan ini adalah perhitungan biasa untuk probabilitas yang sesuai untuk sebuah table dengan kontingensi 2 × 2.
Dimana :
N = jumlah keseluruhan transaksi dalam dataset.
a dan b = jumlah kemunculan masing – masing item yang akan digabungkan menjadi sebuah itemset baru.
p = memiliki nilai tetap yaitu 0,001,
m dan i = merupakan prediksi jumlah minimum kemunculan itemset a dan b dalam transaksi di dataset agar tidak dianggap sebagai kemunculan yang bersifat kebetulan, dengan aturan 0 ≤ m ≤ a.
Minimum absolute support dihitung berdasarkan nilai pcc dari setiap itemset yang akan digabungkan menjadi large itemset. Perluasan untuk setiap item menggunakan cara yang sama dalam algoritma Apriori. Sebagai contoh, 3-itemset
{1, 3, 4} dan {1, 3, 6} dapat diperluas untuk membentuk 4-itemset {1, 3, 4, 6}, tetapi {1, 3, 4} dan {1, 2, 5} tidak akan menghasilkan 4-itemset karena tidak ada kesamaan prefik pada item kedua.
II. 4.2 Algoritma Apriori Inverse With Clustring (APIC)
Algoritma APIC (Apriori Inverse with Clustering) terdiri dari beberapa proses besar seperti digambarkan pada flowchart dibawah ini:
Dataset Transaction Clustering Apriori Inverse Rare Association Rules Start End
Gambar 2.4. Flow chart Garis Besar Algoritma Apriori Inverse with Clustering (APIC)
Dalam garis besar algoritma APIC (Apriori Inverse with Clustering), setiap tahapnya memiliki urutan langkah yang berbeda, berikut adalah langkah dari setiap tahap dalam algoritma APIC:
A. Transaction Clustering
Proses transaction clustering Terdiri dari dua tahap yaitu seed generation phase dan allocation phase, dimana setiap tahap memiliki langkah kerja yang berbeda. Berikut adalah langkah kerja detil dari setiap tahap dalam proses
transaction clustering: 1. Seed Generation Phase
Tahap seed generation phase terdiri dari beberapa langkah detil yang bertujuan untuk menghasilkan seed sebagai inisialisasi titik pusat awal klaster. Berikut adalah langkah – langkah dari tahap seed generation phase:
a. Cari 1-large itemset sebagai inisialisasi seed yang akan digunakan sebagai kandidat titik pusat klaster dengan cara mencari item dari setiap transaksi dalam dataset yang memiliki support count >=
, dimana:
|D| = jumlah transaksi yang ada dalam dataset,
= minimum support threshold sistem yang memiliki nilai 0< <1. b. Cari k-large itemset dalam transaksi yang ada di dataset yang nantinya akan dijadikan sebagai seed atau centroid dalam klaster.
Dimana k bernilai 2,3,…,k. Proses pencarian large itemset ini sama dengan proses pencarian large item dalam algoritma apriori hanya saja ada tambahan batasan saat melakukan perluasan dari itemset, batasan tersebut dihitung dengan aturan di bawah ini:
.........(2.7) .........…………..(2.8)
.........(2.9) Dimana:
= koefisien korelasi chi square,
= chi square cut-off threshold pada c% confidence level dengan nilai 3,84,
= user - defined support threshold yang nilainya ditetapkan oleh pengguna sistem pada tahap awal penambangan data,
= nilai relative support dari kandidat gabungan itemset baru,
dan = nilai relative support dari masing –
masing item yang akan diperluas menjadi itemset baru.
c. Dapatkan anggota dari k-large itemset terakhir. Anggota large itemset ini merupakan large itemset yang didalamnya terdapat
itemset yang akan digunakan sebagai titik pusat (centroid) awal untuk klaster. Untuk langkah tahap seed generation phase secara sederhana dapat dilihat dalam pseudo code yang diambil dari jurnal (Koh & Pears,2010) di bawah ini:
2. Allocation Phase
Tahap allocation phase terdiri dari beberapa langkah detil yang bertujuan untuk menempatkan transaksi dalam dataset kedalam klaster sehingga menghasilkan klaster secara optimum dengan anggota kelompok yang tepat dan sesuai dengan titik pusat dari setiap klaster yang tersedia. Berikut adalah langkah – langkah dari tahap allocation phase:
a. Berdasar inti dari klaster yang telah terbentuk dalam tahap seed generation phase, lakukan alokasi semua transaksi dalam dataset kedalam setiap klaster dengan cara melakukan penghitungan
similarity antara titik pusat (centroid) dari klaster dengan seluruh transaksi dalam dataset menggunakan persamaan similarity
dibawah ini :
......... (2.10)
Dimana :
t = transaksi dalam dataset,
Cĸ = titik pusat dari klaster,
|t Cĸ| = jumlah item yang sama antara transaksi dengan item dalam titik pusat klaster,
|t Cĸ| = jumlah gabungan dari item yang ada di dalam transaksi dengan item yang ada dalam titik pusat klaster.
Semakin besar nilai similarity antara centroid dan transaksi maka transaksi akan dialokasikan kedalam klaster yang memiliki
centroid tersebut. Klaster yang tidak memiliki anggota langsung dihapus dalam langkah ini.
b. Hitung nilai optimum dari klaster yang dihasilkan dengan menggunakan persamaan di bawah ini :
Dimana :
J = nilai fitness function, k = banyaknya klaster,
sim(t, cj) = nilai similarity antara transaksi dalam dataset dengan
centroid yang ada dalam setiap klaster,
|Cj| = jumlah item dalam centroid dalam klaster.
Perhitungan ini menggunakan rata - rata nilai similarty terhadap
centroid dari klaster. Nilai optimum awal sebelumnya
dideklarasikan dengan nilai 0 pada putaran pertama.
c. Bandingkan nilai optimum yang didapat dalam langkah 2, Jika nilai optimum sekarang <= nilai optimum sebelumnya proses pengelompokan transaksi (allocation transaksi) berhenti, jika nilai optimum sekarang > nilai optimum sebelumnya, maka dilakukan tahap pengubahan centroid. Centroid lama digantikan dengan
centroid yang baru yang berasal dari 1-large itemset yang ada dalam transaksi dari masing – masing klaster dengan cara mencari item dalam transaksi yang ada dalam klaster yang memiliki support count >= , dimana :
|D| = jumlah transaksi yang ada dalam klaster,
= minimum support threshold sistem yang memiliki nilai 0< <1. d. Lakukan langkah 1 sampai 3, hingga syarat dalam langkah 3 yaitu
proses alokasi transaksi berhenti dan simpan semua klaster yang dihasilkan dalam tahap alokasi transaksi.
Untuk lebih jelasnya berikut adalah pseudo code dari langkah –
langkah pada tahap allocation phase yang diambil dari jurnal (Koh & Pears,2010):
B. Apriori Inverse
Proses Apriori inverse hampir sama dengan proses pada apriori, yang membedakan adalah nilai minimum support diganti dengan minimum absolute support, selain itu terdapat maximum support sebagai pembatas perluasan item pada proses apriori inverse. Apriori inverse adalah langkah lanjutan setelah proses
transaction clastering. Algoritma apriori inverse diterapkan kedalam setiap klaster yang ada, sehingga aturan langka dapat dihasilkan dari setiap klaster.
itemset dan membatasi agar tidak terjadi pembengkakan jumlah itemset, dan menggunakan MinAbsSup untuk melakukan pemangkasan itemset yang tidak diperlukan dalam proses pembentukan aturan.
Berikut adalah langkah kerja detil dari setiap tahap dalam proses apriori inverse:
1. Cari 1-large itemset dengan cara mencari item dari setiap transaksi dalam dataset yang memiliki support count <= |D| x Maxsup, dimana :
|D| = jumlah transaksi yang ada dalam klaster,
Maxsup = maximum support threshold sistem yang nilainya ditentukan oleh pengguna.
2. Cari k-large itemset dalam transaksi yang ada di dalam klaster, dimana k
bernilai 2,3,…,k. Cara mencari k-large itemset ini sama dengan proses pencarian large item dalam algoritma apriori, hanya saja nilai support digantikan dengan nilai MinAbsSup dengan menggunakan persamaan di bawah ini:
... (2.5)
Dimana :
N = jumlah keseluruhan transaksi dalam dataset,
a dan b = jumlah kemunculan masing – masing items yang akan digabungkan menjadi sebuah itemset baru,
m dan I = merupakan prediksi jumlah minimum kemunculan itemset a dan b dalam transaksi di dataset agar tidak dianggap sebagai kemunculan yang bersifat kebetulan, dengan aturan 0 ≤ m ≤ a.
Untuk menghitung MinAbsSup lakukan perhitungan pcc dari setiap pasangan item yang akan digabungkan menjadi itemset baru dengan menggunakan persamaan dibawah ini:
.........(2.4)
Dimana :
C = prediksi jumlah minimum kemunculan itemset a dan b dalam transaksi di dataset agar tidak dianggap sebagai kemunculan yang bersifat kebetulan, dengan aturan 0 ≤ c ≤ a.
N = jumlah keseluruhan transaksi dalam dataset, sedangkan a dan b adalah jumlah kemunculan masing – masing items yang akan digabungkan menjadi sebuah itemset baru
3. Hapus Semua itemset yang memiliki nilai support count < MinAbsSup dan memiliki nilai support count > maximum support.
4. Lakukan langkah 2, 3, dan 4 sampai tidak ada item yang dapat diperluas menjadi itemset baru. Untuk penggambaran secara detil dari setiap langkah proses apriori inverse, berikut adalah pseudo code dari proses apriori inverse yang diambil dari jurnal (Koh & Pears,2010):
5. Dapatkan semua k-large itemset yang memenuhi syarat perluasan item pada langkah 2, dan hitung nilai confidence masing – masing itemset
dalam setiap large itemset dengan persamaan dibawah ini :
...(2.3). Dimana confidence dari aturan asosiasi adalah rasio dari record
yang mengandung dengan total record yang mengandung .
6. Simpan itemset dengan nilai confidence >= minimum confidence yang ditentukan oleh pengguna.
II. 4.3 Contoh Penerapan Algoritma APIC (Apriori Inverse with Clustering)
Berikut akan ditunjukkan cara kerja algoritma APIC untuk menemukan himpunan item langka dan pembangkitan aturan asosiasi langka menggunakan dataset zoo yang didapat dari UCIMachine Learning Repository yang berada pada
website archive.ics.uci.edu/ml/machine-learning-databases. Pengaturan awal
Minsup dan minconf yang ditentukan berturut – turut 10% dan 90%. Sedangkan minsup threshold awal dan Maxsup ditentukan berturut - turut 9% dan 30%.
Dataset zoo terdiri dari 101 transaksi, dan 18 atribut. Dataset zoo
merupakan dataset yang berisi data tentang hewan. Berikut adalah proses penambangan data pada dataset zoo menggunakan algoritma APIC:
A. Transaction Clustering
1. Seed Generation Phase
Hasil dari setiap langkah dalam tahap seed generation phase adalah: a. Cari 1-large itemsets dengan nilai minimum support threshold
( ) = 0.04950495. Sebagai contoh item TRUE, memiliki jumlah dalam transaksi sebanyak 43 transaksi sehingga memiliki support sebesar 0.425742574 yang berasal dari Supp(TRUE) = freq(TRUE) / Jumlah transaksi yaitu 101, maka hasilnya adalah 0.425742574 dan item TRUE masuk menjadi anggota 1-Large itemset. Semua itemset yang memiliki nilai
support <= 0.04950495 dihapus dari kandidat Frequent
1-Itemsets. Dengan demikian didapat anggota Frequent
1-Itemsets seperti dibawah ini:
Frequent 1-Itemsets: 1. Support: 0.42574257425742573 {true(Hair)}, 2. Support: 0.5742574257425742 {false(Hair)}, 3. Support: 0.801980198019802 {false(Feathers)}, 4. Support: 0.19801980198019803 {true(Feathers)}, 5. Support: 0.4158415841584158 {false(Eggs)}, 6. Support: 0.5841584158415841 {true(Eggs)},
7. Support: 0.40594059405940597 {true(Milk)}, 8. Support: 0.594059405940594 {false(Milk)}, 9. Support: 0.7623762376237624 {false(Airborne)}, 10. Support: 0.2376237623762376 {true(Airborne)}, 11. Support: 0.6435643564356436 {false(Aquatic)}, 12. Support: 0.3564356435643564 {true(Aquatic)}, 13. Support: 0.5544554455445545 {true(Predator)}, 14. Support: 0.44554455445544555 {false(Predator)}, 15. Support: 0.6039603960396039 {true(Toothed)}, 16. Support: 0.39603960396039606 {false(Toothed)}, 17. Support: 0.8217821782178217 {true(Backbone)}, 18. Support: 0.1782178217821782 {false(Backbone)}, 19. Support: 0.7920792079207921 {true(Breathes)}, 20. Support: 0.2079207920792079 {false(Breathes)}, 21. Support: 0.9207920792079208 {false(Venomous)}, 22. Support: 0.07920792079207921 {true(Venomous)}, 23. Support: 0.8316831683168316 {false(Fins)}, 24. Support: 0.16831683168316833 {true(Fins)}, 25. Support: 0.37623762376237624 {4(Legs)}, 26. Support: 0.22772277227722773 {0(Legs)}, 27. Support: 0.26732673267326734 {2(Legs)}, 28. Support: 0.09900990099009901 {6(Legs)}, 29. Support: 0.25742574257425743 {false(Tail)},
30. Support: 0.7425742574257426 {true(Tail)}, 31. Support: 0.8712871287128713 {false(Domestic)}, 32. Support: 0.12871287128712872 {true(Domestic)}, 33. Support: 0.43564356435643564 {true(Catsize)}, 34. Support: 0.5643564356435643 {false(Catsize)}, 35. Support: 0.40594059405940597 {mammal(Type)}, 36. Support: 0.12871287128712872 {fish(Type)}, 37. Support: 0.19801980198019803 {bird(Type)}, 38. Support: 0.09900990099009901 {invertebrate(Type)}, 39. Support: 0.07920792079207921 {insect(Type)}.
Frequent 1-Itemsets ini akan dianggap sebagai seed cluster 1. b. Cari k-large itemset dimana nilai k = 2, 3, 4,..,k dan nilai user
define support threshold = 10% . Sebagai contoh terdapat dua item yang akan digabungkan yaitu item TRUE dan FALSE(E) sebagai kandidat dari 2-large itemset, maka proses awalnya adalah melakukan perhitungan relative support dari masing –
masing item, RS(X) = SUP(X) / SUP (Subset X dengan
maximum support), karena item TRUE dan FALSE(E) belum memiliki subset, maka secara otomatis support dari X sekaligus menjadi relative support dari X, maka RS(TRUE) = Support
(TRUE) = 0.425742574, RS (FALSE(E) = Support
relative support dari itemset {TRUE,FALSE(T)}, maka
relative support nya dihitung sebagi berikut:
RS(TRUE,FALSE(T)) =
Support(TRUE,FALSE(T))/support(TRUE), karena TRUE
adalah subset dari itemset gabungan {TRUE,FALSE(T)} yang memiliki nilai support paling besar. Setelah nilai dari relative support ditetapkan cek nilai relative support apakah lebih dari
user define support threshold atau tidak dengan cara
mengurangkan nilai dari relative support himpunan item gabungan dengan nilai relative support dari subset nya, hasil pengurangan ini harus lebih besar dari nilai support threshold
yang dimasukan. Sebagai contoh pembandingan relative support dengan user define support threshold adalah sebagai berikut:
RS(TRUE,FALSE(T)) - RS(TRUE), RS(TRUE,FALSE(T)) - RS (FALSE(E) hasilnya harus lebih besar dari user define support threshold yaitu > 0.1. Setelah proses pengecekan ini maka proses berikutnya adalah mengukur tingkat korelasi asosiasi dari dua item yang akan digabungkan menjadi itemset
dengan menggunakan persamaan chisquare correlation. Berikut adalah cara perhitungannya:
Uji Chi square FALSE(E)
FALSE(E) Not FALSE(E) total
TRUE 38 5 43
NOT TRUE 4 54 58
total 42 59 101
X² 67.47937164
status Chi Yes Cut off 3.84
Hitung berapa kali itemset {TRUE, FALSE(E)} muncul, berapa kali masing – masing subset dari itemset gabungan muncul dalam transaksi. Setelah itu lakukab perhitungan dengan rumus dibawah ini:
, dari rumus ini maka dapat dihitung X² = ((38-43*42/101)²/(43*42/101)) + ((5-43*59/101)²/(43*59/101)) + ((4-58*42/101)²/(58*42/101)) + ((54-58*59/101)²/(58*59/101)) = 67.47937164.
Karena nilai dari X² >= 3.84, maka kedua item yang akan digabungkan yaitu {TRUE, FALSE(E)} memiliki hubungan asosiasi yang kuat dan bisa dimasukan dalam proses pembentukan aturan. Sebuah Itemset yang telah digabung dianggap memiliki hubungan asosiasi yang kuat apabila nilai dari korelasi chisquare lebih dari atau sama dengan nilai cutoff chisquare yaitu 3.84. Berikut adalah hasil 2-large itemset
setelah mengalami proses perhitungan dan penerapan batasan dalam setiap gabungan itemset.
Frequent 2-Itemsets:
1. Support: 0.8837209302325582{true(Hair), false(Eggs)} 2. Support: 0.9069767441860466{true(Hair), true(Milk)} 3. Support: 0.7209302325581396{true(Hair), 4(Legs)} 4. Support: 0.6818181818181818{true(Hair), true(Catsize)} 5. Support: 0.9069767441860466{true(Hair), mammal(Type)} 6. Support: 0.9152542372881357{false(Hair), true(Eggs)} 7. Support: 0.9333333333333335{false(Hair), false(Milk)}, 8. Support: 0.7586206896551725{false(Hair), false(Catsize)} 9. Support: 0.6666666666666667{true(Feathers),
true(Airborne)}
10. Support: 0.5{true(Feathers), false(Toothed)}
11. Support: 0.7407407407407407{true(Feathers), 2(Legs)} 12. Support: 1.0{true(Feathers), bird(Type)}
13. Support: 0.9523809523809524{false(Eggs), true(Milk)} 14. Support: 0.7142857142857143{false(Eggs), 4(Legs)} 15. Support: 0.7045454545454546{false(Eggs), true(Catsize)} 16. Support: 0.9523809523809524{false(Eggs),
mammal(Type)}
17. Support: 0.9666666666666667{true(Eggs), false(Milk)} 18. Support: 0.7796610169491526{true(Eggs), false(Catsize)}
19. Support: 0.7560975609756097{true(Milk), 4(Legs)} 20. Support: 0.7272727272727273{true(Milk), true(Catsize)} 21. Support: 1.0{true(Milk), mammal(Type)}
22. Support: 0.8{false(Milk), false(Catsize)} 23. Support: 0.5499999999999999{true(Airborne), false(Toothed)}
24. Support: 0.6666666666666666{true(Airborne), 2(Legs)} 25. Support: 0.6666666666666667{true(Airborne), bird(Type)} 26. Support: 0.5555555555555556{true(Aquatic),
false(Breathes)}
27. Support: 0.47222222222222227{true(Aquatic), true(Fins)} 28. Support: 0.5{true(Aquatic), 0(Legs)}
29. Support: 0.5{false(Toothed), 2(Legs)} 30. Support: 0.5{false(Toothed), bird(Type)}
31. Support: 0.33333333333333337{false(Backbone), false(Breathes)}
32. Support: 0.5555555555555556{false(Backbone), 6(Legs)} 33. Support: 0.6538461538461539{false(Backbone), false(Tail)} 34. Support: 0.5555555555555556{false(Backbone), invertebrate(Type)} 35. Support: 0.4444444444444445{false(Backbone), insect(Type)}
36. Support: 0.6190476190476191{false(Breathes), true(Fins)} 37. Support: 0.6956521739130435{false(Breathes), 0(Legs)} 38. Support: 0.6190476190476191{false(Breathes),
fish(Type)}
39. Support: 0.33333333333333337{false(Breathes), invertebrate(Type)}
40. Support: 0.6956521739130435{true(Fins), 0(Legs)} 41. Support: 0.7647058823529411{true(Fins), fish(Type)} 42. Support: 0.5909090909090909{4(Legs), true(Catsize)} 43. Support: 0.7560975609756097{4(Legs), mammal(Type)} 44. Support: 0.5652173913043478{0(Legs), fish(Type)} 45. Support: 0.7407407407407407{2(Legs), bird(Type)} 46. Support: 0.38461538461538464{6(Legs), false(Tail)} 47. Support: 0.7999999999999999{6(Legs), insect(Type)} 48. Support: 0.7272727272727273{true(Catsize),
mammal(Type)}
Frequent 2-Itemsets ini akan dianggap sebagai seed cluster 2. c. Pada 3-large itemset, proses penerapan batasan dan
perhitungannya sama dengan perhitungan dan penerapan batasan pada Frequent 2-Itemsets. Berikut adalah hasil dari
Frequent 3-Itemsets:
1. Support: 0.7999999999999999{true(Feathers), true(Airborne), false(Toothed)}
2. Support: 1.0{true(Feathers), false(Toothed), 2(Legs)} 3. Support: 0.888888888888889{true(Airborne), 2(Legs), bird(Type)}
4. Support: 0.7499999999999999{true(Aquatic), false(Breathes), 0(Legs)}
5. Support: 0.888888888888889{true(Aquatic), true(Fins), 0(Legs)}
6. Support: 1.0{false(Toothed), 2(Legs), bird(Type)} 7. Support: 0.7000000000000001{false(Backbone), false(Breathes), invertebrate(Type)}
8. Support: 0.7999999999999999{false(Backbone), 6(Legs), insect(Type)}
9. Support: 0.8125{false(Breathes), true(Fins), 0(Legs)} 10. Support: 1.0{false(Breathes), true(Fins), fish(Type)} 11. Support: 0.8125{false(Breathes), 0(Legs), fish(Type)}
Frequent 3-Itemsets ini akan dianggap sebagai seed cluster 3 Penggabungan itemset akan berhenti jika tidak ada itemset yang akan diperluas yang memenuhi syarat batasan yang ditentukan, yang terdapat pada langkah 2 pada tahap seed generation phase. Pada contoh ini, proses penggabungan itemset hanya sampai pada 3-large itemset, karena pada 4-large itemset tidak ada pasangan itemset yang memenuhi syarat batasan yang ditentukan. Anggota dari 3-large itemset inilah yang nantinya
akan menjadi centroid dalam setiap klaster. Banyaknya klaster tergantung pada banyaknya anggota dari large itemset terakhir, pada contoh ini terletak pada jumlah anggota dari 3-large itemset yaitu 11 klaster.
2. Allocation Phase
Tahap berikutnya adalah tahap allocation phase, yaitu tahap melakukan alokasi transaksi dalam dataset kedalam klaster. Berikut adalah contoh penerapan langkah tahap allocation phase kedalam dataset zoo.
a. Lakukan alokasi transaksi kedalam setiap klaster yang tersedia, tahap ini dilakukan dengan menghitung nilai similarity antara transaksi dalam dataset dengan centroid dari klaster. Perhitungan similarity menggunakan persamaan pada langkah 1 tahap allocation phase.
Berikut adalah contoh perhitungan similarity antara transaksi ke 12 dalam dataset dengan centroid {True(F), TRUE(A), FALSE(T)}.
Transaksi 12 memiliki anggota = {Chicken, FALSE, TRUE(F), TRUE(E), FALSE(M), TRUE(A), FALSE(AQ), FALSE(P), FALSE(T), TRUE(B), TRUE(BR), FALSE(V), FALSE(FI), 2, TRUE(TA), TRUE(D), FALSE(CA), bird}, sedangkan
centroid klaster memiliki anggota = {True(F), TRUE(A),
antara transaksi dan centroid) / ( jumlah gabungan itemset
anatara transaksi dan centroid – jumlah itemset yang sama antara transaksi dan centroid + 1).
Maka similarity = (3)/(18-3+1) = 0.1875. Perhitungan
similarity dilakukan terhadap semua transaksi terhadap semua
centroid dari klaster, transaksi akan dialokasikan terhadap semua klaster yang memberikan nilai similarity tertinggi dibandingkan klaster lainnya. Berikut adalah hasil dari alokasi transaksi pada putaran pertama.
Anggota klaster 2
Anggota klaster 4
Anggota klaster 6
Anggota klaster 7
Anggota klaster 9
Anggota klaster 11
b. Hitung nilai optimum klaster menggunakan fitness function
yang terdapat pada langkah 2 dalam tahap allocation phase. Dari 11 klaster yang terbentuk, dihitung nilai optimum klasternya dengan persamaan pada (2.11). nilai optimum klaster awal dinisialisasi dengan nilai 0. Berikut adalah contoh perhitungan nilai optimum dari klaster pada putaran ini:
J = (1/jumlah klaster) * ( jumlah rata - rata dari nilai similarity
antara transaksi dengan centroid klaster dari setiap klaster yang ada), maka J = (1/11) * ((0.1722222222222222) + (0.15576923076923072) + (0.15555555555555556) + (0.13967391304347826) + (0.14044444444444443) + (0.15576923076923072) + (0.16458333333333336) + (0.1875) + (0.16916666666666666) + (0.1875) + (0.16916666666666666)) = 0.16339556940643896, dimana 11 adalah jumlah klaster, dan 0.1722222222222222,
0.15576923076923072, 0.15555555555555556, 0.13967391304347826, 0.14044444444444443, 0.15576923076923072, 0.16458333333333336, 0.1875, 0.16916666666666666, 0.1875, 0.16916666666666666 adalah nilai rata - rata similarity dari setiap klaster.
c. Bandingkan nilai optimum klaster yang terbentuk dengan nilai optimum klaster sebelumnya. Dari putaran pertama ini didapat bahwa nilai optimum awal dibandingkan nilai optimum sekarang adalah lebih kecil sehingga perlu dilakukan perombakan centroid dari setiap klaster pada iterasi berikutnya, dengan cara mengganti centroid klaster dengan large itemset
yang dimiliki oleh transaksi pada setiap klaster. Perhitungan
large itemset dari setiap klaster memiliki proses yang sama dengan awal tahap inisial 1-large itemset pada tahap seed generation phase yang membedakan adalah |D|, nilai |D| dalam langkah ini adalah banyaknya transaksi yang terdapat dalam klaster yang akan diperbaharui centroid nya bukan jumlah transaksi dalam dataset.
d. Pada setiap iterasinya, hapus klaster yang tidak memiliki anggota
e. Lakukan langkah a sampai langkah d hingga syarat dalam langkah c yaitu nilai optimum sekarang <= nilai optimum awal terpenuhi.
f. Setelah proses transaction clustering selesai dengan terpenuhinya syarat dalam langkah c yaitu nilai optimum sekarang <= nilai optimum awal, maka klaster yang terbentuk pada putaran terakhir inilah yang akan digunakan sebagai klaster yang akan di tambang datanya sehingga dapat menghasilkan aturan asosiasi langka.
B. Apriori Inverse
Proses apriori inverse diterapkan terhadap semua klaster yang terbentuk pada proses transaction clustering, sehingga akan terbentuk aturan asosiasi langka dari masing-masing klaster. Jumlah klaster yang terbentuk setelah proses transaction clustering selesai adalah 8 klaster.,
Klaster 1
Klaster 3
Klaster 4
Klaster 6
Klaster 7
Klaster 8
Berikut adalah contoh penerapan apriori inverse kedalam datasetzoo yang telah mengalami proses transaction clustering:
Untuk setiap klaster, lakukan langkah dibawah ini:
1. Cari 1-large itemset, langkahnya sama seperti dalam algoritma apriori yaitu mencari large itemset akan tetapi terdapat perbedaan, pada inisialisasi awal large itemset. Dalam apriori menggunakan minsup