Machine Learning Unsupervised Learning K-Means Clustering

Prose K-Means Clustering terdiri dari

  1. penentuan nilai k
  2. memilih posisi centroid awal
  3. menghitung jarak masing-masing data point ke centroid
  4. ulangi perhitungan nilai centroid

nilai k disini merupakan jumlah cluster yang digunakan, berbeda dengan hyrarchical clustering yang jumlah clusternya ditentukan secara otomatis berdasarkan data, sedangkan k-means clustering tergolong flat clustering yang jumlah kelompoknya ditentukan terlebih dahulu.

centroid ditentukan dengan menghitung titik pusat dari setiap cluster yang ada.

jarak dati tiak-tiap ccentroid akan digunakan untuk oenentuan cluster dari suatu data point.

untuk mendapatkan cluster yang lebih tepat mesin akan secara berulangkali menentukan niali centroid dan menghitung jarak sehingga pada akhirnya semua data terkelompokan.

Untuk mempraktekannya digunakan contoh dataset berikut Download

data tersebut merupakan data kecepatan dan beban yang dimiliki oleh suatu truck.

untuk proses awal dilakukan import library

"import Libraries"
import numpy as np
import pandas as pd
%matplotlib inline
import matplotlib.pyplot as plt
import seaborn as sns
plt.style.use('ggplot')
import graphviz
from sklearn import cluster
sns.set()

Selanjutnya pemanggilan data dengan memastikan file sudah terletak pada directory yang benar sebelumnya

df = pd.read_csv('DataSpeedLoadTruck.csv')

untuk melihat persebaran data dapat digunakan

speed = df['Vehicle_speed_sensor'].values
Engine_Load = df['Engine_Load'].values
X = np.array(list(zip(speed, Engine_Load)))
plt.scatter(speed, Engine_Load, s=7)
plt.xlabel('speed')
plt.ylabel('Engine load')

sehingga dihasilkan

dilakukan inisialisasi ulang

df_2_vars = df

data = df_2_vars.values
data

sehingga data berubah format menjadi data array

selanjutnya melakukan clustering atau proses fitting dengan menentukan jumlah clusternya, disini k merupakan jumlah cluster

k = 2 
kmeans = cluster.KMeans(n_clusters = k)
kmeans.fit(data)
labels = kmeans.predict(data)
labels
Centroid = kmeans.cluster_centers_
C_x = Centroid[:,0]
C_y = Centroid[:,1]
Centroid
plt.xlabel('speed')
plt.ylabel('Engine load')
plt.scatter(speed, Engine_Load,c=labels, s=7, cmap = plt.cm.cool)
plt.scatter(C_x,C_y, marker = '*' , s = 200 , c = 'g')

Leave a comment

Design a site like this with WordPress.com
Get started