Pengertian Dan Manfaat Data Mining Email
Database ketika ini boleh jadi berkembang menjadi sangat besar secara cepat ke pada ukuran terabyte. Di dalam tumpukan data tersebut mungkin terdapat berita-keterangan tersembunyi yg sangat krusial atau menjadi krusial dalam ketika diharapkan. Akan namun bagaimana caranya kita menemukan sebuah jarum dalam tumpukan jerami? Dalam hal ini dapat kita katakan bahwa seluruh data belum berarti informasi.
Kita telah mengetahui bahwa data mentah (raw data) nir terlalu bermanfaat lantaran ukurannya yang begitu besar sebagai akibatnya tidak mungkin dianalisa. Kita perlu mengekstrak pola berdasarkan data mentah tersebut. Jawabannya adalah dengan data mining. Banyak organisasi pada dunia sudah memakai data mining buat mencari dan menarik kesimpulan berdasarkan data yang mereka miliki. Berikut beberapa model pelaksanaan data mining:
- Perusahaan pemasaran menggunakan data sejarah respon pembelian terhadap suatu tawaran produk buat membentuk model buat memperkirakan pelanggan potensial yg akan di raih dengan metode penawaran tertentu.
- Agen pemerintah menyaring data transaksi keuangan buat mendeteksi money laundering serta penyelundupan obat terlarang.
- Dalam tahapan diagnosis, para fisikawan menciptakan expert system menurut poly percobaan yang telah dilakukan.
Secara definisi data mining adalah ekstraksi kabar potensial yg sebelumnya tak diketahui atau implisit, suatu kelas berdasarkan pelaksanaan database yang mencari pola tersembunyi dalam suatu grup data. Atau, data mining mampu juga didefinisikan menjadi suatu proses yg memakai banyak sekali perangkat analisis data buat menemukan pola dan relasi data supaya bisa digunakan buat menciptakan prediksi menggunakan sempurna.
Dari tinjauan keamanan sistem fakta, data mining memang bagai pisau bermata ganda. Di satu sisi sanggup berguna bagi pihak pemilik data buat hal-hal yang telah disebutkan pada atas, namun mampu jadi illegal bila data-data tadi disalahgunakan untuk hal-hal yang bersifat melanggar privasi orang lain atau bahkan apabila pengumpulan data tadi dilakukan secara nir etis serta tanpa sepengetahuan pihak yg memiliki keterangan.
Makalah ini hanya akan membahas apa itu data mining, kemungkinan aplikasinya dalam mencari pola pada email, serta sedikit demonstrasi sederhana dengan memakai pelaksanaan jadi misalnya outlook serta Access buat parsing email ke database, serta aplikasi open source Weka (Waikato Environment for Knowledge Analysis) yang dikembangkan pada Universitas Waikato. Software ini telah mempunyai beberapa library dasar untuk melakukan data mining.
Aplikasi data mining sendiri bukanlah suatu pelaksanaan sederhana. Ia melibatkan algorithma machine learning yang membutuhkan algoritma kecerdasan buatan yang relatif kompleks serta berada di luar cakupan makalah ini.
1. Data Mining
Data mining merupakan proses yg menggunakan banyak sekali perangkat analisis data buat menemukan pola serta interaksi pada data yang mungkin dapat dipakai buat membuat prediksi yang valid.
Langkah pertama serta paling sederhana dalam data mining yaitu mendeskripsikan data – menyimpulkan atribut statistik (misalnya homogen-rata serta baku deviasi), mereview secara visual memakai diagram dan grafik, serta mencari rekanan berarti yg potensial antar variabel (misalnya nilai yang acapkali ada bersamaan). Mengumpulkan, mengeksplor, serta memilih data yg sempurna merupakan sangat penting.
Pada dasarnya ada empat langkah utama dalam melakukan data mining:
1. Mendeskripsikan data, yakni menyimpulkan atribut statistik (misalnya homogen-rata serta standard deviasi), mereview secara visual memakai grafik serta diagram, serta mencari interaksi-hubungan potensial antar variabel (seperti contohnya, nilai-nilai yg sering keluar bersamaan).
2. Membangun model perkiraan (predictive contoh) dari pada pola-pola yang ditemukan dalam langkah sebelumnya.
3. Menguji model pada luar sampel orisinil. Sebuah contoh yang baik tidak harus sama persis dengan kenyataan sebenarnya (misalnya peta bukanlah representasi paripurna dari jalan yg sebenarnya), akan namun mampu sebagai pedoman yang berguna untuk mengerti usaha kita.
4. Memverifikasi/menguji model. Misalnya, berdasarkan suatu database pelanggan yg sudah merespon tawaran yg pernah diiklankan kepada mereka, kita membangun sebuah contoh perkiraan yang memiliki prospek akan mendapat respon yg sama dari pelanggan dengan tipikal tadi tersebut. Tapi bisakah kita sahih-benar bergantung dalam asumsi kita tersebut? Kita perlu menandakan contoh perkiraan kita tersebut ke sample pelanggan yg lain dan melihat output yg kita dapatkan.
Untuk melakukan hal tersebut diatas maka setidaknya dibutuhkan suatu acara yang bisa menampilkan (kalau tidak mendeteksi) pola serta keteraturan dalam data sebagai akibatnya pola-pola yg bertenaga atau sangat kentara terlihat dapat digunakan untuk melakukan prediksi.
Keterbatasan Data Mining
Data mining hanyalah sebuah alat, bukan tongkat ajaib. Data mining nir secara otomatis mengamati apa yg terjadi pada database kemudian mengirimkan laporan waktu terdapat pola-pola menarik. Penggunaan data mining permanen saja mengharuskan kita buat mengerti data kita dan mengerti metode-metode analisis data. Data mining membantu analis buat menemukan pola dan rekanan data akan namun nir secara eksklusif berkata nilai menurut pola tadi. Lebih jauh lagi, pola-pola yg tidak diketemukan melalui data mining wajib diverifikasi balik dalam dunia konkret.
Perlu diingat bahwa hubungan prediktif yg ditemukan melalui data mining tidak selalu merupakan karena berdasarkan suatu prilaku atau tindakan. Misalnya, datamining sanggup jadi menemukan bahwa laki-laki menggunakan pendapatan Rp. 5 – 10 juta per bulan merupakan pelanggan menurut majalah-majalah tertentu dan kemungkinan akbar adalah pembeli menurut suatu produk. Suatu perusahaan bisa saja merogoh keuntungan dari pola ini menggunakan menargetkan pemasaran kepada orang-orang yang memenuhi pola tersebut. Tapi tetap saja perusahaan tadi tidak boleh mengasumsikan bahwa hanya faktor inilah yg mengakibatkan mereka membeli produk perusahaan tadi.
Model serta Algoritma Data Mining
Dalam bagian ini akan dibahas suatu model serta algoritma yang acapkali digunakan pada melakukan data mining. Yang wajib diperhatikan merupakan bahwa contoh atau prosedur pemecahan ini bukan adalah satu-satunya yg terdapat serta nir wajib digunakan secara eksklusif. Pemilihan contoh tentu saja sangat bergantung dalam tujuan yg ingin dicapai pada melakukan data mining serta data yang akan dihadapi.
Neural Network
Neural Network biasa dipakai dalam perkara pembagian terstruktur mengenai (pada mana outputnya adalah variabel kategoris) atau regresi (outputnya kontinyu). Neural network dimulai dengan layer input, dimana tiap simpul berkorespondensi menggunakan variabel prediktor. Simpul-simpul input ini terhubung ke beberapa simpul dalam hidden layer. Tiap simpul input terhubung menggunakan tiap simpul dalam hidden layer. Simpul pada hidden layer bisa jadi terhubung ke simpul lain pada hidden layer, atau ke output layer. Output layer terdiri berdasarkan satu atau beberapa variabel respon.
Gambar Neural network dengan satu hidden layer
Setelah layer input, tiap simpul merogoh satu himpunan input, mengalikan input-input tersebut dengan bobot Wxy (contohnya, bobot dari simpul 1 ke tiga adalah W13 – lihat gambar), menambahkan kedua bobot, menerapkan fungsi (biasa dipanggil fungsi aktivasi atau squashing), serta melewatkan outputnya ke simpul pada layer berikutnya. Misalnya, nilai yang dilewatkan menurut node 4 ke node 6 merupakan:
Activation function applied to ([W14 * value of node 1] + [W24 * value of node 2])
Gambar Wxy merupakan bobot menurut simpul x ke simpul y
Tiap simpul mampu ditinjau menjadi variabel prediktor (dalam hal ini simpul 1 serta dua) atau sebagai kombinasi berdasarkan variabel prediktor (simpul 3 hingga 6). Simpul 6 adalah kombiasi non linear berdasarkan nilai simpul 1 serta 2, karena fungsi aktivasi terhadap nilai penjumlahan di simpul-simpul tersembunyi. Apabila masih ada fungsi aktivasi tanpa hidden layer, jaringan saraf akan ekivalen dengan regresi linear; serta menggunakan fungsi aktivasi non-linear eksklusif, jaringan saraf akan ekivalen menggunakan regresi logistik.
Bobot koneksi (W) merupakan parameter tidak diketahui yang diestimasi dengan metode pelatihan. Awalnya, metode pelatihan yg generik merupakan backpropagation; metode-metode yang baru lalu bermunculan misalnya gradien konjugasi, quasi-Newton, Levenberg-Marquardt, dan algoritma genetic. Tiap metode pembinaan mempunyai satu himpunan parameter yg mengatur berbagai aspek dari pembinaan misalnya misalnya menghindari local optima atau mengatur kecepatan konversi.
Arsitektur (atau topologi) berdasarkan jaringan saraf merupakan jumlah menurut simpul dan layer-layer tersembunyi, dan bagaimana mereka saling bekerjasama. Dalam merancang jaringan saraf, baik user maupun aplikasi harus menentukan jumlah simpul dan layer tersembunyi, fungsi aktivasi, serta batasan-batasan bobot. Meskipun masih ada anggaran umum, kita umumnya tetap wajib bereksperimen menggunakan parameter-parameter tadi.
Tipe yang paling umum menurut jaringan saraf merupakan jaringan feed forward backpropagation. Untuk kesederhanaan bahasan, kita akan membahas jaringan menggunakan satu hidden layer.
Training Backpropagation hanyalah galat satu versi dari gradien descent, suatu jenis algoritma yg mencoba buat mengurangi nilai sasaran (error, dalam kasus jaringan saraf) dalam tiap langkah. Algoritma ini bekerja misalnya berikut:
Feed forward: Nilai menurut simpul output dihitung menurut nilai simpul input serta bobot-bobot awal. Nilai-nilai dari simpul input ini dikombinasikan dalam hidden layers, serta nilai berdasarkan simpul-simpul pada hidden layer digabungkan untuk menghitung nilai output.
Backpropagation: Error pada output dihitung dengan mencari beda antara output terhitung dan hasil yg diinginkan. Kemudian, error dari output dimasukkan kembali ke hidden layer secara proporsional, sinkron menggunakan bobotnya. Hal ini akan membuat error dihitung buat tiap simpul hasil dan simpul tersembunyi pada jaringan. Akhirnya, error di tiap simpul tersembunyi dan simpul hasil digunakan sang algoritma untuk mengatur bobot yg masuk ke simpul buat mengurangi error.
Proses ini berulang buat tiap baris pada himpunan traininng. Tiap lewatan terhadap tiap baris dalam himpunan traininng diklaim epoch. Himpunan training ini akan digunakan berulang kali, hingga error yg dihasilkan tidak lagi berkurang. Pada titik tadi jaringan saraf dipercaya teah terlatih buat menemukan pola pada himpunan test. Lantaran banyak sekali parameter yang mungkin ada pada jaringan tersembunyi, suatu jaringan saraf dengan simpul-simpul tersembunyi yg relatif akan selalu menuntaskan training set bila dibiarkan berjalan relatif usang. Tapi seberapa baikkah jaringan saraf tersebut buat data yang lain? Untuk menghiondari jaringan saraf yg overfitted yang akan hanya bekerja dengan baik dalam data training, kita harus memahami kapan harus berhenti melakukan training. Beberapa implementasi akan mengevaluasi jaringan saraf pada data penguji secara periodik selama latihan. Selama error rate pada hipunan penguji terus menurun, pelatihan akan terus dilakukan. Jika error rate bertambah, meskipun error rate dalam data traininng terus menurun, maka jaringan saraf mungkin mengalami overfitting. Grafik pada gambar mengilustrasikan bagaimana himpunan data penguji bisa menolong kita menghindari overfitting. Kita dapat melihat bahwa error rate terus menurun pada tiap lewatan jariingan saraf terhadap data (garis titik-titik), akan namun error rate buat data penguji mengalami kenaikan. Karena tujuan dari data mining adalah untuk menciptakan prediksi dalam data yang bukan himpunan traininng, maka kita tentu saja wajib memakai jaringan saraf yang akan meminimalisasi error pada data penguji, bukan data pelatihan.
Gambar Error rate sebagai fungsi jumlah epoch dalam jaringan saraf
Jaringan saraf berbeda secara filosofis dari poly metode statistik dalam beberapa hal. Pertama, jaringan saraf umumnya mempunyai lebih poly parameter. Misalnya, terdapat 3 belas parameter (9 bobot dan 4 bias) dalam jaringan saraf dalam gambar 4. Karena banyaknya parameter, dan kombinasi dari parameter menghasilkan prediksi yg similar, parameter menjadi uninterpretable serta jaringan bertindak menjadi prediktor “black box”. Pada kenyataannya, suatu output mampu diasosiasikan menggunakan beberapa himpunan bobot yang berbeda. Oleh karena itu, bobot network secara generik nir membantu pada usaha untuk mengerti proses yg membentuk prediksi. Akan namun hal ini dapat diterima pada banyak pelaksanaan. Suatu bank hanya ingin mengenali secara otomatis suatu pertanda tangan, akan tetapi nir peduli bentuk rekanan fungsional antara pixel serta karakter yang diwakilinya. Beberapa aplikasi yang mempunyai ratusan variabel sebagai input ke pada contoh menggunakan ribuan parameter (bobot simpul) mencakup pabrik kimia, robot serta pasar keuangan, serta kasus-perkara sosialisasi pola misalnya suara, vision dan karakter.
Satu laba menurut contoh jaringan saraf merupakan jaringan saraf gampang buat diimplementasikan buat dijalankan pada paralel komputer dengan tiap node menjalankan kalkulasinya sendiri-sendiri secara simultan.
Pengguna wajib sadar terhadap beberapa kabar mengenai jaringan saraf: pertama, jaringan saraf nir gampang buat ditafsirkan. Tidak ada penerangan rasional yg eksplisit tentang bagaimana suatu jaringan saraf melakukan keputusan atau prediksi. Kedua, jaringan saraf cenderung mengalami overfit data training kecuali pengukuran yang sangat ketat, buat acakan bobot atau validasi silang dilakukan secara hati-hati.ketiga, jaringan saraf membutuhkan saat usang untuk melakukan pelatihan kecuali masalahnyas sangat kecil. Setelah ditrain, jaringan saraf sanggup melakukan prediksi menggunakan relatif cepat. Keempat, jaringan saraf membutuhkan persiapan data yang poly. Implementasi yg sukses menurut jaringan saraf membutuhkan pemililihan serta preprocessing data yang baik. Misalnya, jaringan saraf mensyaratkan seluruh variabel harus numerik. Oleh karena itu, data kategoris misalnya “propinsi” biasanya dipecah menjadi variabel dikotomis (contohnya “jawa barat”, “jawa timur”), masing-masing dengan nilai “1” (yes) atau “0” (no). Akhirnya, jaringan saraf akan bekerja dengan baik apabila set data yang digunakan relatif akbar dan rasio frekuwensi terhadap noise cukup tingggi.
Decision trees
Decision tree merupakan cara merepresentasikan perpaduan anggaran yg mengacu ke suatu nilai atau kelas. Misalnya kita mampu mengklasifikasikan suatu proposal pinjaman uang mempunyai resiko baik atau tidak baik. Gambar ? Menerangkan decision tree sederhana: decision node, branches and leaves.
Gambar Classification tree sederhana
Komponen pertama adalah simpul top decision, atau simpul root, yg menentukan test yang akan dijalankan. Simpul root dalam contoh ini adalah “income > $40.000”. Hasil menurut tes ini menyebabkan tree terpecah menjadi dua cabang, dengan tiap cabang meepresentasikan satu menurut jawaban yang mungkin. Dalam masalah ini, jawabannya adalah “ya” serta “nir”, sehingga kita mendapatkan dua cabang.
Bergantung dalam prosedur pemecahan yang dipakai. Tiap simpul mampu memiliki dua atau lebih cabang. Misalnya, CART akan menggenerate hanya 2 cabang dalam tiap simpul. Tree misalnya ini dianggap binary tree. Ketika lebih dari dua cabang diperbolehkan maka dianggap menjadi multiway tree.
Tiap cabang akan mempunyai simpul node yg lain atau dasar tree, yang diklaim leaf. Dengan mengikuti decision tree kita bisa menaruh nilai pada suatu kasus menggunakan memutuskan cabang mana yang akan diambil, dimulai dari simpul root serta berkiprah ke bawah sampai leaf. Dengan menggunakan metode ini, seorang petugas yg bertanggung jawab buat menetapkan hadiah pinjaman terhadap nasabah bisa memilih apakah seorang nasabah mempunyai resiko kredit yang baik atau tidak baik.
Model decision tree umum digunakan pada data mining buat mengkaji data dan menginduksi tree dan anggaran yg akan digunakan buat menciptakan prediksi. Sejumlah prosedur pemecahan yang tidak sinkron sanggup digunakan buat membentuk tree pada antara nya merupakan CHAID (Chi squared Automatic Interactin Detection), CART (Classification and Regression Trees), Quest dan C5.0.
Decision tree berkembang melalui pemecahan iteratif dari data ke dalam grup-grup diskrit, yg tujuannya adalah buat memaksimalkan “jeda” antara grup pada tiap pemecahan.
Contoh yang kita gunakan sampai ketika ini sangatlah sederhana. Tree ini sangat mudah buat dimengerti serta diinterpretasikan. Akan tetapi, tree bisa menjadi sangat kompleks. Bisa dibayangkan kompleksitas suatu tree yg diturunkan berdasarkan database menggunakan ratusan atribut serta variabel respon menggunakan lusinan kelas input. Tree sperti ini akan sangat sulit untuk dimengerti, meskipuntiap path berdasarkan tree umumnya dapat dimengerti. Dalam hal ini decision tree sanggup menjelaskan prediksinya, yang merupakan laba krusial.
Akan namun, kejelasan ini bisa jadi menyesatkan. Misalnya, percabangan berdasarkan suatu decision tree mengimplikasikan suatu presisi yg sporadis ditemui dalam global nyata. (Kenapa seorang yang gajinya $40.001 akan menjadi nasabah menggunakan resiko kredit yang baik sedangkan seseorang dengan honor $40.000 tidak?)
Selain dua butir algoritma yang dibahas di atas, masih banyak lagi algoritma lain seperti Multivariate Adaptive Regression Splines (MARS), Rule induction, K-nearest neighbor and memory-based reasoning (MBR), Logistic regression, Discriminant analysis, Generalized Additive Models (GAM), Boosting, dan Genetic algorithms.
2. Implementasi Data Mining Email
Mengenali suatu pendekatan yang sistematis adalah hal yg sangat krusial agar kita dapat melakukan data mining dengan sukses. Banyak vendor serta organisasi konsultan sudah menentukan urutan langkah yg akan membentuk hasil yg memuaskan.
Langkah-langkah dasar pada data mining adalah sebagai berikut:
1. Define business problem
2. Build data mining database
3. Explore data
4. Prepare data for modeling
5. Build model
6. Evaluate model
7. Deploy model and results
Mengikuti langkah-langkah di atas, maka pertama kali kita harus memilih dulu kasus yang hendak dipecahkan. Dalam hal ini tujuan kita melakukan data mining email wajib terlebih dahulu didefinisikan. Dalam masalah email, data mining umumnya dilakukan buat mengetahui prilaku pelanggan berdasarkan order yang masuk via email, atau bisa jua mengetahui prilaku konsumsi seorang. Suatu contoh konkret, Google melakukan data mining email buat mengetahui iklan yg relevan untuk ditampilkan ke web interface layanan email mereka.
Tujuan yg tidak selaras membutuhkan pemodelan database dan data yang tidak selaras jua.
Pada makalah ini akan didemonstrasikan bagaimana suatu data bisa diambil berdasarkan aplikasi email client misalnya outlook buat kemudian diparse ke database. Setelah data terkumpul pada database lalu dilakukan data analisis dengan menggunakan perangkat lunak open source Weka (Weikato Environment for Knowledge Analysis).
Karena kesulitan pada mengumpulkan data yang baik (pada hal ini email yg representatif) maka dipakai data fiktif yang kiranya akan menarik untuk dianalisis. Walaupun begitu, permanen akan didemonstrasikan bagaimana email penulis diparse ke pada database Access.
Aplikasi Pendukung
Pada bagian ini akan dibahas pelaksanaan-aplikasi atau bahasa pendukung yang dipakai buat menciptakan aplikasi data mining email dalam makalah ini, yaitu Outlook Express, Visual Basic for Application, serta Microsoft Access.
Outlook Express
Outlook Express merupakan salah satu aplikasi email client yang bekerja pada platform Windows selain Eudora, Mozilla ThunderBird, Pegasus Mail, dan masih banyak lagi yang lainnya.
Alasan penggunaan Outlook pada makalah ini adalah lantaran interoperabilitasnya yg sangat baik dengan sistem pelaksanaan Ms Office lainnya (pada hal ini kita akan menggunakan relational database Ms Access) dan umumnya telah terpaket pada Windows yg kita gunakan. Akan tetapi selain itu, Outlook jua mempunyai kemampuan pengorganisasian email yg cukup baik (virtual folders, versatile searching) dan penyaringan spam yang relatif solid.
Berikut adalah beberapa fitur dasar berdasarkan Outlook Email Client:
- Kemampuan mengelola poly account email serta newsgroup
- Kemudahan dalam mengeksplorasi pesan/email masuk
- Memiliki addressbook buat menyimpan serta melihat alamat-alamat email
- Kemampuan mendownload email/newsgroup buat dibaca secara offline
- Mengirim serta mendapat pesan secara kondusif dengan enkripsi
Microsoft Access
Pada dasarnya Access merupakan suatu Database Management System (DBMS). Seperti halnya produk lain pada kategori ini, Access meyimpan serta memanggil kabar/data, mempresentasikan data yg diminta, dan mengotomasi repetitive tasks. Dengan akses kita sanggup menciptakan form masukan yg gampang dipakai seperti diperlihatkan pada gambar ?
Gambar Screenshot form pada Access
Akses pula merupakan pelaksanaan database windows yg cukup powerful. Karena baik Windows juga Access adalah produk Microsoft, ke 2 produk tadi berafiliasi menggunakan sangat baik. Access berjalan di seluruh versi windows.
Dengan memakai OLE (Object Linking Embedding) pada Windows serta produk Ms Office (Excel, Word, Power Point serta Outlook) kita bisa menyebarkan kemampuan Access. OLE memungkinkan produk yg satu dengan lainnya saling bertukar kabar dengan gampang.
Berikut beberapa fitur yang ditawarkan Access:
- Database management system yg sahih-sahih relasional
- Wizard yg mudah digunakan
- Importing, exporting, dan linking tabel
- Form serta laporan dengan fitur WYSIWYG
- Multiple table queries and relationships
- Business graph and chart
- Kemampuan DDE dan OLE
- True Client/server
- Dukungan modul VBA
Gambar ? Mengilustrasikan kemampuan Access pada poly level
Gambar Kemampuan Access dalam banyak level
VBA Pada Access
Access mempunyai poly tool yang relatif baik yang memungkinkan kita bekerja dengan database dan tabel, queries, form, dan report yg dimilikinya tanpa menulis satu baris kode pun. Akan namun, pada perkara-perkara tertentu, kita mungkin membutuhkan pengembangan aplikasi yang lebih rumit seperti misalnya validasi input yang lebih ekstensif atau error handling yg lebih baik.
Untuk situasi-situasi seperti ini, kita membutuhkan suatu bahasa tingkat tinggi. Access menyediakan bahasa pemrograman yg disebut Visual Basic for Application (VBA) yg bisa menaikkan kemampuan berdasarkan Access dan melebihi kemampuan yg ditawarkan oleh Macro.
Visual Basic sudah menjadi bahasa generik buat seluruh pelaksanaan Microsoft. Visual Basic ada di semua pelaksanaan Ms Office XP, termasuk Excel, Word, Power Point, dan outlook. Visual Basic adalah bahasa pemrograman terstruktur yang memberikan bnyak struktur pemrograman yg sudah biasa dipakai oleh programmer misalnya If .. Then … Else, Select Case, serta seterusnya. Visual Basic memungkinkan seorang programmer bekerja menggunakan fungsi dan subrutin pada dalam bahasa yg hampir seperti layaknya bahasa Inggris. Bahasa ini pula sangat ekstensibel (sanggup memanggil rutin Windows API) serta sanggup berinteraksi melalui ADO (Active Data Objects) atau DAO (Data Access Objects) menggunakan seluruh tipe data Access atau Visual Basic.
Weka
Weka adalah koleksi algoritma data mining buat tugas-tugas data mining. Algoritma ini sanggup diterapkan secara pribadi ke dalam dataset atau bisa juga dipanggil dari kode java kita sendiri. Weka mempunyai tools untuk data pre-processing, classification, regression, clustering, association rules, dan visualization. Weka jua cocok buat digunakan dalam pengembangan skema baru learning machine. Weka adalah software open source yg diterbitkan dibawah lisensi GNU General Public License.
Perancangan dan Implementasi
Tujuan berdasarkan pelaksanaan ini merupakan buat men data-mine email yang berada pada mailbox Outlook. Kita akan mengekstrak liputan email serta memasukkan warta tersebut ke pada relational database sehingga kemudian kita sanggup menganalisanya dengan beberapa prosedur pemecahan data mining.
Jadi langkah perancangan pertama kali merupakan dengan merancang program pengekstrak data email Outlook untuk lalu di ekspor ke Access. Selanjutnya membentuk contoh data mining berdasarkan data mentah yang telah kita tambahkan ke database tersebut.
Secara garis besar contoh berdasarkan pelaksanaan data mining ini dapat diilustrasikan sebagai berikut:
Gambar Alur proses data mining
Program Pengekstrak serta Pengimpor Data Email
Sebenarnya kita mampu menghubungkan Outlook menggunakan Access tanpa melakukan pemrograman sedikitpun. Yakni menggunakan menggunakan driver yg sudah terpasang secara built-in pada Office 2000. Sayangnya metode ini memiliki kekurangan dalam hal kesulitan pada kustomisasi database. Untuk pertimbangan kemudahan kita hanya akan memakai import wizard menurut Access yang akan mengimport seluruh data email yg ada dalam inbox outlook. Untuk menciptakan database yang lebih baik, mungkin kita bisa mendesign sendiri struktur database yang baik serta lalu menulis script sederhana menggunakan visual basic editor pada outlook agar setiap email yang diterima akan eksklusif dimasukkan ke database. Berikut acara sederhana berbentuk modul pada Microsoft Access buat mengimport email dari outlook dengan menggunakan bahasa Visual Basic for Application.
Option Compare Database
- Dim ol As New Outlook.application
- Dim PublicFolder As MAPIFolder
- Dim OldTaskItems As Items
- Dim itm As Outlook.taskItem
- Dim AppPath As String
Sub ImportItems()
Set PublicFolder = ol.getnamespace("MAPI").folders("Public Folders").folders("All Public Folders").folders("PT").folders("Help Desk Application").folders("Tarefas Antigas")
Set OldTaskItems = PublicFolder.items.restrict("[Subject] > ''")
Dim nmritens As Integer
nmritens = OldTaskItems.count '
' If nmritens = 0 Then
' MsgBox "Tidak ada item baru"
' Else
' MsgBox " Terdapat" & nmritens & " untuk diimport"
' End If
For Each itm In OldTaskItems
If nmritens > 1 Then
Set appAccess = CreateObject("Access.application")
strAccessPath = appAccess.syscmd(9)
strDBName = "c:/documents and Settings/doni/my Documents/mdb/" & "importoutlook.mdb" 'strAccessPath & "email.mdb"
Set dbe = CreateObject("DAO.dbengine.36")
Set wks = dbe.workspaces(0)
Set dbs = wks.openDatabase(strDBName)
Set rst = dbs.openRecordset("tblHdrs")
rst.addnew
rst.remetente = itm.userProperties("Behalf")
rst.assunto = itm.userProperties("Subject")
rst.recebido = itm.userProperties("Received Date")
rst.fechado = itm.userProperties("Close Date")
rst.update
rst.close
dbs.close
End If
Next
End Sub
Hal yang sama sanggup kita lakukan jika kita lebih menentukan memakai server misalnya MSSQL, MySQL, atau PostGreSQL.
Berikut merupakan data yang mungkin dihasilkan:
Gambar Tabel import berdasarkan outlook
Bisa dicermati data diatas nir terlalu menarik buat dianalisis, karena sifatnya yang terlalu luas serta tidak khusus. Beberapa hal yang mampu dianalisis mungkin buat menemukan istilah terbanyak yg ada sehingga sanggup digunakan untuk memilih ketertarikan sang empunya email, atau siapa pengirim email terbanyak. Dalam bagian berikutnya kita akan mensimulasikan data yg lebih menarik untuk disimulasikan namun nir terlalu besar .
Analisis Data
Misalkan suatu pasangan orang tua yg sibuk memiliki account email yang digunakan buat mendapat email berisi laporan cuaca tiap hari serta kegiatan bermain anak menurut sang baby sitter. Template email telah diatur sedemikian rupa sehingga membentuk data menjadi berikut:
Gambar Data cuaca serta aktivitas bermain anak
Data tadi akan disimulasikan menggunakan memakai Weka. Dalam manualnya aplikasi Weka hanya mendapat format file ARFF. Walaupun kita bisa saja langsung memakai format arsip Access dengan membarui kode atau membuat kode kita sendiri menggunakan memanfaatkan library yg telah ada pada Weka.
Berikut adalah isi file weather.arff yang adalah hasil konversi menurut tabel email pada database Access.
@relation weather
@attribute outlook sunny, overcast, rainy
@attribute temperature real
@attribute humidity real
@attribute windy TRUE, FALSE
@attribute play yes, no
@data
sunny,85,85,FALSE,no
sunny,80,90,TRUE,no
overcast,83,86,FALSE,yes
rainy,70,96,FALSE,yes
rainy,68,80,FALSE,yes
rainy,65,70,TRUE,no
overcast,64,65,TRUE,yes
sunny,72,95,FALSE,no
sunny,69,70,FALSE,yes
rainy,75,80,FALSE,yes
sunny,75,70,TRUE,yes
overcast,72,90,TRUE,yes
overcast,81,75,FALSE,yes
rainy,71,91,TRUE,no
Sekarang kita bisa memulai menganalisa data tersebut dengan menggunakan algoritma yg sudah disediakan. Untuk menampakan apa yg bisa dilakukan decision tree learner pada data tadi, kita bisa memakai algoritma j4.8, yang merupakan implementasi Weka buat decision tree learner. Kita dapat mengetik:
java weka.classifiers.J48.J48 -t weather.arff
Pada command line. Atau memakai Graphical User Interface yang tersedia.
Berikut hasil yang kita dapatkan:
J48 pruned tree
outlook = sunny
humidity <= 75: yes (dua.0)
humidity > 75: no (tiga.0)
outlook = overcast: yes (4.0)
outlook = rainy
windy = TRUE: no (2.0)
windy = FALSE: yes (tiga.0)
Number of Leaves : 5
Size of the tree : 8
=== Error on pembinaan data ===
Correctly Classified Instances 14 100 %
Incorrectly Classified Instances 0 0 %
Mean absolute error 0
Root mean squared error 0
Total Number of Instances 14
=== Confusion Matrix ===
a b <-- as="" classified="" o:p="">-->
9 0 a = yes
0 5 b = no
=== Stratified cross-validation ===
Correctly Classified Instances 9 64.2857 %
Incorrectly Classified Instances 5 35.7143 %
Mean absolute error 0.3036
Root mean squared error 0.4813
Total Number of Instances 14
=== Confusion Matrix ===
a b <-- as="" classified="" o:p="">-->
7 dua a = yes
3 2 b = no
Bagian pertama adalah decision tree dalam bentuk teks. Seperti bisa kita lihat, percabangan pertama adalah pada atribut outlook, dan lalu pada level selanjutnya, percabangan terjadi masing-masing dalam humidity dan windy. Dalam struktur pohon, titik 2 merepresentasikan label kelas yang telah diberikan ke leaf eksklusif, diikuti dengan angka yg merepresentasikan jumlah instans yg memenuhi persyaratan tersebut.
Dibawah struktur pohon, jumlah leaf dicetak, lalu total jumlah simpul pada pohon (size of the tree).
Bagian kedua hasil menampakan kesalahan yang terjadi pada data trining. Dalam masalah ini, semua 14 data telah diklasifikasi dengan sahih, dan tak satupun yg dibiarkan tidak terklasifikasi. Suatu instans sanggup tidak diklasifikasi bila skema pembelajaran menahan anugerah suatu kelas label ke instans tersebut.
Kesimpulan berdasarkan data training bisa dipandang dalam confusion
matrix, yg menunjukkan berapa banyak instans berdasarkan tiap kelas sudah diassign ke tiap kelas. Dalam masalah ini, hanya elemen diagonal berdasarkan matriks yang non-zero karena semua instans sudah diklasifikasikan secara sahih.
Bagian terakhir berdasarkan output memberitahuakn output yg didapat menurut stratified ten-fold cross-validation. Modul evaluasi secara otomatis melakukan ten-fold cross-validation bila tidak diberikan arsip test. Seperti dapat kita lihat, lebih berdasarkan 30% instans (5 menurut 14) sudah diklasifikasikan secara salah pada validasi silang. Hal ini mengindikasikan bahwa output yang didapatakan dari training data dangat optimistik dibandingkan menggunakan apa yg mungkin didapat menurut himpunan tes yang independen dari source yang sama. Dari confusion matrix kita bisa melihat bahwa 2 instans kelas yes sudah dikelompokkan ke kelas no, serta 3 kelas no diassign ke kelas yes.