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.

Gambar Error rate sebagai fungsi jumlah epoch dalam jaringan saraf

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.

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 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.