Hur många kluster?

Klusteranalys i Python

Shaumik Daityari

Business Analyst

Hur hittar man rätt k?

  • Ingen absolut metod för att hitta rätt antal kluster (k) i k-means-klustring
  • Armbågsmetoden

Klusteranalys i Python

Distorsion – en genomgång

  • Distorsion: summan av kvadrerade avstånd från punkter till klustercentrum
  • Minskar när antalet kluster ökar
  • Blir noll när antalet kluster är lika med antalet punkter
  • Armbågsgraf: linjegraf över klustercentrum och distorsion

Klusteranalys i Python

Armbågsmetoden

  • Armbågsgraf: graf över antal kluster och distorsion
  • Armbågsgrafen hjälper till att indikera antal kluster i datamängden
Klusteranalys i Python

Armbågsmetoden i Python

# Declaring variables for use
distortions = []

num_clusters = range(2, 7)
# Populating distortions for various clusters
for i in num_clusters:
    centroids, distortion = kmeans(df[['scaled_x', 'scaled_y']], i)
    distortions.append(distortion)
# Plotting elbow plot data
elbow_plot_data = pd.DataFrame({'num_clusters': num_clusters,
                                'distortions': distortions})

sns.lineplot(x='num_clusters', y='distortions', 
             data = elbow_plot_data)
plt.show()
Klusteranalys i Python

Klusteranalys i Python

Att tänka på med armbågsmetoden

  • Ger endast en indikation på optimalt k (antal kluster)
  • Pekar inte alltid exakt ut hur många k (antal kluster)
  • Andra metoder: genomsnittlig silhuett och gap-statistik
Klusteranalys i Python

Nu kör vi en övning!

Klusteranalys i Python

Preparing Video For Download...