TUJUAN PRAKTIKUM
Mahasiswa dapat memahami Tipe data, Eksplorasi Data, Statistika ringkasan, Visualisasi
menggunakan Weka dan R.
TEORI PENUNJANG
Eksplorasi Data
Eksplorasi data merupakan langkah untuk memahami data sebelum melakukan
praproses. Pemahaman data yang akan di-mining dapat membantu dalam menentukan
teknik-teknik praproses dan analisis terhadap data sebelum dilakukan tugas data mining.
Dalam eksplorasi data, hal yang harus diperhatikan yaitu tipe data. Tipe data terdiri atas
empat jenis, yaitu nominal, ordinal, interval, dan rasio. Penjelasan dan perbedaan setiap tipe
data tersebut dapat dilihat pada Tabel 1.
Eksplorasi data dilakukan sebagai langkah awal untuk mengetahui karakteristik dari
data. Tahapan ini dilakukan untuk menyeleksi teknik pemrosesan dan analisis data yang
sesuai untuk dataset yang dimiliki. Eksplorasi data menggunakan R dimulai dengan
memeriksa dimensi data, mencari statistika ringkasan, serta menampilkan berbagai jenis
grafik seperti pie chart dan histogram.
Kategorik Nominal Nilai dari atribut nominal adalah nama-nama PIN kartu ATM
(Kualitatif) sebagai pembeda antara satu dengan yang , NIM
lain. Nilai nominal menyediakan informasi Mahasiswa,
yang cukup untuk membedakan satu objek warna RGB ,
dengan objek yang lain. kode biner.
Operator aritmatik yang dapat digunakan ialah
sama dengan (=) atau tidak sama dengan ().
Weka dapat membantu tahap eksplorasi data, namun Weka hanya dapat mengenali
tipe data nominal dan numerik, sehingga kita harus teliti dalam mengkategorikan data untuk
tipe data ordinal dan interval. Untuk mengetahui lebih lanjut, kita menggunakan data
weather.arff yang telah tersedia di weka.
a. Statistika Ringkasan
Gambar 1 merupakan nilai statistika ringkasan dari atribut outlook yang memiliki tipe
data nominal. Seperti yang kita tahu, tipe data nilai outlook {sunny, overcast, rainy} tidak
hanya dapat dilihat dari nilai, namun juga dapat diurutkan, sehingga atribut outlook juga bisa
dikategorikan sebagai ordinal. Gambar 1 hanya menampilkan hasil count pada Weka.
Gambar 1 Statistika ringkasan dari atribut outlook
Gambar 2 merupakan nilai statistika ringkasan dari atribut temperature yang memiliki
tipe data numerik. Berdasarkan dari penjelasan sebelumnya, tipe data numerik terbagi
menjadi dua jenis, yaitu interval dan rasio. Untuk kasus ini, tipe data atribut temperature
masuk kedalam kategori interval. Nilai statistika yang muncul berupa minimum, maximum,
mean, dan StdDev.
b. Visualisasi
Visualisasi yang tersedia pada Weka yaitu histogram dan scatter plot. Histogram pada
Weka terdapat pada tab Preprocess sedangkan scatter plot terdapat pada tab Visualize.
Pada scatter plot, setiap objek data diplot sebagai titik dalam bidang 2-dimensi
dengan menggunakan nilai-nilai dari dua atribut sebagai koordinat x dan y. Gambar 5
merupakan contoh visualisasi scatter plot untuk atribut temperature dan humidity.
Eksplorasi pada R tidak jauh berbeda dengan weka, hanya saja di R memiliki tipe data
dan visualisasi data yang lebih lengkap dibandingkan Weka. Dengan menggunakan R kita
juga bisa melakukan eksplorasi pada multiple variables. Eksplorasi pada multiple variables
dilakukan untuk mengetahui hubungan antara dua variabel atau lebih. Pada R, hal ini dapat
dilihat melalui bar chart, boxplot, scatter plot, pairs plot, serta dengan menghitung nilai
covariance dan correlation a ntar variabel. Untuk lebih jelasnya kita import data
insurance.csv (tersedia di http://bit.ly/insurance_csv) dan simpan pada variabel data.
a. Statistika Ringkasan
Fungsi str() digunakan untuk melihat tipe data dari setiap atribut pada sebuah
dataframe.
ins <- read.csv("~/insurance.csv")
str(ins)
Jika dibandingkan dengan Weka, R memiliki tipe data yang lebih lengkap seperti
int, num, dan Factor. Untuk melihat statistika ringkasan (misal pada atribut age)
jalankan perintah:
summary(ins$age)
Statistika ringkasan pada R terdiri dari nilai minimum, Q1, median, mean, Q3, dan
nilai maksimum. Perbedaan dengan Weka adalah ringkasan pada Weka tidak memuat
Q1 dan Q2, sementara R tidak memuat standar deviasi. Untuk melihat standar deviasi
pada R, ketik perintah:
sd(ins$age)
b. Visualisasi Data
Beberapa visualisasi yang tersedia pada R yaitu histogram, pie chart, line chart,
density, boxplot, scatter plot. Untuk membuat boxplot ketikkan perintah:
boxplot(ins$bmi, main="Boxplot of Insurance BMI",
ylab="BMI")
Bentuk histogram tersebut cenderung condong ke kiri dan terdapat pencilan pada data
tersebut.
Gambar di atas menunjukkan grafik densitas untuk atribut BMI. Dapat dilihat bahwa
atribut BMI cenderung terdistribusi normal dan sedikit menjulur ke kanan.
Eksplorasi data pada multiple variables dilakukan untuk melihat hubungan antara dua
buah variabel atau lebih. Untuk melihat hubungan tersebut bisa dilakukan dengan
menghitung nilai covariance dan correlation antara variabel tersebut.
cov(ins$age, ins$bmi)
cov(ins[, c(“age”, “bmi”, “children”, “charges”)])
cor(ins$age, ins$bmi)
cor(ins[, c("age", "bmi", “children”, “charges”)])
Visualisasi data untuk multiple variables di R berupa boxplot, scatter plot, 3D scatter
plot, pairs plot, heat map, level plot, contour, 3D surface, dan parallel coordinates.
1) Boxplot
boxplot(bmi ~ age, data = ins)
2) Scatter plot
# Scatter plot
with(ins, plot(age, bmi, col = sex, pch =
as.numeric(sex))
3) 3D Scatter plot
# Static 3D scatter plot
library(scatterplot3d)
with(ins, scatterplot3d(age, bmi, charges))
4) Pairs plot
pairs(ins[, c("age", "bmi", "children", "charges")])
5) Heat map
distMatrix <- as.matrix(dist(ins[, c("age", "bmi",
"children", "charges")])
heatmap(distMatrix)
6) Level plot
library(lattice)
levelplot(children ~ bmi * age, ins, cuts = 5,
col.regions = grey.colors(6)[6:1])
7) Contour
filled.contour(volcano, color = terrain.colors, asp = 1,
plot.axes = contour(volcano, add = T))
8) 3D surface
persp(volcano, theta = 25, phi = 30, expand = 0.5, col =
"lightblue")
9) Parallel Coordinate
# Parallel coordinates
library(MASS)
parcoord(ins[, c("age", "bmi", "children", "charges")],
col = ins$sex)
Hasil plot visualisasi data dapat disimpan dalam file dengan ekstensi .png, .jpeg, .pdf,
atau .ps.
# Save as a PNG file
png(“myPlot.png”)
plot(1:10, log(1:10))
graphics.off()