
292
■
20
章 クラスタリング
with tqdm.tqdm(itertools.count()) as t:
for _ in t:
#
中心を計算し、新しいクラスタの割り当てを行う
self.means = cluster_means(self.k, inputs, assignments)
new_assignments = [self.classify(input) for input in inputs]
#
いくつの割り当てが変更されたかを数え、完了したかを確認する
num_changed = num_differences(assignments, new_assignments)
if num_changed == 0:
return
#
そうでない場合、新しい割り当てを使って、中心を再計算する
assignments = new_assignments
self.means = cluster_means(self.k, inputs, assignments)
t.set_description(f"changed: {num_changed} / {len(inputs)}")
これがどのように働くかを見てみましょう。
20.3
事例:交流会
データサイエンス・スター社の成長をビールやピザやデータサイエンス・スター
T
シャツなどで祝うために、顧客報奨担当部長は数回の交流会を企画していました。地
元ユーザの住所はすべて把握しているので(図 20-1)、参加者が ...