{"provider_name":"Hatena Blog","image_url":null,"version":"1.0","height":"190","provider_url":"https://hatena.blog","description":"import numpy as np def compute_distances(X, centroids): n_data = X.shape[0] k = centroids.shape[0] distances = np.zeros((n_data, k)) for i in range(k): distances[:, i] = np.sqrt(np.sum((X - centroids[i])**2, axis=1)) return distances def init_centroid(X, k): n_data = X.shape[0] idx = np.random.choic\u2026","published":"2026-04-16 23:43:23","url":"https://htn20190109.hatenablog.com/entry/2026/04/16/234323","title":"k-means++","author_name":"HTN20190109","width":"100%","html":"<iframe src=\"https://hatenablog-parts.com/embed?url=https%3A%2F%2Fhtn20190109.hatenablog.com%2Fentry%2F2026%2F04%2F16%2F234323\" title=\"k-means++ - HTN20190109\u306e\u65e5\u8a18\" class=\"embed-card embed-blogcard\" scrolling=\"no\" frameborder=\"0\" style=\"display: block; width: 100%; height: 190px; max-width: 500px; margin: 10px 0px;\"></iframe>","blog_url":"https://htn20190109.hatenablog.com/","categories":["DL"],"author_url":"https://blog.hatena.ne.jp/HTN20190109/","type":"rich","blog_title":"HTN20190109\u306e\u65e5\u8a18"}