Menu
CoddyTech

振り返り:ジムの会員

CoddyのMachine Learningジャーニー「教師なし学習」セクションの一部。レッスン 5/51。

challenge icon

チャレンジ

簡単

この章の冒頭に出てきたカフェへの訪問を覚えていますか?ジムでも同じことを知りたいと考えています。どんな会員が来るのでしょうか?members.csvには、各会員の1回の利用あたりの有酸素運動とウェイトトレーニングの平均時間が記録されています。

  1. KMeansを学習させます。クラスター数は3、n_init=10、random_state=0です。
  2. 各グループについて、人数の多い順に、人数、中心、および最も典型的な会員(中心に最も近い会員)を表示します。
  3. 各グループを人数のラベル付きで散布図に表示します。ラベルは55 membersのようにします。次に、黒い星にcentersというラベルを付け、凡例を表示して、グラフを表示します。

別のジムの場合:

Groups, biggest first:
45 members: 39 min cardio, 15 min weights (most typical: Rosa P.)
30 members: 20 min cardio, 47 min weights (most typical: Finn A.)
15 members: 56 min cardio, 46 min weights (most typical: Lu W.)

そして、そのグラフ:

タイトルがGym Membersの散布図。有酸素運動の分数を横軸、ウェイトトレーニングの分数を縦軸に表示。下部には有酸素運動をする会員が45人、左上にはウェイトトレーニングをする会員が30人、右上には両方をたくさん行う会員が15人いる。各グループには黒い星が1つあり、凡例には各グループの人数が表示されている

するとCoddyがあなたのグラフを説明します。

自分で試してみよう

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.cluster import KMeans

# メンバーごとに1行:1回の来館あたりの有酸素運動とウェイトトレーニングの平均時間(分)
members = pd.read_csv("members.csv")
X = members[["cardio_min", "weights_min"]]

fig, ax = plt.subplots()
ax.set_title("Gym Members")
ax.set_xlabel("Cardio (min per visit)")
ax.set_ylabel("Weights (min per visit)")

# 以下にコードを書いてください

教師なし学習のすべてのレッスン

自分で練習してみよう: Pythonオンラインコンパイラ