On real data you have no answer key. One check you can run is whether two different methods find the same groups. The wine data happens to have a hidden answer too, so you can see how much that check is worth.
Task: write agreement(k).
load_wine(return_X_y=True, as_frame=True) and scale the 13 columns with StandardScaler().fit_transform(X).k groups:
KMeans(n_clusters=k, random_state=0, n_init=10)AgglomerativeClustering(n_clusters=k) with the default linkageadjusted_rand_score values, each a plain float rounded to 3 decimal places:
"methods": k-means labels against the hierarchical labels"kmeans_vs_truth": y against the k-means labels"tree_vs_truth": y against the hierarchical labels