Minggu, 17 Februari 2019

Python - KMeans Clustering

UPDATE: 17 FEBRUARI 2019
BAHASA: PYTHON
SYSTEM:
a.    Windows 10
b.    Python : 3.6.3
c.    Numpy : 1.14.2
d.    Pandas : 0.20.3
e.    Matplotlib: 2.2.2

PENGANTAR:

Kmeans clustering yang ditulis diambil dari referensi berikut:
  1. https://docs.opencv.org/3.0-beta/doc/py_tutorials/py_ml/py_kmeans/py_kmeans_understanding/py_kmeans_understanding.html
  2. https://docs.opencv.org/3.0-beta/doc/py_tutorials/py_ml/py_kmeans/py_kmeans_opencv/py_kmeans_opencv.html#additional-resources
Penulis menulis ulang diluar library opencv agar mudah dipelajari

DATASET:

Untuk dataset, kita mencoba untuk versi simple  dengan sebuah array berikut

data_masuk = np.array([[7,8],
                        [4,13],
                        [8,7],
                        [8 ,9],
                        [3 ,12],
                        [3 ,1],
                        [5 ,3],
                        [3 ,13],
                        [9 ,8],
                        [3 ,5],
                        [8 ,8],
                        [2 ,13],
                        [1 ,3],
                        [3 ,14]],dtype='float32')



Penggunaan library

 
kmeans = pustakakmeans.KMeans()
jumlah_kelas = 3
kmeans.hitung(data_masuk,jumlah_kelas,epsilon=0.01, max_iterasi=3)

print  ('center\n',kmeans.center)

plt.figure('plot data - www.softscients.web.id')
b = plt.scatter(data_masuk[:,0],data_masuk[:,1],s=40,c=u'b')
plt.hold(True)
plt.scatter(kmeans.center[:,0],kmeans.center[:,1],s=40,c=u'r')
plt.title('mencari centroid dengan kmeans clustering')
plt.show()

Kode lengkapnya sebagai berikut

import numpy as np
from  lib import pustakakmeans
from  matplotlib import pyplot as plt

data_masuk = np.array([[7,8],
                        [4,13],
                        [8,7],
                        [8 ,9],
                        [3 ,12],
                        [3 ,1],
                        [5 ,3],
                        [3 ,13],
                        [9 ,8],
                        [3 ,5],
                        [8 ,8],
                        [2 ,13],
                        [1 ,3],
                        [3 ,14]],dtype='float32')

kmeans = pustakakmeans.KMeans()
jumlah_kelas = 3
kmeans.hitung(data_masuk,jumlah_kelas,epsilon=0.01, max_iterasi=3)

print  ('center\n',kmeans.center)
#print ('klustering final',kmeans.label)

##bikin plot
plt.figure('plot data - www.softscients.web.id')
b = plt.scatter(data_masuk[:,0],data_masuk[:,1],s=40,c=u'b')
plt.hold(True)
plt.scatter(kmeans.center[:,0],kmeans.center[:,1],s=40,c=u'r')
plt.title('mencari centroid dengan kmeans clustering')
plt.show()

Output

Adapun untuk contoh lainnya sebagai berikut



center
 [[ 8.  8.]
 [ 3. 13.]
 [ 3.  3.]]


PUSTAKA KMEANS:

Ditulis menggunakan numpy sebagai library array nya.








Tidak ada komentar: