Menu
CoddyTech

Ôn tập: thành viên phòng gym

Thuộc phần Học không giám sát trong hành trình Machine Learning của Coddy. Bài học 5 trên 51.

challenge icon

Thử thách

Dễ

Bạn còn nhớ những lần ghé quán cà phê đã mở đầu chương này không? Một phòng tập muốn làm điều tương tự với sàn tập của mình: những kiểu hội viên nào đến đây? members.csv lưu số phút tập cardio và tập tạ trung bình mỗi lần đến của từng hội viên.

  1. Huấn luyện KMeans với 3 cụm, n_init=10, random_state=0.
  2. Với mỗi nhóm, theo thứ tự từ lớn nhất đến nhỏ nhất, in ra số lượng, tâm cụm và hội viên tiêu biểu nhất: người ở gần tâm cụm nhất.
  3. Vẽ biểu đồ phân tán cho từng nhóm, gắn nhãn bằng số lượng, như 55 members, sau đó thêm các ngôi sao màu đen có nhãn centers, chú giải và hiển thị biểu đồ.

Với một phòng tập khác:

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.)

và biểu đồ của phòng tập đó:

Biểu đồ phân tán có tiêu đề Gym Members, số phút tập cardio trên trục ngang và số phút tập tạ trên trục dọc: 45 hội viên tập cardio ở phía dưới, 30 hội viên tập tạ ở phía trên bên trái, 15 hội viên tập nhiều cả hai ở phía trên bên phải, mỗi nhóm có một ngôi sao màu đen và chú giải ghi tên từng nhóm theo số lượng

Sau đó, Coddy mô tả biểu đồ của bạn.

Tự làm thử

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

# Mỗi thành viên một hàng: số phút tập cardio và tập tạ trung bình mỗi lần đến phòng tập
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)")

# Viết code của bạn bên dưới

Tất cả bài học trong Học không giám sát

Tự luyện tập: Trình biên dịch Python online