Machine Learning Unsupervised Learning Hierarchical Clustering

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.

Leave a comment

Design a site like this with WordPress.com
Get started