Data Mining : Algoritma Apriori
Algoritma
Apriori adalah algoritma paling terkenal untuk menemukan pola frekuensi tinggi.
Pola frekuensi tinggi adalah pola-pola item di dalam suatu database yang
memiliki frekuensi atau support di atas ambang batas tertentu yang disebut
dengan istilah minimum support.
Pola frekuensi tinggi ini digunakan untuk menyusun
aturan assosiatif dan juga beberapa teknik data mining lainnya.
Algoritma
Apriori dibagi menjadi beberapa tahap yang disebut iterasi atau pass. Tiap
iterasi menghasilkan pola frekuensi tinggi dengan panjang yang sama dimulai
dari pass pertama yang menghasilkan pola frekuensi tinggi dengan panjang satu.
Di iterasi pertama ini, support
dari setiap item dihitung dengan men-scan
database. Setelah support dari setiap item didapat, item yang memiliki support
diatas minimum support dipilih sebagai pola frekuensi tinggi dengan panjang 1
atau sering disingkat 1-itemset. Singkatan k-itemset berarti satu set yang
terdiri dari k item.
Iterasi kedua menghasilkan 2-itemset yang tiap
set-nya memiliki dua item. Pertama dibuat kandidat 2-itemset dari kombinasi
semua 1-itemset. Lalu untuk tiap kandidat 2-itemset ini dihitung support-nya dengan
men-scan database. Support disini artinya jumlah transaksi
dalam database yang mengandung kedua item dalam
kandidat 2-itemset. Setelah support dari semua kandidat 2-itemset didapatkan,
kandidat 2-itemset yang memenuhi syarat minimum support dapat ditetapkan
sebagai 2-itemset yang juga merupakan pola frekuensi tinggi dengan panjang 2.
Untuk selanjutnya pada iterasi ke-k dapat dibagi
lagi menjadi beberapa bagian :
- Pembentukan kandidat itemset, Kandidat k-itemset dibentuk dari kombinasi (k-1)-itemset yang didapat dari iterasi sebelumnya. Satu ciri dari algoritma Apriori adalah adanya pemangkasan kandidat k-itemset yang subset-nya yang berisi k-1 item tidak termasuk dalam pola frekuensi tinggi dengan panjang k-1.
- Penghitungan support dari tiap kandidat k-itemset. Support dari tiap kandidat k-itemset didapat dengan men-scan database untuk menghitung jumlah transaksi yang memuat semua item di dalam kandidat k-itemset tsb. Ini adalah juga ciri dari algoritme Apriori dimana diperlukan penghitungan dengan scan seluruh database sebanyak k-itemset terpanjang.
- Tetapkan pola frekuensi tinggi. Pola frekuensi tinggi yang memuat k item atau k-itemset ditetapkan dari kandidat k-itemset yang support-nya lebih besar dari minimum support.
- Bila tidak didapat pola frekuensi tinggi baru maka seluruh proses dihentikan. Bila tidak, maka k ditambah satu dan kembali ke bagian 1.
Pada contoh kali ini menggunakan dataset titanic.raw.data
untuk mengetahui itemset dari yang selamat sebagai pola frequent tertinggi
1. Load titanic
raw data pada jendela R Studio
1.
2. Untuk melihat sampel dari dataset
3. Melihat summary
4. Install library yang dibutuhkan untuk
Klo blm ada cek disini, jika muncul tulisan error in library, maka langsung download dari packages
5. Buat apriori dari titanic.raw dgn variabel aturan.semua
6. Untuk melihat hasil dari apriori variabel aturan.semua
7. Buat variabel aturan yang berisi apriori menggunakan
parameter dari survived dgn nilai minimal lenght 2, min support 0.005 dan min
confident 0.8
8. Untuk membulatkan 3 angka dibelakang koma
Mengecek
9. Mengurutkan
nilai lift di variabel aturan
Cek
10. Untuk melihat nilai confidence 1(yg pasti) yang diambil dari
array 1&2 yg nilai confidence nya 1 (sudah pasti yg selamat)
11. Dari aturan.urut ditata vertikal dan horizontal
12. Untuk melihat hasilnya ketik view(subset.matrix)
13. Untuk cek, jd untuk menyamakan rules secara horizontal dan
vertikal, jd misal rules vertikal (class=2nd,age=chils,survived=yes) sama kayak
yg horizontal berarti nilainya bakal TRUE
14. Untuk merubah nilai TRUE dgn bentuk diagonal menjadi NA
Dibuat NA agar bisa di lebih sederhanakan menjadi 12 aturan
saja
15. Mengilangkan hasil matrik yg true (1 di confidence td)
16. Melihat kemungkinan yg bisa kembar true nya
17. Menghapus kemungkinan yg kembar
Cek
18. Melihat confidence yg 1
19. Aturan child yang selamat
20. Modifikasi sort awal menjadi
21. Cek, terlihat yg selamat ternyata tidak hanya yg child di kelas 2