Menu
CoddyTech

无标签学习

本课属于 Coddy Machine Learning 学习旅程的“无监督学习”单元。第 1 课,共 51 课。

到目前为止,每一行都有对应的答案,也就是标签。大多数数据都没有标签。无监督学习只根据这些行来发现结构,例如这些咖啡馆的到访记录:

两张图表展示了 240 次咖啡馆到访记录,横轴为到达时间,纵轴为停留分钟数。左图中的灰点没有标签,分成三团。右图中的相同灰点分成了模型找到的三组,分别命名为快速喝咖啡、午餐和使用笔记本电脑

相似的行彼此靠得很近,其中一组行就是一个聚类。没有人告诉模型这些行代表咖啡或笔记本电脑。模型找到了三组,是人们给它们取了名字。

商店会用这种方式找到不同类型的顾客;学完这一章,你也能做到。只有 X,没有 y:模型会学习数据本身的形状。

challenge icon

挑战

简单

鱼场通过长度区分鳟鱼的年龄:每年的鱼组成一组。lengths 存储了 36 条鳟鱼的长度(单位为 cm),并按从短到长排列;程序会读取 gap。

  1. 遍历这些长度。如果一条鳟鱼比前一条长出超过 gap cm,就开始新的一组。
  2. 输出组数,然后输出每组中最短和最长的鳟鱼及其数量。

对于另一个池塘,间隔为 2 时:

另一个池塘中的 26 条鳟鱼,以点的形式标在长度轴上:15 条长度为 8.5 到 13.9 cm,中间有 3.5 cm 的空隙,然后是 11 条长度为 17.4 到 22 cm

Groups: 2
  8.5 to 13.9 cm: 15 trout
  17.4 to 22.0 cm: 11 trout

亲手试试

# 同一个池塘里的 36 条鳟鱼,长度单位为厘米,按从短到长排序
lengths = [9.8, 10.4, 10.9, 11.3, 11.6, 12.0, 12.2, 12.7, 13.1, 13.4, 14.0, 14.6,
           18.2, 18.9, 19.3, 19.8, 20.1, 20.4, 20.6, 21.0, 22.8, 23.0, 23.3, 23.5, 23.7, 23.9,
           26.5, 27.1, 27.6, 28.0, 28.3, 28.9, 29.4, 29.8, 30.4, 31.0]
gap = float(input())

# 在下方编写你的代码
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

无监督学习中的所有课

自己练习: Python 在线编译器