Disusun Oleh :
SISTEM INFORMASI
2017
BAB I
PENDAHULUAN
K-means merupakan salah satu algoritma clustering .Tujuan algoritma ini yaitu
untuk membagi data menjadi beberapa kelompok. Algoritma ini menerima masukan
berupa data tanpa label kelas. Hal ini berbeda dengan supervised learning yang
menerima masukan berupa vektor (x1 , y1) , (x2 , y2) , , (xi , yi), di mana xi
merupakan data dari suatu data pelatihan dan yi merupakan label kelas untuk xi.
Pada algoritma pembelajaran ini, komputer mengelompokkan sendiri data-data
yang menjadi masukannya tanpa mengetahui terlebih dulu target kelasnya.
Pembelajaran ini termasuk dalam unsupervised learning. Masukan yang diterima
adalah data atau objek dan k buah kelompok (cluster) yang diinginkan. Algoritma ini
akan mengelompokkan data atau objek ke dalam k buah kelompok tersebut. Pada
setiap cluster terdapat titik pusat (centroid) yang merepresentasikan cluster tersebut.
Data clustering menggunakan metode K-Means ini secara umum dilakukan dengan
algoritma dasar sebagai berikut (Yudi Agusta, 2007) :
1. Tentukan jumlah cluster
2. Alokasikan data ke dalam cluster secara random
3. Hitung centroid/ rata-rata dari data yang ada di masing-masing cluster
4. Alokasikan masing-masing data ke centroid/ rata-rata terdekat
5. Kembali ke Step 3, apabila masih ada data yang berpindah cluster atau apabila
perubahan nilai centroid, ada yang di atas nilai threshold yang ditentukan atau
apabila perubahan nilai pada objective function yang digunakan di atas nilai
threshold yang ditentukan.
Distance Space Untuk Menghitung Jarak Antara Data dan Centroid:
Beberapa distance space telah diimplementasikan dalam menghitung jarak (distance)
antara data dan centroid termasuk di antaranya
L1 (Manhattan/City Block) distance space,
L2 (Euclidean) distance space, dan
Lp (Minkowski) distance space.
Jarak antara dua titik x1 dan x2 pada Manhattan/City Block distance space dihitung
dengan menggunakan rumus sebagai berikut:
dimana:
p : Dimensi data
Lp (Minkowski) distance space yang merupakan generalisasi dari beberapa distance
space yang ada seperti L1 (Manhattan/City Block) dan L2 (Euclidean), juga telah
diimplementasikan[9]. Tetapi secara umum distance space yang sering digunakan
adalah Manhattan dan Euclidean. Euclidean sering digunakan karena penghitungan
jarak dalam distance space ini merupakan jarak terpendek yang bisa didapatkan antara
dua titik yang diperhitungkan, sedangkan Manhattan sering digunakan karena
kemampuannya dalam mendeteksi keadaan khusus seperti keberadaaan outliers
dengan lebih baik.
Di mana:
k = titik centroid dari cluster ke-K
Nk = banyaknya data pada cluster ke-K
xq = data ke-q pada cluster ke-K
C. Hirarki Agglomerative
Penelitian ini menggunakan data-data teks pada media sosial twitter yang
berkaitan dengan kata kunci banjir. Tujuan akhir penelitian ini adalah dapat
mendeskripsikan topik utama dan kata - kata yang melekat pada banjir, serta
mengelompokkan topik - topik lain yang saling berkaitan. Populasi dari penelitian ini
adalah berita/dokumen (teks) pada sosial media twitter yang termasuk dalam kategori
microblogging tentangbanjir. Tweet-tweet pengguna pada twitter dapat dijadikan
sebagai topik-topik pada media online. Sampel dan Teknik Pengambilan Sampel
Sampel yang diambil adalah data teks dari twitter yang diambil dengan permintaan
kepada sistem sebanyak 250 tweet pada periode waktu tertentu.
Sumber Data dan Metode Pengumpulan Data Data yang digunakan adalah data
primer yang dikumpulkan dari media sosial twitter. Data diambil dengan cara
mendownload dan mengumpulkan data tweet mengenai banjir dari hasil pencarian
search engine twitter (mesin pencarian twitter) dan menyimpannya menggunakan
suatu program dengan software R. Tahapan Analisis Data Secara umum, tahapan
melakukan analisis text mining dapat digambarkan dalam diagram alir berikut :
Contoh scriptnya :
install.packages("twitteR")
install.packages("ROAuth")
install.packages("tm")
install.packages("ggplot2")
install.packages("wordcloud")
install.packages("plyr")
install.packages("RTextTools")
install.packages("devtools")
install.packages("e1071")
install.packages("fpc")
install.packages("cluster")
install.packages("datasets")
require(devtools)
library(e1071)
library(twitteR)
library(ROAuth)
library(tm)
library(ggplot2)
library(wordcloud)
library(plyr)
library(RTextTools)
library(fpc)
library(cluster)
library(datasets)
setup_twitter_oauth("JsZqhclFgxd0U1VG1jmeKzLfB","40l9QX8fZOscjgG1UvFmhF
OoziedKnw8HJWYO7c5sO7T7fXBcn","861413684467220480-
gGYKh6cU87FrKem09cYUvP08iBUvbTv","agaOa07UN9S5xhZUZ7B41tfGdO2qtX
l8LHhSTTGpH8ZSn")
#WORDCLOUD
m <- as.matrix(tdm)
# calculate the frequency of words and sort it by frequency
word.freq <- sort(rowSums(m), decreasing = T)
# colors
pal <- brewer.pal(9, "BuGn")[-(1:4)]
#k-means clustering
d <- dist(term.freq, method="euclidian")
carsCluster <- kmeans(term.freq, 3)
clusplot(as.matrix(d), carsCluster$cluster, color=T, shade=T, labels=3, lines=0)
Gambar isi dari proses run script diatas :
Gambar
hasil
perhitungan
(Plots) :
Gambar hasil perhitungan K-mean twitter banjir
Hirarki
Clustering dengan pendekatan hirarki mengelompokkan data yang mirip dalam hirarki
yang sama dan yang tidak mirip di hirarki yang agak jauh. Ada dua metode yang
sering diterapkan yaitu agglomerative hieararchical clustering dan divisive
hierarchical clustering. Agglomerative melakukan proses clustering dari N cluster
menjadi satu kesatuan cluster, dimana N adalah jumlah data, sedangkan divisive
melakukan proses clustering yang sebaliknya yaitu dari satu cluster menjadi N cluster.
Beberapa metode hierarchical clustering yang sering digunakan dibedakan menurut
cara mereka untuk menghitung tingkat kemiripan. Ada yang menggunakan Single
Linkage, Complete Linkage, Average Linkage, Average Group Linkage dan lain-
lainnya. Seperti juga halnya dengan partition-based clustering, kita juga bisa memilih
jenis jarak yang digunakan untuk menghitung tingkat kemiripan antar data.
Contoh scriptnya :
install.packages("twitteR")
install.packages("ROAuth")
install.packages("tm")
install.packages("ggplot2")
install.packages("wordcloud")
install.packages("plyr")
install.packages("RTextTools")
install.packages("e1071")
library(e1071)
library(twitteR)
library(ROAuth)
library(tm)
library(ggplot2)
library(wordcloud)
library(plyr)
library(RTextTools)
library(e1071)
setup_twitter_oauth("JsZqhclFgxd0U1VG1jmeKzLfB","40l9QX8fZOscjgG1UvFmhF
OoziedKnw8HJWYO7c5sO7T7fXBcn","861413684467220480-
gGYKh6cU87FrKem09cYUvP08iBUvbTv","agaOa07UN9S5xhZUZ7B41tfGdO2qtX
l8LHhSTTGpH8ZSn")
Contoh Script :
install.packages("RTextTools")
install.packages("e1071")
install.packages("wordcloud")
install.packages("fpc")
install.packages("cluster")
library(tm)
library(ggplot2)
library(wordcloud)
library(plyr)
library(RTextTools)
library(e1071)
#referensi https://rstudio-pubs-
static.s3.amazonaws.com/31867_8236987cf0a8444e962ccd2aec46d9c3.html
cname <- file.path("/resources/data/teks")
cname
dir(cname)
docs <- Corpus(DirSource(cname))
summary(docs)
inspect(docs[2])
docs <- tm_map(docs, removePunctuation)
docs <- tm_map(docs, removeNumbers)
docs <- tm_map(docs, tolower)
docs <- tm_map(docs, removeWords, c("dapat", "yang","adalah","untuk","dan"))
m <- as.matrix(dtm)
dim(m)
write.csv(m, file="dtm.csv")
dtms <- removeSparseTerms(dtm, 0.1) # This makes a matrix that is 10% empty
space, maximum.
inspect(dtms)
ord <- order(freq)
freq[head(ord)]
findFreqTerms(dtm, lowfreq=10)
library(ggplot2)
wf <- data.frame(word=names(freq), freq=freq)
head(wf)
p <- ggplot(subset(wf, freq>50), aes(word, freq))
p <- p + geom_bar(stat="identity")
p <- p + theme(axis.text.x=element_text(angle=45, hjust=1))
p
library(wordcloud)
set.seed(142)
wordcloud(names(freq), freq, min.freq=5)
set.seed(142)
wordcloud(names(freq), freq, min.freq=2, scale=c(5, .1), colors=brewer.pal(6,
"Dark2"))
library(cluster)
##dtmss <- removeSparseTerms(dtm, 0.00001) # This makes a matrix that is only
15% empty space, maximum.
##inspect(dtmss)
Adiyana Imam dan Fajriya Hakim, 2015 Implementasi text nining pada mesin
pencarian twitter untuk menganalisis topik-topik terkait KPK dan JOKOWI,
Jurnal Prosiding Pendidikan Matematika UMS
Agusta Yudi, 2007. K-Means Penerapan Permasalahan dan Metode Terkait, Jurnal
Sistem dan Informatika Vol. 3 (Pebruari 2007), 47-60.
Zhao, Yanchang 2011. R and Data Mining: Examples and Case Studies. Elsevier.
sumber: http:// http://www.rdatamining.com/examples/kmeans-clustering
(29 November 2017)
https://www.academia.edu/33311024/KMeans_PAM_Hirarki.docx