回顾:健身房会员
本课属于 Coddy Machine Learning 学习旅程的“无监督学习”单元。第 5 课,共 51 课。
挑战
简单还记得本章开头提到的咖啡馆到访记录吗?健身房也想了解自己的会员情况:来这里的会员都有哪些类型?members.csv 记录了每位会员每次到访时的有氧运动和力量训练平均分钟数。
- 拟合 KMeans:3 个簇,
n_init=10,random_state=0。 - 对每个组,按人数从多到少,打印该组人数、中心点和最具代表性的会员,也就是距离中心点最近的会员。
- 用散点图绘制每个组,并用人数标注,例如
55 members;然后用黑色星形标注中心点,并添加图例,最后显示图表。
另一个健身房的数据:
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.)以及对应的图表:
然后 Coddy 会描述你的图表。
亲手试试
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.cluster import KMeans
# 每位会员占一行:记录每次到访时有氧运动和力量训练的平均时长(分钟)
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 在线编译器