Selasa, 26 Januari 2010

Tahun Adalah Fungsi Linier

Ulang tahun tidak perlu dirayakan. Penyebabnya adalah tidak ada tahun yang berulang. Yang berulang adalah bulan dan hari. Januari, Februari, hingga Desember, lalu kembali ke Januari. Jadi bulan bisa berulang, demikian pula hari. Jika saat ini tahun 2009, tidak mungkin kita kembali ke tahun 2009 beberapa tahun lagi. Karena tidak ada tahun yang berulang, lebih tepat jika kita katakan, “Selamat merayakan hari kelahiran”.

Di dalam matematika tahun adalah fungsi linier. Fungsi linier bukan merupakan fungsi periodik. Jadi tahun tidak akan pernah berulang. Sedangkan bulan dan hari adalah fungsi periodik. Periode hari adalah 7 karena setelah 7 hari nama hari akan berulang. Tahun dinyatakan dengan angka, oleh karena itu tahun adalah fungsi linier. Jika tahun diberi nama seperti bulan dan hari, maka tahun menjadi fungsi periodik. Jika tahun merupakan fungsi periodik kita dapat mengucapkan, “Selamat ulang tahun.”


Alternatif lain adalah tahun tetap berupa angka, namun ditentukan periodenya.


Artikel ini juga dimuat di Facebook penulis.

Jumat, 22 Januari 2010

ALGORITMA APRIORI

Algoritma Apriori diperkenalkan oleh Agrawal dan Srikant pada tahun 1994. Sampai saat ini algoritma tersebut merupakan algoritma asosiasi yang telah banyak digunakan dan dikembangkan oleh para peneliti. Dalam bentuk kode semu (pseudocode) versi awal algoritma ini ditunjukkan di bawah ini.
L1 = {large 1-itemsets};
for (k = 2; Lk-1f; k++} do begin
   Ck = apriori_candidate_generation(Lk-1);
   for all transactions t Î D do begin
               Ct = subset(Ck, t);
               for all candidates c Î Ct do
                           c.count++;
   end
Lk = {c Î Ct| c.count ³ minimum support}
End
Answer = Èk Lk;
Dari kode semu di atas fungsi apriori_candidate_generation mengambil Lk-1 (himpunan k-1 satuan) sebagai parameter. Keluaran fungsi tersebut adalah superset himpunan k satuan. Fungsi tersebut memiliki dua langkah. Langkah pertama adalah  menghubungkan anggota dua himpunan (join) dan langkah kedua adalah menghapus anggota yang tidak memenuhi syarat (prune). Rincian langkah pertama dinyatakan di bawah ini.
insert into Ck
select p.item1, p.item2,…, p.item k-1, q.item k-1
from Lk-1 p Lk-1 q
where p.item1 = q.item 1, p.item2 = q.item 2,…, p.item k-2 = q.item k-2, p.item k-1 < q.item k-1
Di dalam langkah kedua ini semua c Î Ck dihapus jika ada himpunan bagian c yang memiliki k-1 satuan tidak berada di dalam Lk-1. Rincian langkah kedua dinyatakan di bawah ini.
for all itemsets c Î Ck do
for all (k-1)-subsets s of c do
if (s Ï Lk-1) then
delete c from Ck
Basis data di bawah ini akan digunakan untuk mengimplementasikan  algoritma Apriori.
D = {T1, T2, T3, T4, T5}
T1 = {roti susu coklat mentega}
T2 = {roti susu keju}
T3 = {susu coklat}
T4 = {roti susu mentega}
T5 = {coklat keju kismis}
Langkah pertama implementasi algoritma Apriori dalam suatu basis data adalah mencari himpunan satu satuan atau L1. Jika diinginkan cacah pendukung (support count) paling sedikit 2 atau pendukung (support)   paling sedikit 2/5 atau 40%, satuan yang memenuhi  ditunjukkan oleh basis data di bawah ini.
D = {{roti, 3, 3/5}, {susu, 4, 4/5}, {coklat, 3, 3/5}, {mentega, 2, 2/5},{keju, 2, 2/5}, {kismis, 1, 1/5}}
Langkah selanjutnya adalah mencari himpunan kandidat dua satuan atau C2 dari himpunan satu satuan. Himpunan kandidat dua satuan didapatkan dengan menghubungkan (join)  anggota L1 dan L1. Hasilnya ditunjukkan oleh basis data di bawah ini.
D = {{roti susu, 3, 3/5}, {roti coklat, 1, 1/5}, {roti mentega, 2, 2/5}, {roti keju, 1, 1/5},{susu coklat, 2, 2/5}, {susu mentega, 2, 2/5}, {susu keju, 1, 1/5}, {coklat mentega, 1, 1/5}, {coklat keju, 1, 1/5}, {mentega keju, 0, 0/5}}
Karena yang dibutuhkan adalah cacah pendukung (support count) paling sedikit  2 atau pendukung (support)   paling sedikit 2/5 atau 40%, himpunan dua satuan atau L2 ditunjukkan oleh basis data di bawah ini.
D = {{roti susu, 3, 3/5}, {roti mentega, 2, 2/5}, {susu coklat, 2, 2/5}, {susu mentega, 2, 2/5}}
Setelah L2 ditemukan, langkah berikutnya adalah mencari himpunan kandidat tiga satuan atau C3 dari himpunan dua satuan. Dengan menghubungkan (join)  anggota L2 dan L2 didapatkan hasil {roti susu mentega} dan {susu coklat mentega}. Himpunan bagian {roti susu mentega} adalah {roti susu}, {roti mentega}, dan {susu mentega}. Karena {roti susu}, {roti mentega}, dan {susu mentega} anggota L2 maka {roti susu mentega} berada di dalam C3. Himpunan bagian {susu coklat mentega} adalah {susu coklat}, {susu mentega}, dan {coklat mentega}. Karena {coklat mentega} bukan anggota L2 maka {susu coklat mentega} tidak berada di dalam C3. Dengan demikian himpunan kandidat tiga satuan atau C3 ditunjukkan oleh basis data di bawah ini.
D = {{roti susu mentega, 2, 2/5}}
Karena yang dibutuhkan adalah cacah pendukung (support count) paling sedikit  2 atau pendukung (support)   paling sedikit 2/5 atau 40%, himpunan tiga satuan atau L3 ditunjukkan oleh basis data di bawah ini.
D = {{roti susu mentega, 2, 2/5}}
Hasil dari algoritma Apriori adalah gabungan satu satuan, dua satuan, dan tiga satuan yang memenuhi cacah pendukung (support count) paling sedikit  2 atau pendukung (support)   paling sedikit 2/5 atau 40% dinyatakan oleh basis data di bawah ini.
D = {{roti, 3, 3/5}, {susu, 4, 4/5}, {coklat, 3, 3/5}, {mentega, 2, 2/5},{keju, 2, 2/5}, {kismis, 1, 1/5}{roti susu, 3, 3/5}, {roti mentega, 2, 2/5}, {susu coklat, 2, 2/5}, {susu mentega, 2, 2/5}, {roti susu mentega, 2, 2/5}}
Jika diinginkan kepercayaan (confidence) paling sedikit 50 persen, basis data di bawah ini menunjukkan  kepercayaan (confidence) yang dimaksud.
D = {{roti Þ susu, 3, 3/3}, {roti Þ mentega, 2, 2/3}, {susu Þ coklat, 2, 2/4}, {susu Þ mentega, 2, 2/4}, {roti Þ susu mentega, 2, 2/3}, {susu Þ roti mentega, 2, 2/4}, {mentega Þ roti susu, 2, 2/2}, {susu mentega Þ roti, 2, 2/2}, {roti mentega Þ susu, 2, 2/2}, {roti susu Þ mentega, 2, 2/3}}
Basis data di atas menunjukkan aturan asosiasi roti Þ susu memiliki cacah pendukung 3 dan kepercayaan 3/3 yang berarti dari 3 transaksi pembelian roti ada 3 transaksi pembelian roti dan susu, aturan asosiasi roti Þ mentega memiliki cacah pendukung 2 dan kepercayaan 2/3 yang berarti dari 3 transaksi pembelian roti ada 2 transaksi pembelian roti dan mentega, dan seterusnya.

DAFTAR PUSTAKA
Agrawal, R., Imielinski, T., dan Swami, A. (1993). “Mining Association Rules between Sets of Items in Large Databases”, Proceedings of the 1993 ACM SIGMOD Conference Washington DC, USA, halaman 207-216.
Agrawal, R. dan Srikant, R. (1994). “Fast Algorithms for Mining Association Rules”, Proceedings of the 20th VLDB Conference Santiago, Chile.
Han, J. dan Kamber, M. (2006). “Data Mining: Concepts and Techniques”, second edition, San Francisco: Morgan Kaufmann Publishers.

Jumat, 08 Januari 2010

ATURAN ASOSIASI

Aturan asosiasi adalah aturan yang dinyatakan dalam bentuk A Þ B. Pendukung (support) A Þ B adalah persentase atau proporsi satu satuan atau lebih muncul dalam suatu basis data. Kepercayaan (confidence) A Þ B adalah persentase atau proporsi satu satuan atau lebih muncul jika satu satuan atau lebih yang lain telah muncul dalam suatu basis data.  Dengan menggunakan notasi yang biasa digunakan pada teori peluang, notasi pendukung (support)  dan notasi kepercayaan (confidence) ditunjukkan di bawah ini.
Pendukung (support) A Þ B adalah P(A Ç B) = n(A Ç B)/n(S).
Kepercayaan (confidence) A Þ B adalah P(B|A) = P(A Ç B)/P(A) = n(A Ç B)/n(A).
Notasi n(A Ç B) menunjukkan cacah pendukung (support count), n(S) menunjukkan banyak transaksi, dan n(A) menunjukkan cacah satuan A.
Konsep cacah pendukung (support count), pendukung (support),  dan kepercayaan (confidence) diimplementasikan dalam suatu basis data di bawah ini.
D = {T1, T2, T3, T4, T5}
T1 = {roti susu coklat mentega}
T2 = {roti susu keju}
T3 = {susu coklat}
T4 = {roti susu mentega}
T5 = {coklat keju kismis}
Contoh di atas menunjukkan ada pemilik toko yang mencatat kelima transaksinya dalam suatu basis data. D adalah basis data dalam bentuk himpunan yang memiliki lima transaksi. Transaksi 1 (T1) memiliki himpunan satuan roti susu coklat mentega yang berarti pada transaksi pertama pelanggan membeli roti, susu, coklat, dan mentega, transaksi 2 (T2) memiliki himpunan satuan roti susu keju yang berarti pada transaksi kedua pelanggan membeli roti, susu, dan keju, dan seterusnya. Dari basis data di atas dapat diturunkan basis data yang menunjukkan pendukung (support)  tiap-tiap satu satuan.
D = {{roti, 3, 3/5}, {susu, 4, 4/5}, {coklat, 3, 3/5}, {mentega, 2, 2/5},{keju, 2, 2/5}, {kismis, 1, 1/5}}
Basis data di atas menunjukkan satuan roti memiliki cacah pendukung 3 dan pendukung 3/5 yang berarti dari 5 transaksi ada 3 transaksi pembelian roti, satuan susu memiliki cacah pendukung 4 dan pendukung 4/5 yang berarti dari 5 transaksi ada 4 transaksi pembelian susu, dan seterusnya.
Dengan cara yang sama basis data di bawah ini menunjukkan basis data yang menunjukkan pendukung (support)  sebagian dua satuan.
D = {{roti susu, 3, 3/5}, {roti coklat, 1, 1/5}, {susu mentega, 2, 2/5}, {coklat mentega, 1, 1/5}}
Basis data di atas menunjukkan bahwa dari 5 transaksi ada 3 transaksi pembelian roti dan susu, dari 5 transaksi ada 1 transaksi pembelian roti dan coklat, dan seterusnya. Dari basis data di atas dapat diturunkan basis data yang menunjukkan kepercayaan (confidence)   sebagian dua satuan.
D = {{roti Þ susu, 3, 3/3}, {roti Þ coklat, 1, 1/3}, {susu Þ mentega, 2, 2/4}, {coklat Þ mentega, 1, 1/3}}
Basis data di atas menunjukkan aturan asosiasi roti Þ susu memiliki cacah pendukung 3 dan kepercayaan 3/3 yang berarti dari 3 transaksi pembelian roti ada 3 transaksi pembelian roti dan susu, aturan asosiasi roti Þ coklat memiliki cacah pendukung 1 dan kepercayaan 1/3 yang berarti dari 3 transaksi pembelian roti ada 3 transaksi pembelian roti dan coklat, dan seterusnya.

DAFTAR PUSTAKA
Agrawal, R., Imielinski, T., dan Swami, A. (1993). “Mining Association Rules between Sets of Items in Large Databases”, Proceedings of the 1993 ACM SIGMOD Conference Washington DC, USA, halaman 207-216.
Agrawal, R. dan Srikant, R. (1994). “Fast Algorithms for Mining Association Rules”, Proceedings of the 20th VLDB Conference Santiago, Chile.
Han, J. dan Kamber, M. (2006). “Data Mining: Concepts and Techniques”, second edition, San Francisco: Morgan Kaufmann Publishers.

Saat Pertama

Tiap-tiap orang memiliki saat-saat pertama dalam hidupnya. Tidak terkecuali saya atau Anda. Kalau pada saat-saat pertama timbul rasa gugup, cemas, atau takut, hal itu wajar dan alamiah. Nanti, pada saat kedua, ketiga, dan saat-saat selanjutnya kita akan lebih tingkatkan metode yang sudah kita miliki.