Tehnik Reduksi Data Menggunakan Principal Component Analysis

Reduksi data adalah proses analisis untuk memilih, memusatkan perhatian, meyederhanakan, mengabstraksikan serta mentransformasikan data yang muncul dari catatan-catatan lapangan.  Mereduksi data berarti membuat rangkuman, memilih hal-hal pokok, memfokuskan pada hal-hal penting, mencari tema dan pola, serta membuang yang dianggap tidak perlu. Didalam Gudang data terdapat Terabyte data yang ukurannya relatif sangat besar sehingg analisis/menambang data kompleks bisa membutuhkan waktu sangat lama untuk dijalankan pada data set komplit (tak efisien).

Reduksi data berarti : Mengurangi ukuran data set tetapi menghasilkan hasil analitis yang sama (hampir sama)

Tehnik Reduksi data

Ada banyak metode data mining yang dapat bekerja dengan baik pada data berdimensi rendah, sedangkan set data dalam data mining umum nya berdimensi tinggi yang memiliki banyak fitur sehingga selain di perlukan pemrosesan awal seperti binerisasi dan aggregasi, reduksi dimensi data juga penting dilakukan. jika kita mengurangi dimensionalitas data secara langsung maka kemungkinan ada karakteristik data yang hilang bisa saja fitur yang di buang adalah termasuk fitur yang berpengaruh.

Metode reduksi dimensionalitas data bekerja dengan cara tertentu untuk menangkap karakteristik data dengan memetakan set data dari dimensi semula ke dimensi lain yang relatif rendah. Pemetaan ini menghasilkan prinsipal componen yang kemudian dapat diambil komponen atau fitur dari dimensi baru yang mempunyai pengaruh yang besar pada set data dan membuang data yang tidak berpengaruh. salah satu metode yang sudah digunakan secara luas adalah Principal Component Analysis

Principal Component Analysis(PCA)

Metode ini melakukan pemetaan/tranformasi set data dari dimensi lama kedimensi yang baru dengan memanfaatkan tehnik Aljabar Linier. PCA memerlukan masukan data yang mempunyai sifat zero-mean pada setiap fitur nya. sifat zero-mean didapat dengan mengurangkan semua nilai dengan nilai rata-rata nya. Set data X dengan dimensi MxN dimana M adalah jumlah data dan N adalah jumlah Fitur, akan tampak seperti berikut :

Matrix

Untuk fitur ke-j, semua nilai pada kolom tersebut dikurangi dengan nilai rata-rata nya, diformulasikan dengan.

covariance-edrianhadinatai=1,2, … , M dan j adalah kolom ke-j

Selanjutnya dilakukan perhitungan matrix kovarian dari matrix X, yaitu Cx. formula yang digunakan adalah dot product untuk setiap fitur nya.

MatrixCovarian-edrianhadinataN adalah Jumlah Fitur dan XT adalah Matrix Transpose dari X

Sifat-sifat Cx :

1.Cx adalah matrix simetris bujur sangkar berukuran NxN
2.Bagian Diagonal Utama (dari kiri atas ke bawah) adalah nilai varian masing-masing fitur sesuai index kolom nya.
3.Bagian selain diagonal utama adalah kovarian diantara pasangan dua fitur yang berkesesuaian.
Matrix Cx Menangkap kovarian diantara semua pasangan yang mungkin dari fitur data set data matrix x.
Nilai kovarian merefleksikan noise dan redudansi pada fitur
Tujuan PCA :
1.Meminimalkan redudansi yang di ukur oleh nilai jarak dari kovarian
2.Memaksimalkan nilai keluaran pemetaan, diukur dengan varian

Jika Y adalah matrix set data hasil pemetaan dan Cy adalah matrix covarian dari Y. maka :

  1. Semuan elemen selain diagonal Utama Haruslah nol, maka Cy harus matrix diagonal(Cy Matrix terkorelasi).
  2. Peletakan dimensi dalam Y dari kiri ke kanan di urutkan menurun.
Cara yang umum digunakan adalah dengan mencari Eigen Value dan Eigen Vector

eigenVectordanValue

dengan mencari matrix ortonormal P dimana Y=PX dan Cy =(1/M)*YYT adalah matrix diagonal, dan kolom dari P adalah komponen utama dari X, Persamaan Cy Bisa di jabarkan :
penjabaran-matrixCy
Dengan mensubstidusikan persamaan tersebut kita mendapatkan persamaan Cy berdimensi NxN :
CySetiap Baris P adalah eigenvektor Cx
Di ambil dari buku :
Prasetyo, Eko. 2012. “Data Mining Konsep dan Aplikasi Menggunakan MATLAB”. Yogyakarta. C.V. Andi Offset. ISBN. 978-979-29-3282-9.

Metode Clustering Algoritma Fuzzy CMeans

Logika fuzzy pertama kali dikembangkan oleh Lotfi A. Zadeh, seorang ilmuan Amerika Serikat berkebangsaan Iran dari universitas California di Barkeley, melalui tulisannya pada tahun 1965.( Munir, R. 2005).[5]

Fuzzy secara bahasa diartikan sebagai kabur atau samar-samar. Suatu nilai dapat bernilai benar atau salah secara bersamaan. Dalam fuzzy dikenal derajat keanggotaan yang memiliki rentang nilai 0 (nol) hingga 1(satu). Berbeda dengan himpunan tegas yang memiliki nilai 1 atau 0 (ya atau tidak).

Logika fuzzy adalah suatu cara yang tepat untuk memetakan suatu ruang input kedalam suatu ruang output, mempunyai nilai kontinyu. Fuzzy dinyatakan dalam derajat dari suatu keanggotaan dan derajat dari kebenaran. Oleh sebab itu sesuatu dapat dikatakan sebagian benar dan sebagian salah pada waktu yang sama (Kusumadewi. 2003). [4]

Clustering

Clustering adalah suatu metode pengelompokan berdasarkan ukuran kedekatan(kemiripan).Clustering beda dengan group, kalau group berarti kelompok yang sama,kondisinya kalau tidak ya pasti bukan kelompoknya.Tetapi kalau cluster tidak harus sama akan tetapi pengelompokannya berdasarkan pada kedekatan dari suatu karakteristik sample yang ada

Macam-macam metode clustering :

  • Berbasis Metode Statistikk
  1. Hirarchical clustering method   : pada kasus untuk jumlah kelompok belum ditentukan terlebih dulu, contoh data-data hasil survey kuisioner. Macam-metode jenis ini:  Single Lingkage,Complete Linkage,Average Linkage dll.
  2. Non Hirarchical clustering method: Jumlah kelompok telah ditentukan terlebih dulu.Metode yang digunakan : K-Means.
  • Berbasis Fuzzy : Fuzzy C-Means
  • Berbasis Neural Network : Kohonen SOM, LVQ
  • Metode lain untuk optimasi centroid atau lebar cluster : Genetik Algoritma (GA)

Fuzzy C-Means

Fuzzy clustering adalah proses menentukan derajat keanggotaan, dan kemudian menggunakannya dengan memasukkannya kedalam elemen data kedalam satu kelompok cluster atau lebih.

Hal ini akan memberikan informasi kesamaan dari setiap objek. Satu dari sekian banyaknya algoritma fuzzy clustering yang digunakan adalah algoritma fuzzy clustering c means. Vektor dari fuzzy clustering, V={v1, v2, v3,…, vc}, merupakan sebuah fungsi objektif yang di defenisikan dengan derajat keanggotaan dari data Xj dan pusat cluster Vj.

Algoritma fuzzy clustering c means membagi data yang tersedia dari setiap elemen data berhingga lalu memasukkannya kedalam bagian dari koleksi cluster yang dipengaruhi oleh beberapa kriteria yang diberikan. Berikan satu kumpulan data berhingga. X= {x1,…, xn } dan pusat data.

fuzzyclustering1_edrian

Dimana μ ij adalah derajat keanggotaan dari Xj dan pusat cluster adalah sebuah bagian dari keanggotaan matriks [μ ij]. d2 adalahakar dari Euclidean distance dan m adalah parameter fuzzy yang rata-rata derajat kekaburan dari setiap data derajat keanggotaan tidak lebih besar dari 1,0 Ravichandran (2009).[9]

Output dari Fuzzy C-Means merupakan deretan pusat cluster dan beberapa derajat keanggotaan untuk tiap-tiap titik data. Informasi ini dapat digunakan untuk membangun suatu fuzzy inference system.

Algoritma Fuzzy Clustering Means (FCM)

Algoritma Fuzzy C-Means adalah sebagai berikut:

      1. Input data yang akan dicluster X, berupa matriks berukuran n x m (n=jumlah sample data, m=atribut setiap data). Xij=data sample ke-i (i=1,2,…,n), atribut ke-j (j=1,2,…,m).
      2. Tentukan :
        1. Jumlah cluster                                     = c
        2. Pangkat                                                  = w
        3. Maksimum iterasi                                = MaxIter
        4. Error terkecil yang diharapkan         = ξ
        5. Fungsi obyektif awal                            = Po =0
        6. Iterasi awal                                             = t   =
      3. Bangkitkan nilai acak μik, i=1,2,…,n; k=1,2,…,c sebagai elemen-elemen matriks partisi awal μik. μik adalah derajat keanggotaan yang merujuk pada seberapa besar kemungkinan suatu data bisa menjadi anggota ke dalam suatu cluster.Posisi dan nilai matriks dibangun secara random. Dimana nilai keangotaan terletak pada interval 0 sampai dengan 1. Pada posisi awal matriks partisi U masih belum akurat begitu juga pusat clusternya. Sehingga kecendrungan data untuk masuk suatu cluster juga belum akurat.uawal
      4. Hitung pusat Cluster ke-k: Vkj ,dengan k=1,2,…c dan j=1,2,…m. dimana Xijadalah variabel fuzzy yang digunakan dan w adalah bobot.clustercenter_edrianhadinataFungsi objektif digunakan sebagai syarat perulangan untuk mendapatkan pusat cluster yang tepat. Sehingga diperoleh kecendrungan data untuk masuk ke cluster mana pada step akhir.
      5. Hitung fungsi obyektif pada iterasi ke-t, PtPt_fungsi Objecktif-edrian hadinata
      6. Perhitungan fungsi objektif Pt dimana nilai variabel fuzzy Xij di kurang dengan dengan pusat cluster Vkjkemudian hasil pengurangannya di kuadradkan lalu masing-masing hasil kuadrad di jumlahkan untuk dikali dengan kuadrad dari derajat keanggotaan μik untuk tiap cluster. Setelah itu jumlahkan semua nilai di semua cluster untuk mendapatkan fungsi objektif Pt.
      7. Hitung perubahan matriks partisi:perubahan_matrix_partisi_edriandengan: i=1,2,…n dan k=1,2,..c.
        Untuk mencari perubahan matrik partisi μik,pengurangan nilai variabel fuzzy Xij di lakukan kembali terhadap pusat cluster Vkjlalu dikuadradkan.  Kemudian dijumlahkan lalu dipangkatkan dengan -1/(w-1) dengan bobot, w=2 hasilnya setiap data dipangkatkan dengan -1. Setelah proses perhitungan dilakukan, normalisasikan semua data derajat keanggotaan baru dengan cara menjumlahkan derajat keanggotaan baru k=1,…c, hasilnya kemudian dibagi dengan derajat keanggotaan yang baru. Proses ini dilakukan agar derajat keanggotaan yang baru mempunyai rentang antara 0 dan tidak lebih dari 1
      8. Cek kondisi berhenti:a)    jika:( |Pt – Pt-1 |< ξ) atau (t>maxIter) maka berhenti.b)   jika tidak, t=t+1, ulangi langkah ke-4.

Daftar Pustaka :

[1] Cox, Earl. 2001. The Fuzzy System Handbook. AP Professional

[2] Hari dan Kusumadewi. 2004. Aplikasi Logika Fuzzy untuk Pendukung Keputusan. Yogyakarta: Graha Ilmu.

[3] Kadir, Abdul. 2003. Dasar Pemrograman Web Dinamis Menggunakan PHP. Yogyakarta : ANDI

[4] Kusumadewi, Sri. 2002. Analisis & Desain Sistem Fuzzy Menggunakan Tool Box Matlab. Yogyakarta: Graha Ilmu

[5] Kusumadewi, Sri. 2003.  Artificial Intelligence: Teknik dan Aplikasinya. Yogyakarta: Graha Ilmu.

[6] Munir, Rinaldi. 2005. Matematika Diskrit. Bandung: Informatika

[7] Saaty, Thomas L. 2001. Decision Making for Leader, Fourth edition,    University of  Pittsburgh: RWS publication.

[8] Turban, E., Aronson, J. E., dan  Liang, T. P. 2005. Sistem Pendukung Keputusan dan Sistem Cerdas. Terjemahan Dwi Prabantini. Yogyakarta : ANDI

[9] Ravichandran, and Dinakaran, K. 2009. Hybrid Fuzzy C-Means Clustering Technique for Gene Expression Data, Volume 1 Dept. of Computer Science and Engineering Hindustan Institute of Tech., Coimbatore, India: International Journal of Research and Reviews in Applied Sciences, ISSN: 2076-734X, EISSN: 2076-7366

Regresi Linier Sederhana

Regresi linier merupakan salah satu prediksi yang menggunakan garis lurus untuk menggambarkan hubungan diantara dua variabel atau lebih, dalam sebuah kasus terdapat dua variabel yaitu jarak(x) dan waktu tempuh(y). Tujuan dalam penulisan ini adalah mencari sebuah garis lurus yang sedekat mungkin dengan semua titik sehingga garis tersebut menjadi sahih untuk mewakili titik-titik tersebut. Sebuah garis lurus dapat di tulis dengan persamaan :

Persamaan Garis

Persamaan Garis

Y adalah variabel terpengaruh, Bo adalah sebuah konstanta, B1 adalah gradien garis, dan x adalah variabel pemberi pengaruh.

konstantaB0

gradienBi

Setelah kita hitung nilai dari persamaan tersebut kemudian. Pengetahuan apa yang kita peroleh? yang kita peroleh adalah waktu tempuh sama dengan B0 ditambah Bi kali jarak yang diprediksi. Setiap pertambahan jarak sejauh 1, waktu tempuh pun akan bertambah Selama Bi Menit.

Untuk Pembuatan program regresi linier menggunakan bahasa pemograman C++ berikut ini saya akan jelaskan :

Pertama-tama kita akan membuat headerfile dengan nama : regression.h

regression class

regression class

Kemudian untuk mengimplementasikannya kita akan membuat file : regresi.cpp, program yang berisi fungsi utama.

edrianhadinata-mainfunction

Daftar Refrensi :

Susanto, Sani. Ph.D dan Suryadi, Dedy. S.T., M.S.  2010. “Pengantar Data Mining Menggali dari Bongkahan Data”.Yogyakarta. C.V.Andi Offset. ISBN. 978-979-29-1649-2 .

Stroustroup,Bjarne. 1997. “C++ Programing Language 3rd Edition“. Murray Hill, New Jersey. AT &T Labs. Adison – Wesley Publising Company. ISBN. 0-201-88954-4

cplusplus.com.2013 , “Classes I“. http://www.cplusplus.com/doc/tutorial/classes/ (Minggu, 15 Desember 2013).

Apa itu data mining?

Saat ini, diakui atau tidak teknologi internet telah mengubah dunia dan cara pandang kita terhadap sesuatu hal yang didasarkan pada jutaan informasi yang kita peroleh. Masih lekat pada ingatan kita sebelum teknologi ini memasyarakat hingga kepelosok-pelosok dunia. Pada saat itu kegiatan mencari, memperoleh dan memiliki informasi bukanlah hal mudah untuk di lakukan karena bahan baku informasi sulit untuk di miliki.

data mining, proses

menjelaskan tentang proses data mining

Kondisi-kondisi tersebut tentulah sangat berbeda dengan saat ini. Saat ini beragam informasi secara mudahnya bisa kita miliki. Melalui perangkat teknologi informasi smart phone dan media digital yang lain, kita saat ini benar-benar di terpa oleh gelombang dahsyat “torpedo data”. Melimpahnya data bahkan kita sebagai pengguna kita jualah yang menjadi bagian dari data tersebut. Ketika ingin mengakses media informasi dijejaring sosial atau sekedar memiliki email kita kerap sekali di suguhi halaman Registration user atau kita sebagai pelaku survey yang di kemas dalam sebuah website, dan dari situ jualah informasi di kumpulkan.

Ketika data yang melimpah tersebut disuguhkan didepan mata(sekalipun mungkin tidak untuk kita miliki) tidakkah membuat kita untuk bertanya “Pengetahuan apa yang dapat di hasilkan dari data atau informasi tersebut?”

Munculnya data mining didasarkan pada jumlah data yang tersimpan dalam basis data semakin besar. Misalnya, disebuah supermarket, ada banyak transaksi yang terjadi dalam sehari, semakin banyak jika terjadi transaksi terus menerus hingga setahun. Yang menjadi pertanyaan untuk data yang semakin menggunung jumlahnya dari waktu kewaktu itu adalah mau diapakan data tersebut? Apakah hanya untuk laporang akhir tahun kemudian di buang? Apakah hanya akan di kubur di gudang data? Tentu sayang sekali jika data tersebut tidak di manfaatkan untuk kepentingan perusahaan atau instansi tersebut.

Tan(2006) mendefenisikan data mining sebagai proses untuk mendapatkan informasi yang berguna dari gudang basis data yang besar. Data mining juga dapat di artikan sebagai pengekstraksian informasi baru yang di ambil dari bongkahan data yang besar yang membantu dalam proses pengambilan keputusan.

Istilah data mining kadang di sebut juga dengan knowledge discovery. Defenisi yang lain juga banyak yang mengacu ke istilah data mining tetapi istilah ini belum ada yang di bakukan atau di sepakati oleh semua pihak.  Namun setiap istilah dari data mining memiliki hakikat yang sama sebagai disiplin ilmu yang tujuan nya untuk menemukan, menggali, atau menambang pengetahuan dari data atau informasi yang kita miliki. Kegiatan inilah yang menjadi garapan atau perhatian utama dari disiplin ilmu data mining.

Daftar Refrensi :

Susanto, Sani. Ph.D dan Suryadi, Dedy. S.T., M.S.  2010. “Pengantar Data Mining Menggali dari Bongkahan Data”.Yogyakarta. C.V.Andi Offset. ISBN. 978-979-29-1649-2 .

Prasetyo, Eko. 2012. “Data Mining Konsep dan Aplikasi Menggunakan MATLAB”. Yogyakarta. C.V. Andi Offset. ISBN. 978-979-29-3282-9.