Apa itu algoritma K-Means?. dalam bahasa yang sederhana dan mudah di pahami K-Means adalah sebuah algoritma yang digunakan untuk proses clustering maupung proses klasifikasi berdasarkan jarak suatu data dengan rata-rata dataset itu sendiri. Akan tetapi disini tidak akan membahas detail tentang algoritma K-Means maupun step by step dari K-means.
Pada tutorial ini yang akan dibahas adalah bagaiamana cara mengimplementasikan framework accord untuk mengcluster dataset. Di file dokumentasi dari accord sendiri sudah memberikan contoh bagaimana membaut algoritma k-means. pada studi kasus yang dibahas kali ini adalah clustering/pengelompokan data mahasiswa berdasarkan nilai semester 1, semester 2 dan semester 3.
Langkah pertama: jalankan IDE Visual studio, dan siapkan project form baru.
Langkah kedua : tambahkan beberapa komponen seperti satu datagridview, satu button, satu numericupdown dan juga sebuah label. atur dan tata sedemikian rupa sehingga tampilannya seperti pada gambar dibawah ini
langkah ketiga : lakukan add reference file dll accord.math.dll dan juga aforge.dll. sedangkan cara untuk cara melakukan add reference ke sebuah project ada di sini. selanjutnya tambahkan code program ini
using Accord.MachineLearning;
using AForge;
langkah ketiga : lakukan add reference file dll accord.math.dll dan juga aforge.dll. sedangkan cara untuk cara melakukan add reference ke sebuah project ada di sini. selanjutnya tambahkan code program ini
using Accord.MachineLearning;
using AForge;
langkah ke empat adalah menambahkan code program.
int[] hasilCluster;
double[][] data =
{
new double[] { 60, 90, 75 },
new double[] { 60, 65, 60 },
new double[] { 75, 80, 90 },
new double[] { 95, 95, 100 },
new double[] { 70, 65, 70 },
new double[] { 80, 60, 65 },
new double[] { 90, 65, 70 },
new double[] { 70, 70, 50 },
new double[] { 50, 60, 70 },
new double[] { 65, 90, 50 },
};
double[][] data =
{
new double[] { 60, 90, 75 },
new double[] { 60, 65, 60 },
new double[] { 75, 80, 90 },
new double[] { 95, 95, 100 },
new double[] { 70, 65, 70 },
new double[] { 80, 60, 65 },
new double[] { 90, 65, 70 },
new double[] { 70, 70, 50 },
new double[] { 50, 60, 70 },
new double[] { 65, 90, 50 },
};
maksud dari potongan diatas adalah kita membentuk dua variabel, yaitu variabel hasilCluster dan juga variabel data. Dimana pada variabel hasilCluster digunakan untuk menyimpan hasil dari proses cluster, data tersebut masuk kelas 0, kelas 1, kelas 2, kelas 3, kelas 4, dan seterusnya. sedangkan pada variabel data adalah variabel yang digunakan untuk menyimpan semua data yang akan diproses cluster, dalam hal ini data tersebut adalah data mahasiswa A s.d mahasiswa J
tambahkan juga code program yang digunakan untuk menampilkan data yang sudah kita simpan
private void showData()
{ dataGridView1.ColumnCount = 4;
dataGridView1.RowHeadersWidth = 120;
dataGridView1.Columns[0].Width = 70;
dataGridView1.Columns[1].Width = 70;
dataGridView1.Columns[2].Width = 70;
dataGridView1.Columns[3].Width = 80;
dataGridView1.Rows.Clear();
dataGridView1.Rows.Add(data.Length);
dataGridView1.Rows[0].HeaderCell.Value = "Mahasiswa A";
dataGridView1.Rows[1].HeaderCell.Value = "Mahasiswa B";
dataGridView1.Rows[2].HeaderCell.Value = "Mahasiswa C";
dataGridView1.Rows[3].HeaderCell.Value = "Mahasiswa D";
dataGridView1.Rows[4].HeaderCell.Value = "Mahasiswa E";
dataGridView1.Rows[5].HeaderCell.Value = "Mahasiswa F";
dataGridView1.Rows[6].HeaderCell.Value = "Mahasiswa G";
dataGridView1.Rows[7].HeaderCell.Value = "Mahasiswa H";
dataGridView1.Rows[8].HeaderCell.Value = "Mahasiswa I";
dataGridView1.Rows[9].HeaderCell.Value = "Mahasiswa J";
dataGridView1.Columns[0].HeaderText = "Nilai semester 1";
dataGridView1.Columns[1].HeaderText = "Nilai semester 2";
dataGridView1.Columns[2].HeaderText = "Nilai semester 3";
dataGridView1.Columns[3].HeaderText = "Kelompok mahasiswa ?";
for (int i=0;i<data.Length;i++)
{
dataGridView1[0,i].Value =data[i][0].ToString();
dataGridView1[1,i].Value =data[i][1].ToString();
dataGridView1[2,i].Value =data[i][2].ToString();
}
}
{ dataGridView1.ColumnCount = 4;
dataGridView1.RowHeadersWidth = 120;
dataGridView1.Columns[0].Width = 70;
dataGridView1.Columns[1].Width = 70;
dataGridView1.Columns[2].Width = 70;
dataGridView1.Columns[3].Width = 80;
dataGridView1.Rows.Clear();
dataGridView1.Rows.Add(data.Length);
dataGridView1.Rows[0].HeaderCell.Value = "Mahasiswa A";
dataGridView1.Rows[1].HeaderCell.Value = "Mahasiswa B";
dataGridView1.Rows[2].HeaderCell.Value = "Mahasiswa C";
dataGridView1.Rows[3].HeaderCell.Value = "Mahasiswa D";
dataGridView1.Rows[4].HeaderCell.Value = "Mahasiswa E";
dataGridView1.Rows[5].HeaderCell.Value = "Mahasiswa F";
dataGridView1.Rows[6].HeaderCell.Value = "Mahasiswa G";
dataGridView1.Rows[7].HeaderCell.Value = "Mahasiswa H";
dataGridView1.Rows[8].HeaderCell.Value = "Mahasiswa I";
dataGridView1.Rows[9].HeaderCell.Value = "Mahasiswa J";
dataGridView1.Columns[0].HeaderText = "Nilai semester 1";
dataGridView1.Columns[1].HeaderText = "Nilai semester 2";
dataGridView1.Columns[2].HeaderText = "Nilai semester 3";
dataGridView1.Columns[3].HeaderText = "Kelompok mahasiswa ?";
for (int i=0;i<data.Length;i++)
{
dataGridView1[0,i].Value =data[i][0].ToString();
dataGridView1[1,i].Value =data[i][1].ToString();
dataGridView1[2,i].Value =data[i][2].ToString();
}
}
potongan code diatas digunakan untuk menampilkan data ke datagirdview. sekarang tambahkan inti utama dari algoritma K-Means Menggunakan accord
KMeans oKmeas = new KMeans(Convert.ToInt16(numericUpDown1.Value));
hasilCluster = oKmeas.Compute(data);
for(int i=0;i<hasilCluster.Length;i++)
{
dataGridView1[3, i].Value = hasilCluster[i].ToString();
}
hasilCluster = oKmeas.Compute(data);
for(int i=0;i<hasilCluster.Length;i++)
{
dataGridView1[3, i].Value = hasilCluster[i].ToString();
}
KMeans adalah kelas yang telah disediakan oleh framework accord, sehingga untuk menggunakannya kita hanya perlu melakukan pembentukan object.
KMean oKmeans=new Kmeans(parameter/argumen yang)
Sedangkan parameter atau argumen adalah sebuah tipe data integer, dimana parameter ini digunakan untuk membetuk jumlah cluster yang kita inginkan. misalnya dari sekelompok data mahasiswa yang berjumlah 10 ingin dilakukan proses cluster menjadi 3 kelompok, maka source codenya seperti dibawah ini
KMean oKmeans=new Kmeans(3)
ketika code program oKmeans.Computer(data) di jalankan maka akan mengembalikan nilai sebuah array yang isinya adalah isi dari anggota class data tersebut. sehingga hasilCluster=oKmeas,Compute(data) adalah sebuah proses menjalankan KMeans dan memberikan nilai balik berupa indek anggota kelompok masing-masing data yang disimpan di variabel hasilCluster. perulangan for digunakan untuk menampilkan kembali ke datagird hasil dari proses clustering.
Jika semua langkah-langkah diatas dilakukan dengan benar. maka hasil running dari program seperti gambar berikut ini
Hasil Running 1. Ketika program dijalankan pertama kali
Hasil Running 2. Ketika button k-Mean di klik dan jumlah clus yang di set adalah 1
Dari gambar preview running program diatas, terlihat bahwasanya dari mahasiswa A s.d mahasiswa J jiak dilakukan proses cluster dengan jumlah cluster 1, semua mahasiswa masuk kedalam kelas 0, yang artinya semua mahasiswa menjadi satu kelompok,
Hasil Running 3. Ketika button k-Mean di klik dan jumlah clus yang di set adalah 2
Dari hasil running diatas terlihat, bahwa dengan mengganti jumlah class, hasil yang didapat setelah proses clastering pun berbeda, ini dilihat dari kolom "kelompok mahasiswa" dimana ada yang bernilai 0 dan juga ada yang bernilai 1, maksudnya adalah dari mahasiswa A s.d mahasiswa J dibagi menjadi dua kelompok. pembagian kelompok berdasarkan nilai semester 1 dan semester 2. mahasiswa A,C,D adalah mahasiswa dalam satu kelompok, mahasiswa B,E,F,G,H,I,J juga dalam satu kelompok.
Hasil Running 4. Ketika button k-Mean di klik dan jumlah clus yang di set adalah3
hasil diatas menunjukan bahwa dengan jumlah clas yang bebeda, hasil dari cluster nya pun juga ikut berubah. A,B,I,J menjadi satu kelas, mahasiswa C dan D menjadi satu kelas, kelas E,F,G,dan H menjadi satu kelompok. dengan demikian mempunyai arti bahwa mahasiswa A,B,I,J mempunyai karakteristik yang mirip, begitu juga C,D mempunyai karakteristik yang sama, E,F,G,H juga mempunyai karakteristik yang mirip. bisa dikatakan bahwa kelompok yang berlabel 2 adalah mahasiswa yang nilainya menengah, mahasiswa yang berlabel 0 adalah mahasiswa dengan nilai yang kurang, sedangkan mahasiswa yang berlabel 1 adalah mahasiswa yang nilainya cukup bagus.
untuk mempermudah dalam mempelajari project ini silahkan download full projectnya
mediafire: http://adf.ly/bnCfS
4shared : http://adf.ly/bnCHn
ziddu : http://adf.ly/bnCRg
ditinggalkan komen jika link sudah tidak aktif
Artikel Terkait
- Algoritma Learning Vector Quantization in C# ( C Sharp )
- Algoritma Shannon Fano di C# (C-Sharp)
- Algoritma RLE (Run-length encoding) di C#
- Program Algoritma LZW di C#
- Alasan pentingnya menggunakan FRAMEWORK di C# (C Sharp)
- operasi operasi matix di C# (Eigen vector Eigen value dkk)
- memanggil dan menjalankan fungsi matlab di C#
Mohon bantuan untuk kedepan nya :D saya pakai program ini
BalasHapusada program c4.5 gak? klo ada boleh minta sebagai bahan refrensi... andikasant@gmail.com ini email saya
BalasHapusTerimakasih gan, http://www.csharp-indonesia.com , memang sangat membantu saya.
BalasHapusnumpang sedot gan.
BalasHapus2015-11-24 xiaozhengm
BalasHapuscanada gooses
michael kors handbags
nike roshe runs
michael kors outlet
air jordans
longchamp bags
michael kors outlet online
tiffany and co
ugg outlet
canada goose outlet
ray ban sunglasses
nike air max
hermes uk
coach factory outlet
ugg sale
ugg outlet
michael kors handbags
coach outlet
ugg outlet store
juicy couture
burberry outlet
jordan 4 toro
air force 1
north face jackets
north face outlet
ralph lauren uk
new balance outlet
longchamp outlet
kate spade outlet
toms outlet store
hollister uk
north face uk
nike roshe run women
coach outlet
soccer jerseys
coach factory outlet
true religion outlet
gucci outlet
chaussure louboutin
sac louis vuitton, ugg,uggs,uggs canada, supra shoes, coach outlet, canada goose outlet, doke & gabbana, hollister, montre pas cher, pandora jewelry, swarovski uk, ugg pas cher, canada goose, juicy couture outlet, links of london uk, moncler uk, moncler, louis vuitton, canada goose jackets, louis vuitton uk, thomas sabo uk, barbour, moncler, moncler jackets, lancel, canada goose outlet, ugg,ugg australia,ugg italia, barbour jackets uk, canada goose, replica watches, karen millen uk, moncler, pandora jewelry, juicy couture outlet, swarovski jewelry, canada goose jackets, toms shoes, louis vuitton, marc jacobs, pandora charms, ugg uk, canada goose uk, canada goose pas cher, moncler outlet, bottes ugg pas cher, pandora uk, wedding dresses uk, moncler, moncler pas cher, sac louis vuitton, converse shoes outlet
BalasHapusninest123 12.15
coach factory outlet
BalasHapusnmd adidas
ray ban sunglass,ray ban sunglasses,ray ban outlet,cheap ray bans,cheap ray ban sunglasses,cheap ray bans,ray bans
stan smith adidas
cartier
polo ralph lauren
yeezy boost 350
fitflops
instyler max
white converse
ray bans
michael kors outlet
sac longchamp pliage
calvin klein dresses
ralph lauren
michael kors outlet online
fitflops shoes
burberry outlet canada
reebok classic
pandora jewelry
adidas gazelle
supra store
omega speedmaster
nike roshe run
burberry outlet
air jordan shoes
under armour
fitflops sale clearance
coach outlet store online clearance
mlb jerseys wholesale
michael kors handbgas
nike shoes for cheap
oakley sunglasses outlet
michael kors outlet
fitflops sale clearance
reebok outlet store
adidas pure boost black
dior sunglasses 2016
michael kors outlet online
bottega veneta shoes
chenzhen20160510
vans shoes
BalasHapusredskins jerseys
air jordan 13
nike outlet store
nike roshe run shoes
jordan 4
kobe 9
tennessee titans jersey
nike soccer shoes
san antonio spurs
new york giants jersey
philadelphia eagles jerseys
chiefs jersey
browns jerseys
abercrombie outlet
san antonio spurs jersey
boston celtics
eagles jerseys
jacksonville jaguars jerseys
oklahoma city thunder
cardinals jersey
buffalo bills jersey
new balance shoes
vans outlet
air jordan 11
celine outlet online
arizona cardinals jersey
mizuno shoes
abercrombie and fitch
tods shoes
cleveland browns jersey
chicago blackhawks
miami dolphins jerseys
san francisco 49ers jersey
dallas cowboys jersey
linyuan0517
nike blazer low
BalasHapusoakley sunglasses
michael kors handbags wholesale
polo ralph lauren
michael kors handbags outlet
indianapolis colts jerseys
gucci borse
michael kors outlet online
michael kors handbags outlet
giants jersey
nike huarache
BalasHapusmichael kors handbags
gucci outlet
cheap oakley sunglasses
nike blazer pas cher
instyler max 2
nike air huarache
dallas cowboys jersey
michael kors handbags
nike tn
“Don’t hold back, don’t retreat from controversy” was one directive from the organizers of Dubai Watch Week as part of my invitation to moderate a panel at this year’s event, held last week.replica watches replica vacheron constantin replica tag heuer replica rolex replica patek philippe
BalasHapusAfter a week of intensive sessions, seminars, and socializing, Dubai Watch Week 2019 comes to a meaningful close and ends with a promise;replica franck muller the next event will take place in 2021, and the Horology Forum component of Dubai Watch Week will become a traveling platform.replica panerai replica omega replica iwc replica hublot
BalasHapusArtikel yang bagus, saya berhutang sesuatu kepada teman saya yang merekomendasikan. game mobile legends
BalasHapusThis internet site is really a walk-through its the knowledge you desired about it and didn’t know who need to. Glimpse here, and you’ll absolutely discover it. noticiasdealcorcon
BalasHapusIt’s difficult to acquire knowledgeable people on this topic, nevertheless, you sound like you know what you are dealing with! Thanks https://hadeelweb.com
BalasHapus