单元三

第11课 兴趣小组自动分堆——聚类与无标签归堆

任务场景:按兴趣把同学贴纸归成几堆
任务场景:按兴趣把同学贴纸归成几堆

一、任务目标

理解无监督聚类是在没有标准组别名时,按相似把样本分成几堆;能说明分堆结果是「发现组别」,组别名仍需人来命名。

二、我们要学什么

  • 学习要点:兴趣小组自动分堆|聚类与无标签归堆
  • 本课过关:能完成:说出聚类不依赖事先贴好的类别名;载入体验程序,指出样本被分成若干堆;改一个特征后重新运行,分堆结果可能变化。
  • 示例对齐:体验题对应本课「编程体验」;完整代码对应编程题1;补全与独立编写对应编程题2–3。均在 Mixly 图形化积木中完成。

三、本节要点

本课要认识无监督聚类。重难点是先分堆、后命名,不要把堆号当成已经存在的标准标签。要点对齐「兴趣小组自动分堆|聚类与无标签归堆」。

1读场景明确真实任务
2对要点兴趣小组自动分堆|聚类与无标签归堆
3载入运行图形化积木

四、解题思路

任务:在无组别名的情况下把样本分成几堆。请分清:分堆是算法做的,命名是人做的。

本课主要用到:Mixly 图形化积木与屏幕输出。

  1. 1明确任务「无标签分堆」:输出应是若干组,而不是预先给定的组名。
  2. 2按相似把样本归到不同堆。
  3. 3改一个样本特征后重跑,观察分堆是否变化。

流程示意(可对照左侧文字)

任务:无标签分堆按相似把样本归到不同堆改一个样本特征后重跑

五、图形块功能讲解

下面只列出本课首次出现的 Mixly 图形块(真积木截图)。已在前面课讲过的不再重复;先认新块,再点「载入」对照拖搭。

图形块分类作用本课用法
追加到列表
列表在末尾增加元素或合并列表。本课编程练习中首次使用,载入后可在工具箱对照。

六、知识点讲解

聚类是无监督学习:样本没有标准组别名时,按相似分成几堆。本课用兴趣小组作例子——算法只给出「谁和谁在一起」,组别含义由人命名。堆的个数或特征一变,分堆结果就可能变。

先弄清:先分堆,再由人命名;再进编程练习对照组别。

七、编程练习

用下拉列表切换题目;下方 Mixly 默认显示图形化积木。请在 Mixly 工具栏点「运行」;「检查」读取 Mixly 代码自动判题。请先读本页「四、解题思路」与「五、图形块功能讲解」,再点载入。

参考代码(对照抄写到下方 Mixly)
words = ["apple", "ant", "banana", "blue", "cat"]

def group_by_first(xs):
    groups = {}
    for w in xs:
        key = w[0]
        if key not in groups:
            groups[key] = []
        groups[key].append(w)
    return groups

print(group_by_first(words))

八、课堂练习

先完成两道正误判断,再做其余题目;选出后点「检查」。

  1. 判断:兴趣小组自动分堆时,算法只给出「谁和谁在一起」,组别含义由人来起名。

  2. 判断:无标签任务也可以先随便编一些假标签,再当作分类来训练。

  3. 一开始没有标准类别名、只按相似分组,属于?

  4. 把堆的个数从 2 改成 4,分堆结果会?

  5. 已经有明确的对错标签时,更优先?

九、本节小结

本课主题是聚类:无标签时按相似分堆。组别名由人来起;特征变化,分堆可能变化。