Anda di halaman 1dari 11

Konsep Algoritma Apriori

 Algoritma apriori merupakan salah satu algoritma klasik data mining.


 Algoritma apriori digunakan agar computer dapat mempelajari aturan asosiasi,mencari
pola hubungan antar satu atau lebih item dalam suatu dataset.
 Algoritma apriori banyak digunakan pada data transaksi atau biasa disebut market
basket,dengan adanya algoritma apriori,pemilik swalayan dapat mengetahui pola
pembelian seorang konsumen,jika seorang konsumen membeli item A,B,punya
kemungkinan 50% dia akan membeli item C,pola ini sangat signifikan dengan adanya
data transaksi selama ini.
 Penting tidaknya suatu aturan assosiatif dapat diketahui dengan dua parameter,support
(nilai penunjang) yaitu persentase kombinasi item tersebut dalam database dan
confidence (nilai kepastian ) yaitu kuatnya hubungan antar item dalam aturan assosiatif.
 Aturan assosiatif biasanya dinyatakan dalam bentuk : {roti,mentega}->{susu}
{support=40%,confidence = 50%}
 Yang artinya : “Seorang konsumen yang membeli roti dan mentega punya kemungkinan
50% untuk juga membeli susu.Aturan ini cukup signifikan karena mewakili 40% dari
catatan transaksi selama ini”.
 Analisis asosiasi didefinisikan suatu proses untuk menemukan semua aturan assosiatif
yang memenuhi syarat minimum untuk support(minimum support) dan syarat minimum
untuk confidence(minimum confidence)
 Tetapi dilain pihak apriori memiliki kelemahan karena harus melakukan scan database
setiap kali iterasi,sehingga waktu yang diperlukan bertambah dengan makin banyak
iterasi.Masalah ini yang dipecahkan oleh algoritma-algoritma baru seperti FP-growth.

Cara kerja apriori

Cara kerja apriori :

 Tentukan minimum support

 Iterasi 1 : hitung item-item dari support(transaksi yang memuat seluruh item) dengan men-
scan database untuk 1-itemset, setelah 1-itemset didapatkan, dari 1-itemset apakah diatas
minimum support, apabila telah memenuhi minimum support, 1-itemset tersebut akan
menjadi pola frequent tinggi,

 Iterasi 2 : untuk mendapatkan 2-itemset, harus dilakukan kombinasi dari k-itemset


sebelumnya, kemudian scan database lagi untuk hitung item-item yang memuat support.
itemset yang memenuhi minimum support akan dipilih sebagai pola frequent tinggi dari
kandidat

 Tetapkan nilai k-itemset dari support yang telah memenuhi minimum support dari k-itemset

 lakukan proses untuk iterasi selanjutnya hingga tidak ada lagi k-itemset yang memenuhi
minimum support.

Mari kita lihat contoh soal :

Sebuah Supermarket Memiliki data transaksi sebagai berikut

Gambar 1 : Data Transaksi

Misal minimum dari nilai support pola frekuensi tinggi adalah 2

 Iterasi 1

untuk 1-itemset hitung dan scan database untuk mendapatkan pola frequent dari support
Gambar 2 : 1-itemset

dapatkan k-itemset dari support yang memenuhi minimum support, kemudian pilih k-itemset
sebagai pola frequent tinggi

Gambar 3 : Pola Frequent

 Iterasi 2

pada iterasi sebelumnya pola frequent dari support telah didapatkan dari 1-itemset, untuk 2-
itemset, generate k-itemset dari k-itemset iterasi sebelumnya, dengan melakukan kombinasi dari
k-itemset tersebut.
Gambar 4: kombinasi dari k-itemset

C2 adalah itemset dari kombinasi k-itemset dari iterasi sebelumnya, setelah didapatkan k-itemset
tersebut, hitung masing-masing item frequent dan scan database dan dapatkan frequent item dari
support

Gambar 5: 2-itemset

pengembangan algoritma apriori dengan memangkas k-itemset dengan menghitung suppport dari
itemset, salah satu itemset yang tidak muncul dalam database {telur,buncis} dari C2, sehingga
dipangkas menjadi lebih menghemat memory.

berikut table Pola frequent tinggi diatas minimum support untuk 2-itemset
Gambar 6: Pola frequent tinggi

 Iterasi 3

Gambar 7: Kombinasi dari k-itemset

Gambar 8: 3-itemset dari scan database

kandidat 3-itemset yang telah memenuhi minimum support, itemset tersebut akan menjadi acuan
untuk k-itemset selanjutnya

Gambar 9: 3-itemset untuk pola frequent tinggi


 Iterasi 4

Gambar 10: kombinasi 3-itemset untuk k-itemset

scan dabatase untuk mendapatkan itemset dari support, itemset yang memenuhi minimum support
dipilih sebagai pola frequent tinggi

Gambar 11: pola frequent tinggi

tidak ada lagi kombinasi yang bisa dibentuk untuk k-itemset berikutnya, proses berhenti, pola
frequent tinggi yang ditemukan adalah “roti,mentega,telur,susu”.

Mari kita bentuk association rules yang memenuhi syarat minimum dengan menghitung
confidence association rules A->B

Pembentukan Aturan Assosiatif :


Gambar 11 : Aturan Assosiatif

pembentukan aturan assosiatif cukup penting untuk mendapatkan dan menghitung nilai
confidence. perlu diketahui algoritma apriori cukup boros dalam penggunaan memory dan paling
banyak menghabiskan waktu saat scanning.
Algoritma Binary Search (Pencarian Biner)
Penerapan terbanyak dari pencarian biner adalah untuk mencari sebuah nilai tertentu dalam
sebuah list terurut. Jika dibayangkan, pencarian biner dapat dilihat sebagai sebuah permainan
tebak-tebakan, kita menebak sebuah bilangan, atau nomor tempat, dari daftar (list) nilai.
Pencarian diawali dengan memeriksa nilai yang ada pada posisi tengah list; oleh karena nilai-
nilainya terurut, kita mengetahui apakah nilai terletak sebelum atau sesudah nilai yang di
tengah tersebut, dan pencarian selanjutnya dilakukan terhadap setengah bagian dengan cara
yang sama. Berikut ini adalah pseudocode sederhana yang menentukan indeks (posisi) dari
nilai yang diberikan dalam sebuah list berurut, a berada antara left dan right . Karena
pemanggilan fungsi di samping adalah rekursif ekor, fungsi tersebut dapat dituliskan sebagai
sebuah pengulangan (loop), hasilnya adalah algoritma in-place. Pada kedua kasus, algoritma
akan berakhir karena pada setiap pemanggilan rekursif atau pengulangan, jangkauan indeks
right dikurang left akan selalu mengecil, dan akhirnya pasti akan menjadi negatif.
Pencarian biner adalah sebuah algoritma logaritmik dan bekerja dalam waktu O(log n). Secara
khusus, 1 + log2N pengulangan yang diperlukan untuk menghasilkan jawaban. Hal ini dianggap
lebih cepat dibandingkan sebuah pencarian linear. Pencarian biner dapat diimplementasikan
dengan rekursi atau iterasi, seperti yang terlihat di atas, walaupun pada kebanyakan bahasa
pemrograman akan lebih elegan bila dinyatakan secara rekursif. Pada intinya, algoritma ini
menggunakan prinsip divide and conquer, dimana sebuah masalah atau tujuan diselesaikan
dengan cara mempartisi masalah menjadi bagian yang lebih kecil. Algoritma ini membagi
sebuah tabel menjadi dua dan memproses satu bagian dari tabel itu saja. Algoritma ini bekerja
dengan cara memilih record dengan indeks tengah dari tabel dan membandingkannya dengan
record yang hendak dicari. Jika record tersebut lebih rendah atau lebih tinggi, maka tabel
tersebut dibagi dua dan bagian tabel yang bersesuaian akan diproses kembali secara rekursif.
memperkecil jumlah operasi pembandingan yang harus dilakukan antara data yang dicari
dengan data yang ada di dalam tabel, khususnya untuk jumlah data yang sangat besar
ukurannya. Prinsip dasarnya adalah melakukan proses pembagian ruang pencarian secara
berulang-ulang sampai data ditemukan atau sampai ruang pencarian tidak dapat dibagi lagi
(berarti ada kemungkinan data tidak ditemukan). Syarat utama untuk pencarian biner adalah
data di dalam tabel harus sudah terurut, misalkan terurut menaik.

Cara kerja Binary search :


 Algoritma Binary search ini menggunakan metode devide and conquer dimana sebuah list akan dipecah
menjadi 2 bagian dan kembali menentukan nilai tengah dan membandingkannya secara terus menerus, hingga
ditemukan bahwa nilai tengahnya adalah angka yang dicari.

 Untuk melakukan pembagian list tersebut, diperlukan sebuah angka tengah, bila angka yang dicari lebih kecil
daripada angka ditengah list, maka algoritma ini akan fokus ke serangkaian index yang berada di sebelah kiri
list, begitu juga sebaliknya.
 Untuk menjalankan algoritma ini, kita harus mengurutkan terlebih dahulu value dari array yang ingin kita cari
secara ascending. untuk masalah ini, kita bisa menggunakan algoritma sorting seperti bubble sort,insertion sort
atau quick sort.

Penjelasan algoritma binary search


1. Pertama-tama diambil posisi awal 0 dan posisi akhir = N - 1, kemudian dicari posisi data tengah
dengan rumus (posisi awal + posisi akhir) / 2. Kemudian data yang dicari dibandingkan dengan data
tengah.
2. Kemudian kita cari posisi data tengah dengan rumus posisi tengah yaitu = (posisi awal + posisi akhir )
div 2.
3. Lalu data yang di cari akan dibandingkan dengan data tengah
4. Jika sama, data ditemukan, Proses selesai.
5. Jika lebih kecil, maka proses akan dilakukan kembali tetapi, posisi akhir dianggap sama dengan posisi
tengah -1.
6. Jika lebih besar pun proses akan dilakukan kembali tetapi posisi awal dianggap sama dengan posisi
tengah +1.
7. Mengulang dari langkah kedua sampai data ditemukan, atau tidak ditemukan.
8. Searching biner ini akan berakhir jika data ditemukan posisi awal lebih besar dari pada posisi akhir.
Jika posisi awal sudah lebih besar dari posisis akhir berarti data tidak ditemukan.

Kelebihan dari Binary Search adalah sebagai berikut:


1. Binary search termasuk kedalam algoritma pencarian yang tergolong sederhana namun cepat.terlebih
lagi jika index arraynya ada banyak.
2. Algoritma yang sering digunakan dalam kehidupan sehari-hari (contoh diperpustakaan)
3. Performanya lebih cepat dibandingkan dengan search lainnya seperti sequensial search , linear
search dll.

Kekurangan dari binary search adalah sebagai berikut :


1. Sebelum melakukan proses searching, diperlukan pengurutan terlebih dahulu 
2. Tidak terlalu efektif jika digunakan pada list jika terdapat banyak index dan elemennya tidak terurut.
3. Tidak dapat diterapkan untuk pencarian string.

Contoh :
a) Mencari bilangan 4 dari bilangan 1,2,3,4,5,6,7
1) Mencari titik tengah dari bilangan 1,2,3,4,5,6,7
2) Nilai titik tengah dari bilangan 1,2,3,4,5,6,7 adalah 4, maka nilai yang dicari bisa langsung di
temukan dan proses di hentikan.
b) Mencari bilangan 6 dari bilangan 1,2,3,4,5,6,7
1) Mencari nilai titik tengah dari bilangan yang tersedia yaitu 1,2,3,4,5,6,7
2) Nilai titik tengahnya adalah 4
3) Dari nilai yang dicari (6) apakah sama, kurang dari, atau lebih dari, dari nilai titik tengah
4) Karena nilai yang di cari adalah 6, yaitu lebih dari dari nilai titik tengah (4) maka proses
dilanjutkan kekanan/keatas yaitu mencari titik tengah dari 5,6,7
5) Dari bilangan 5,6,7 nilai titik tengahnya adalah 6, maka bilangan yang dicari ditemukan dan
proses dihentikan
6) Apabila nilai yang dicari belum ditemukan maka proses akan dilanjutkan sampai bilngan
tersebut sudah dicari titik tengahnya semua kemudian proses berhenti.
learning Vector Quantization (LVQ) adalah sebuah metode klasifikasi dimana
setiap unit output mempresentasikan sebuah kelas. LVQ digunakan untuk
pengelompokkan dimana jumlah kelompok sudah ditentukan arsitekturnya
(target/kelas sudah ditentukan).

LVQ salah satu jaringan syaraf tiruan yang merupakan algoritma pembelajaran
kompetitif terawasi versi dari algoritma Kohonen Self-Organizing Map (SOM).
Tujuan dari algoritma ini adalah untuk mendekati distribusi kelas vektor  untuk
meminimalkan kesalahan dalam pengklasifikasian.

Algoritma diusulkan oleh Kohonen pada tahun 1986 sebagai perbaikan dari Vector
Quantization. Model pembelajaran LVQ dilatih secara signifikan agar lebih cepat
dibandingkan algoritma lain seperti Back Propagation Neural Network. Hal ini dapat
meringkas atau mengurangi dataset besar untuk sejumlah kecil vektor.

Arsitektur LVQ seperti pada gambar berikut:

Adapun Langkah langkah LVQ sebagai berikut:

 Tetapkan: bobot(W), maksimum epoch (MaxEpoch), error minimum yang


diharapkan (Eps), Learning rate (α).
 Masukan:

1. Input : x(m,n);
2. Target : T(1,n)
 Tetapkan kondisi awal:

1. Epoch = 0;
2. Eps = 1;

 Tetapkan jika:epoch < MaxEpoch atau ( e < eps)

1. Epoch = Epoch + 1
2. Kerjakan untuk i = 1 sampai n

 Tentukan J sedemikian hingga || x – wj || minimum (sebut sebagai Ci)

 Perbaiki Wj dengan ketentuan:

           - Jika T = Cj maka: wj(baru) = wj(lama) + α (x-wj(lama))


           - Jika T ≠ Cj maka: wj(baru) = wj(lama) - α (x-wj(lama))

 Kurangi nilai α

Anda mungkin juga menyukai