''' 98. Ward法によるクラスタリング 96の単語ベクトルに対して,Ward法による階層型クラスタリングを実行せよ.さらに,クラスタリング結果をデンドログラムとして可視化せよ. ''' from knock96 import extract_vecs_of_countries from scipy.cluster.hierarchy import dendrogram, linkage from matplotlib import pyplot as plt if __name__ == '__main__': X, labels = extract_vecs_of_countries() Z = linkage(X, method="ward", metric="euclidean") plt.figure(figsize=(40, 25)) dendrogram( Z, labels=labels, leaf_font_size=10.5, color_threshold=2., ) plt.savefig("out98.png")
''' 97. k-meansクラスタリング 96の単語ベクトルに対して,k-meansクラスタリングをクラスタ数k=5として実行せよ. ''' from knock96 import extract_vecs_of_countries from sklearn.cluster import KMeans vecs, countries = extract_vecs_of_countries() kmeans_model = KMeans(n_clusters=5, random_state=10).fit(vecs) labels = kmeans_model.labels_ for country, label in zip(countries, labels): print(country, label)