Obserwacje Pokémonów: klastrowanie hierarchiczne
Kontynuujemy analizę obserwacji legendarnych Pokémonów z poprzedniego ćwiczenia. Przypomnij sobie wykres punktowy z poprzedniego ćwiczenia – udało się na nim zidentyfikować dwa obszary o dużym zagęszczeniu obserwacji. Sugeruje to, że punkty można podzielić na dwa klastry. W tym ćwiczeniu wyznaczysz dwa klastry obserwacji przy użyciu klastrowania hierarchicznego.
'x' i 'y' to kolumny ze współrzędnymi X i Y lokalizacji obserwacji, przechowywane w DataFrame o nazwie df. Do dyspozycji masz: matplotlib.pyplot jako plt, seaborn jako sns oraz pandas jako pd.
To ćwiczenie jest częścią kursu
Analiza skupień w Pythonie
Instrukcje do ćwiczenia
- Zaimportuj biblioteki
linkageifcluster. - Użyj funkcji
linkage(), aby obliczyć odległości metodą ward. - Wygeneruj etykiety klastrów dla każdego punktu danych, tworząc dwa klastry za pomocą funkcji
fcluster(). - Narysuj punkty przy użyciu seaborn i przypisz inny kolor każdemu klastrowi.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# Import linkage and fcluster functions
from scipy.cluster.hierarchy import ____, ____
# Use the linkage() function to compute distance
Z = ____(____, 'ward')
# Generate cluster labels
df['cluster_labels'] = ____(____, ____, criterion='maxclust')
# Plot the points with seaborn
sns.scatterplot(x=____, y=____, hue=____, data=df)
plt.show()