Hirarchical Clustering adalah Clustering yang dengan sendirinya datanya akan terkelompok
Sebagaicontoh digunakan data yang akan di generate seara otomatis oleh program. untuk menjalankannya digunakan jupiter notebook
penggunaan library
#import Libraries
import numpy as np
import pandas as pd
from sklearn.cluster import MeanShift
from sklearn.datasets.samples_generator import make_blobs
%matplotlib inline
import matplotlib.pyplot as plt
from matplotlib import style
import seaborn as sns
plt.style.use('ggplot')
import graphviz
from sklearn import cluster
sns.set()
pembuatan data set dengan penentuan center datanya, disini dibuat ada 3 centroid (titik tengah data) yaitu (1,1), (5,5),(3,10)
centers = [[1,1], [5,5],[3,10]]
X, _ = make_blobs (n_samples = 500, centers = centers, cluster_std = 1)
melakukan ploting
plt.scatter(X[:,0],X[:,1])
plt.show()
dan di dapatkan data seperti berikut

selanjutnya dilakukan proses clustering untuk melihat apakah titik tengah dari data yang diperoleh sama dengan titik tengah yang telah ditentukan di awal
ms =MeanShift()
ms.fit(X)
cluster_centers = ms.cluster_centers_
cluster_centers
labels = ms.labels_
labels
print (cluster_centers)
n_clusters = len(np.unique(labels))
print("Number of Esrimated Cluster :",n_clusters)
Hasilnya
[[ 1.14531866 0.98132425]
[ 3.10202701 10.19649341]
[ 5.09935075 4.78706017]]
Number of Esrimated Cluster : 3
terlihat titik yang di peroleh tidak berbeda jauh dengan titik yang telah di tentukan sebelumnya.
selanjutnya di lakukan ploting
colors = 10 * ['r.','g.','b.','c.','k.','y.','m.']
for i in range (len(X)):
plt.plot(X[i][0], X[i][1], colors [labels[i]], markersize = 10)
plt.scatter(cluster_centers[:,0], cluster_centers[:,1], marker = "x", color ="k", s= 150, linewidths = 5, zorder = 10)
plt.show()

terlihat ada 3 cluster berbeda
Selanjutnya dilakukan dengan data yang berbeda
semua proses diulangai dan dilakukan pemanggilan data
#import Libraries
import numpy as np
import pandas as pd
from sklearn.cluster import MeanShift
from sklearn.datasets.samples_generator import make_blobs
%matplotlib inline
import matplotlib.pyplot as plt
from matplotlib import style
import seaborn as sns
plt.style.use('ggplot')
import graphviz
from sklearn import cluster
sns.set()
Pemanggilan Data Download Data
df = pd.read_csv('DataSpeedLoadTruck.csv')
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')

df_2_vars = df
df_2_vars.head()
data = df_2_vars.values
data
ms =MeanShift()
ms.fit(data)
cluster_centers = ms.cluster_centers_
cluster_centers
labels = ms.labels_
labels
print (cluster_centers)
n_clusters = len(np.unique(labels))
print("Number of Esrimated Cluster :",n_clusters)
colors = 10 * ['r.','g.','b.','c.','k.','y.','m.']
for i in range (len(X)):
plt.plot(X[i][0], X[i][1], colors [labels[i]], markersize = 10)
plt.scatter(cluster_centers[:,0], cluster_centers[:,1], marker = "x", color ="k", s= 150, linewidths = 5, zorder = 10)
plt.show()

Dari sini diperoleh 2 cluster, dapat disimpulkan bahwa sistem secara otomatis akan menggangap bahwa terdapat 2 cluster dari data tersebut.