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