Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Peculiarity of Spectral Clustering | Spectral Clustering
Cluster Analysis in Python

book
Peculiarity of Spectral Clustering

The result of the last chapter was great! Spectral clustering correctly figured out the structure of the clusters, unlike K-Means and K-Medoids algorithms.

Thus, spectral clustering is very useful in case of intersect/overlapping clusters or when you can not use mean points and the centers.

For example, let's explore such a case. Given the 2-D training set of points, the scatter plot for which is built below.

Seems like 4 circles, therefore 4 clusters, doesn't it? But that is what K-Means will show us.

Not what we expected to see. Let's see how will spectral clustering deal with this data.

Please note, that the spectral clustering algorithm may take a long time to perform since it is based on hard math.

Tâche

Swipe to start coding

For the given set of 2-D points data perform a spectral clustering. Follow the next steps:

  1. Import SpectralClustering function from sklearn.cluster.
  2. Create a SpectralClustering model with 4 clusters.
  3. Fit the data and predict the labels. Save predicted labels within the 'prediction' column of data.
  4. Build scatter plot with 'x' column on the x-axis 'y' column on the y-axis for each value of 'prediction' (separate color for each value). Do not forget to display the plot.

Solution

# Import the libraries
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
from sklearn.cluster import SpectralClustering

# Read the data
data = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/138ab9ad-aa37-4310-873f-0f62abafb038/model_data4.csv', index_col = 0)

# Create the model
model = SpectralClustering(n_clusters = 4)

# Fit the data and predict the labels
data['prediction'] = model.fit_predict(data)

# Visualize the results
sns.scatterplot(x = 'x', y = 'y', hue = 'prediction', data = data)
plt.show()

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 4. Chapitre 2
# Import the libraries
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
from ___ import ___

# Read the data
data = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/138ab9ad-aa37-4310-873f-0f62abafb038/model_data4.csv', index_col = 0)

# Create the model
model = ___(___ = ___)

# Fit the data and predict the labels
data['prediction'] = model.___(data)

# Visualize the results
sns.___(x = 'x', y = 'y', hue = '___', data = data)
___.___()
toggle bottom row
some-alt