In [1]:
#k means
import matplotlib.pyplot as plt
from sklearn.datasets import make_blobs
from sklearn.cluster import KMeans
# Generate data
X, _ = make_blobs(n_samples=300, centers=4, cluster_std=1.0, random_state=0)
# Apply KMeans
kmeans = KMeans(n_clusters=4, random_state=0)
kmeans.fit(X)
y_kmeans = kmeans.predict(X)
centroids = kmeans.cluster_centers_
# Plotting side-by-side
fig, axs = plt.subplots(1, 2, figsize=(12, 5))
# Left: No clustering color, no centroid
axs[0].scatter(X[:, 0], X[:, 1], color='gray')
axs[0].set_title("Original Data (No Centroids)")
# Right: Clustering result with centroids
axs[1].scatter(X[:, 0], X[:, 1], c=y_kmeans, cmap='viridis', s=50)
axs[1].scatter(centroids[:, 0], centroids[:, 1], c='red', s=100, label='Centroids')
axs[1].legend()
axs[1].set_title("K-Means Clustering with Centroids")
plt.tight_layout()
plt.show()
No description has been provided for this image
In [2]:
#agglomerative method
from sklearn.datasets import make_blobs
from scipy.cluster.hierarchy import dendrogram, linkage
import matplotlib.pyplot as plt
# Generate sample data
X, _ = make_blobs(n_samples=50, centers=3, random_state=42)
# Perform linkage
Z = linkage(X)
# Plot dendrogram
plt.figure(figsize=(10, 5))
dendrogram(Z)
plt.title("Dendrogram (Hierarchical Clustering)")
plt.xlabel("Data Point Index")
plt.ylabel("Distance")
plt.show()
No description has been provided for this image
In [ ]: