1 无监督解决什么、不解决什么
面对客户流失、图像分类、短文本分类,监督学习通常先问:哪些样本已有可靠标签,怎样预测尚未知道的结果?无监督学习换了起点:暂时不用目标标签拟合模型,只根据样本的特征寻找结构。结构可能是相互接近的群体、解释主要变化的方向,也可能是与多数样本不同的记录。它适合探索数据、提出问题、辅助检查数据质量,但发现结构并不等于发现业务规律。
以公开的 Telco Customer Churn 表格为例,每行代表客户,字段包含在网月数、月费用、合同类型以及是否流失。若研究客户使用模式,可以选择在网月数、月费用和服务类型作为输入,把流失字段留作后续分析。模型只知道这些特征之间的距离,不知道“即将流失”“值得挽留”意味着什么。即使某个簇的历史流失率较高,也不能直接断言该簇客户都会流失,更不能断言某种服务造成流失。
图像与短文本也有类似区别。对手写数字图像聚类,算法可能优先区分笔画粗细和倾斜程度,而没有形成数字类别;对新闻标题聚类,长度、常用词和主题都可能影响分组。我们希望发现的语义,与特征表达保留的信息未必一致。因此,开始之前要把问题写成“在这些可用特征下,是否存在可重复的相似模式”,避免把愿望写成算法保证。
无监督不表示完全没有人的判断。人仍然决定样本范围、特征、缺失值处理、距离、簇数和解释方式。这些选择共同定义了什么叫“相似”。同样的客户,按消费金额可能接近,按使用频率可能相距很远。讨论算法之前先讨论相似性的用途:是为了安排访谈、检查异常账单,还是寻找后续分类器的输入?用途不同,合理的特征也不同。
无监督同样需要训练集、验证集和测试集的边界。例如按客户标识隔离后,把数据划为 60% 训练、20% 验证、20% 测试。训练集用于拟合填补、缩放、PCA 和聚类;验证集用于比较设置;测试集只在方案固定后检查。若目标是未来月份,应优先按时间划分,并明确老客户重复出现的规则。没有参与拟合的标签不意味着没有泄漏,提前使用未来费用或在全量数据上计算均值,仍然会泄漏。

本课把聚类、降维、异常检测看作探索工具。可以用它们缩小调查范围、比较表示方法、形成验证计划;涉及预测准确性、干预收益和因果判断时,还需要与目标相匹配的证据。分组结果没有天然的好坏,只有相对于用途是否稳定、是否可解释、是否值得继续验证。
2 聚类:K-Means 与层次方法边界
聚类试图让组内样本比较相近、组间样本比较不同。K-Means 是容易上手的方法:先指定 K 个中心,把每个样本分配给最近中心,再把每个中心移到所属样本的均值位置,重复分配与更新,直到结果基本不变或达到迭代上限。它优化的是样本到所属中心的平方距离总和,训练时这个量越小,说明在当前特征与 K 下拟合得越紧。
想象只使用标准化后的在网月数和月费用,把客户画成平面上的点。设 K=3,开始的中心位置不同,最终分组可能不同。因此通常要尝试多个初始化,并记录随机种子与初始化次数。簇编号只用于区分组别,编号 0 不比编号 2 更基础、更安全或更有价值。另一次训练把编号对调,也不意味着结构发生改变,比较时要看成员关系或中心特征。
K-Means 偏好围绕中心、尺度相近、较紧凑的群体。弯月形分布、大小差异很大的群体、稀疏过渡地带,都可能让它划出难以解释的边界。极端值还会拉动均值,使中心偏离多数样本。K 必须事先给定也是限制:输入 K=3,算法就会努力给出 3 组,哪怕真实数据只是连续变化的带状分布。成功返回结果不证明天然存在 3 类人。
层次聚类提供另一种观察方式。常见的凝聚式方法从每个样本各成 1 组开始,反复合并较接近的组,形成树状结构;在不同高度切开树,可以得到不同数量的簇。它适合观察“哪些样本先聚在一起,哪些群体很晚才合并”。树上的分叉说明某种距离与合并规则下的相近关系,不代表自然分类学上的真实谱系。
合并规则也会改变边界。单连接看组间最近样本,可能通过零散过渡点把群体串起来;全连接关注较远的样本对,倾向形成更紧凑的组;Ward 方法关注合并后组内平方误差的增加,通常与欧氏距离配合。入门阶段无需推导全部公式,但报告中必须写清所用规则。仅写“采用层次聚类”不足以让别人复现。
方法选择还受数据规模与部署方式约束。常见层次聚类实现的时间和内存开销较大,适合先对可管理的样本探索;K-Means 更容易扩展,也能按已学到的中心分配新样本。层次树通常没有直接对应的统一预测接口,若需要处理新客户,必须另行规定分配方法。类别字段不能因为编码成 0、1、2 就自动获得合理距离;应检查编码含义,必要时缩小到数值特征建立清楚的基线。
3 降维:PCA 再访与可视化用途
特征多时,直接画图很困难,距离也更难直观理解。主成分分析 PCA 用若干互相正交的方向重新表示数值特征,优先保留数据变化较大的方向。第 1 主成分解释最多的方差,后续方向解释尚未被保留的变化。这里的“解释”是对数值变化的描述,不是解释客户为什么流失,也不是证明某个因素有业务因果作用。
例如在网月数、月费用和累计费用可能存在相关性,PCA 可以把部分重复变化压缩到较少方向。投影到 2 维后,每个点的位置是若干原始特征的组合,不再直接对应“费用”和“月数”。需要同时检查各方向的特征权重与解释方差比例,才能说明图上左右移动大致代表什么。方向正负号可以整体翻转,图像左右颠倒不一定意味着模型不同。
PCA 对量纲敏感。若费用的数值波动远大于使用次数,它可能优先保留费用变化;标准化后,各特征的相对影响会改变。通常先用训练集均值与标准差进行缩放,再在训练集上拟合 PCA,验证集和测试集沿用这些参数。某列方差为 0 时应单独处理。若数据有大量偏斜值或极端值,还应先检查分布,不能把标准化当作解决所有问题的开关。

2 维图适合观察重叠、离群和批次差异,却不适合独自裁定聚类质量。假设前 2 个主成分累计解释 55% 方差,图上接近的点可能在剩余方向上相距很远,图上分开的群体也可能只是批次或采集设备差异。应标注解释方差比例,并说明聚类是在原始缩放空间还是 PCA 空间完成。先聚类再投影与先投影再聚类是不同实验,不能混写成同一种结果。
在公开的手写数字数据上,可以把像素当作特征,先缩放,再用 PCA 观察主要书写变化。用于展示时保留 2 个主成分;用于聚类时可以比较保留更多主成分的方案,但应在验证集上选择。数字标签可以在结构探索结束后帮助检查簇的组成,不能反复看标签调参数,再宣称过程从未使用标签。标签一旦影响选择,就已经成为验证信息。
短文本也可以先转成词频或 TF-IDF 特征,再研究距离。但这类矩阵往往很稀疏,不能照搬数值表格的全部预处理;常用的截断奇异值分解更适合稀疏表示,其与 PCA 的差别留到后续学习。本课只要求记住:降维是一种有损表示选择,二维分离漂亮、压缩比例高、后续任务有效,是 3 个不同的判断。
4 动手:聚类稳定性与轮廓系数
安排一个可复现的小实验:使用 Telco Customer Churn 的在网月数和月费用探索客户分组。先记录数据来源、版本、样本数、缺失比例及客户标识重复情况;排除标识和流失标签。累计费用可以作为后续对照特征,但要先处理空字符串与数值转换,并确认其在实际观察时点已经可用。不要因为字段出现在下载文件里,就认定上线时能取得。
按预先约定划分数据后,在训练集拟合缺失值填补与标准化,再训练 K-Means。设置 K 的候选为 2、3、4、5、6,每个 K 尝试 10 个随机种子,并保持其他条件一致。对验证集使用固定的预处理和中心分配簇,记录各簇样本数、中心对应的原始单位特征摘要以及轮廓系数。训练集平方距离下降可以帮助观察,但不能单独决定 K,因为增加中心通常会让训练误差下降。
轮廓系数比较“我与本簇的接近程度”和“我与最近其他簇的接近程度”。对样本计算本簇平均距离 a,以及到其他各簇的平均距离中的最小值 b,再计算 s=(b-a)/max(a,b)。数值通常在 -1 到 1 之间,接近 1 表示在所选距离下归属较清晰,接近 0 表示靠近边界,负值提示可能更接近其他簇。单样本簇通常按所用实现约定处理,需在报告中说明。
轮廓系数要求可比较的簇结构;只有 1 个簇,或每个样本各成 1 簇,都不适合按通常定义计算。大型数据上可使用固定抽样估计,但应记录抽样量、随机种子和抽样方式。同样的 K、距离和评估样本更便于比较。它偏好分离清晰的紧凑群体,无法证明业务价值,也不能直接拿不同特征空间中的分数判定哪个空间更符合业务目标。
稳定性检查关注轻微变化后结论是否保留。先固定训练数据,仅改变初始化,区分算法对初始中心的敏感性;再对训练集重采样并重新拟合整条处理链,把模型都应用到同一个验证集,比较成员共同归组的情况。可用调整兰德指数辅助比较,它不受簇编号交换影响;数值如何计算可暂缓,但必须知道比较对象是分组关系,不是编号相等率。

还要看平均数掩盖了什么。总体轮廓系数尚可,某个小簇仍可能大量出现负值;整体分组稳定,少数边界客户仍可能频繁换组。记录每簇规模、轮廓分布和不稳定样本,再回到原始特征检查。最终在验证集上固定方案,用测试集做最后检查,并记录与训练期的差异。真实分数由数据产生,本课的演示数值不能当作公开数据的实测结论。
5 异常检测入门信号
异常检测寻找相对于参考数据不常见的样本。异常可能是输入错误、罕见但正常的行为,也可能是值得调查的风险。它不自动等于欺诈、故障或恶意。若客户月费用突然很高,原因可能是单位变化、重复记账、特殊套餐或真实异常;模型提供调查顺序,业务证据决定最后结论。先定义“相对于谁异常”,才能解释分数。
可以从简单基线开始:查看单个数值特征的分位数、缺失率和变化幅度;在多个特征上,观察到参考中心的距离,或使用专门的异常检测方法生成排序。到 K-Means 中心的距离只能作为粗略信号:某个正常但稀疏的群体也可能离中心较远,某些异常点则会被独立中心吸收。不同簇的自然离散程度不同,不能不加检查就用同一原始距离阈值。
异常分数和告警阈值要分开。分数表示相对可疑程度,阈值决定哪些样本进入人工队列。若每天只能检查 50 条,可以先评估排名前 50 条的命中情况;若漏掉关键故障代价高,则需要更多已标注事件来估计召回率。没有可靠异常标签时,只能报告抽查发现率、工作量与已观察到的案例,不能声称掌握了全部漏报。
如果已有足够的独立标注,精确率衡量告警中有多少是真异常,召回率衡量真实异常中找到了多少,F1 综合精确率与召回率。改变阈值通常会改变这 3 项,不能只展示最有利的数值。AUC 评估跨阈值的排序表现,报告时必须区分 ROC-AUC 与 PR-AUC。异常很少时,ROC-AUC 看起来不错仍可能对应大量误报,应同时展示精确率、召回率、样本基数和告警量。
参考数据也决定异常的含义。用工作日训练的检测器可能把正常节假日行为排在前列;设备更新、客户组成变化、文本语言变化都会带来分布偏移。应按时间、来源或设备检查分数分布,并保存阈值版本。当告警量突然上涨,先排除采集与预处理变化,再讨论风险是否上升。阈值不能悄悄调整后继续与旧报告直接比较。
人工复核还可能带来选择偏差:只标注高分样本,就难以知道低分区间漏掉了多少异常。可在资源允许时保留少量随机抽查,并区分模型触发与随机抽查的来源。这样既能处理当下队列,也能积累后续评估需要的证据。高级检测器的内部机制留待后续,本课先把参考群体、分数、阈值和确认结果分清。
6 常见坑:把簇标签当真相、未标准化距离
最常见的解释错误是给簇起名之后忘记名字来自人的概括。看到某簇平均费用高,就称其为“高价值忠诚客户”,实际只验证了费用较高,尚未验证利润、忠诚或干预收益。应先写可观察描述,例如“在网月数较长、月费用较高的组”,再列出需要标签或实验支持的推断。同簇客户仍有差异,组平均数不能代替个人判断。
距离错误往往更隐蔽。假设某个金额字段常在 1000 到 10000 之间,使用次数在 0 到 10 之间,直接计算欧氏距离时,金额差很容易盖过次数差。把金额从元改成分,就可能改变分组,而客户行为本身没有变。这样的结果主要反映单位选择。标准化能调整尺度,但也会给低方差噪声更大相对权重,因此仍需结合字段意义决定是否保留。
另一个坑是把所有列都交给算法。客户编号是识别符,不应作为有序数值计算距离;合同类型编码为 1、2、3,不能据此断言 1 与 2 比 1 与 3 更接近;累计费用与在网月数相关,重复表示同一因素可能让它获得额外权重。应把特征表写清楚:每列代表什么、何时可用、怎样编码、缺失意味着什么,以及为什么与当前相似性问题有关。
泄漏也会出现在探索流程里。用全量数据拟合缩放器、根据测试集图形不断改 K、把未来是否流失当输入,都会让最终评价过于乐观。若同一张图像的轻微变体分到训练与测试两侧,或同一客户多行记录未按用途隔离,也可能产生不独立的评估。应把原始样本或实体的划分放在预处理之前,并把测试集保留到选择结束。
类别不平衡会让解释进一步偏斜。若某簇 95% 样本未流失,整体也有 95% 未流失,这个比例没有显示额外区分能力。若借助标签检查簇组成,应同时给出全局基线、各簇人数与正类数量。少数类可能被大簇平均掉,小簇也可能只是几个极端样本。高纯度小簇不必然有稳定的推广价值,更不能直接把聚类准确率作为分类准确率。

发现异常现象时,先检查数据版本、重复、缺失和时间边界,再检查单位、编码与距离,随后比较初始化、K 和预处理,最后才讨论更复杂的方法。每次只改变明确的一项,记录原始特征摘要与验证结果。若同时换数据、换特征、换算法,即使分数上升,也难以知道原因。可复现的失败往往比无法解释的漂亮图更有教学价值。
7 案例:营销分群被量纲绑架
某团队希望用公开客户表格练习营销分群,选取在网月数、月费用和累计费用,直接训练 K=3 的 K-Means。结果很快得到“低、中、高价值”3 个名称,图上中心也沿累计费用排列。问题在于累计费用数值范围明显更大,而且与在网时长有关。算法很可能主要按累计金额切段,而报告却把这种距离结果扩展成了价值和忠诚结论。
复查从单位敏感性开始:保持样本不变,仅把累计费用由元转换为分,再训练同样配置。如果成员关系明显变化,就说明分组受量纲影响。这个测试不需要任何流失标签,能够直接暴露相似性定义的问题。接着检查累计费用的空值转换、异常金额与来源时间,确认它没有包含观察时点之后的信息,再考虑缩放与特征调整。
修正方案先建立包含在网月数与月费用的标准化基线,再比较加入累计费用的结果,观察是否只是重复强调在网时间。比较使用相同划分与验证样本,同时报告簇规模、原始单位摘要、轮廓系数及重采样稳定性。标准化之后分数未必更高,但只要结果更符合预先定义的行为相似性,就值得继续研究。内部指标需要与问题含义一起阅读。
假设独立验证集中,某组有 200 名客户,其中 40 名历史流失,流失率为 20%;全体验证客户的流失率为 15%。这只能形成“该组可能需要进一步研究”的信号。还要查看时间段、合同类型、样本量和不确定性,确认差异是否持续。这个示例是教学设定,并非 Telco 数据的测量结果。不能把 20% 写成对未来每位成员的可靠预测概率。
即便决定把该组作为触达候选,也要区分风险高与能被挽留。高风险客户可能不响应优惠,低风险客户也可能本来就会留下。后续应通过合适的对照实验评估触达效果、成本与退订等副作用。若改成预测流失任务,则需要明确标签窗口,在独立数据上报告精确率、召回率、F1、ROC-AUC 或 PR-AUC,并与简单基线比较。
团队最终可以交付较克制但有用的结论:原方案受到累计费用量纲主导,修正后的分组用于访谈抽样与假设生成;业务名称暂用可观察特征描述;正式营销动作等待验证。这样保留了无监督学习的探索价值,也防止“模型分出来了”变成自动行动理由。模型是否能跑通,与行动是否有依据,需要分别回答。
8 把无监督结论写成待验证假设
无监督报告可以采用一条清楚的表达链:观察到了什么结构,在哪些数据和设置下成立,可能对应什么解释,还需要什么证据。比如“在标准化的在网月数与月费用空间,部分短在网、高月费客户多次共同归组;推测他们的使用体验或合同安排可能不同;下一步抽样访谈并比较后续流失情况”。每句话都对应可检查的信息,避免从图形直接跳到决策。
观察层应包含数据时期、实体范围、排除条件、特征与预处理版本,以及 K、距离、随机种子设置。证据层包含各簇人数、原始单位分布、验证集轮廓表现与稳定性。解释层应给出替代解释,例如批次差异、地区结构、渠道选择或采集缺失。只有解释层允许出现“可能”,观察层应尽量写成别人能重复得到的事实。
验证计划要在看新结果之前写好。例如在后续完整月份,按固定处理链为新客户分组,比较各簇标签比例,并报告人数与区间;或从每簇随机抽取相同数量客户访谈,验证用途差异是否真实存在。若需要选择指标,应说明目标:预测识别关注精确率和召回率,风险排序关注适当的 AUC,人工复核关注有限预算下的命中与漏报证据。
还应提前规定什么结果会削弱假设。若时间换到下个月,群体特征消失;若改用合理的缩放方式,成员关系完全改变;若与全局基线比较没有差异,就应降低结论强度。不要只寻找支持命名的样本。稳定结构也可能只是稳定的采集偏差,因此还要检查数据来源与部署人群是否一致。
交付物可以是一张分群说明表和一份验证计划,而不是立即上线的客户标签。表中保留簇版本、特征摘要、适用范围与不确定性;计划中写明数据取得方式、评估窗口、负责人和停止条件。新样本明显远离训练范围时,应允许标为待检查,避免强行套用已有名称。这样的表达让后续分类、访谈或实验都能接续,也允许证据不足时撤回解释。
9 模型评估专章预告(A15)
本课已经遇到多个“好”:训练距离更小、轮廓系数更高、分组更稳定、图像更清楚、业务假设更有用。这些目标不等价。A15 将把评估对象、数据划分与指标选择集中起来讨论:模型到底要支持什么决定,未来会遇到什么样本,用哪些证据判断表现,以及一次测试结果能够支持多强的结论。
首先要区分内部结构指标与外部任务指标。轮廓系数基于特征距离,稳定性描述重跑后结构是否保留;精确率、召回率、F1 和 AUC 需要定义明确的真实标签与任务。若把簇映射为预测类别,映射规则也属于需要在训练或验证阶段确定的方案,不能看测试标签临时配对后把结果当成无偏性能。外部标签与簇不一致也可能提示探索目标与标签任务不同。
其次要把阈值、基线与人群放在同一张评估表里。流失客户少时,全预测未流失也可能得到很高准确率;异常很少时,很小的误报率仍可能制造大量告警。报告必须保留类别数量与混淆矩阵,并说明阈值如何选定。F1 不计真负类,也没有纳入全部业务成本;AUC 不直接告诉我们某个告警预算下的结果。指标的名字不能替代使用条件。
最后,测试集不是永远有效的证明。训练期、测试期与实际运行期可能来自不同分布,重复调参也会逐渐消耗验证集的独立性。A15 将进一步讨论如何安排评估、比较基线并表达不确定性。本课先留下可追溯的处理链、固定的数据边界和待验证假设,让下一课有清楚的评估对象,而不是只有一张难以复现的散点图。
放进方案里
在方案中把无监督学习定位为探索与筛查环节,先写明用途:利用客户观察时点之前的在网月数、月费用与服务特征,寻找可重复的行为结构,用于访谈抽样和后续假设验证。注明数据来源、覆盖时期、实体范围与排除条件,客户标识只用于去重和划分,流失标签保留给独立分析。若目标涉及未来客户,应使用符合部署时间的训练、验证和测试安排。
处理链写清缺失值规则、类别编码、缩放方法与拟合范围。填补、标准化、PCA 和聚类都只在训练集拟合,验证与测试沿用固定参数。候选方案包含 K-Means 的 K、初始化设置,以及必要的层次聚类对照。明确聚类空间与展示空间,二维图必须标注解释方差,不能仅凭视觉分离选择方案。
验收材料同时提供各簇人数、原始单位特征摘要、验证集轮廓表现和重采样稳定性,记录边界样本与小簇,说明量纲、重复特征和极端值的影响。簇名称采用可观察描述,业务解释写成待验证假设。若使用异常分数,补充分数方向、参考群体、阈值、人工复核容量和抽查规则;有可靠标签后再报告精确率、召回率、F1 及明确类型的 AUC。
后续验证约定数据窗口、标签定义、对照基线和停止条件。营销效果通过合适的对照实验评估,不能由簇内流失比例代替。上线使用时保存处理链与簇版本,监测输入分布、簇规模和异常分数变化;出现来源或量纲变化先暂停解释并排查。方案交付的是可复现的结构证据和验证路径,行动范围随证据强度确定。
10 小结:下一步模型评估(A15)
无监督学习从特征中寻找结构,聚类给出相似分组,PCA 提供有损压缩与观察方向,异常检测安排调查优先级。它们共同依赖数据边界、特征表达和相似性定义。标准化、稳定性与轮廓系数能帮助检查结果,但不能把簇变成真实类别,也不能证明营销干预有效。
继续学习前,试着回答:把金额单位改为分为何可能改变聚类?为什么只在训练集拟合缩放器?轮廓系数较高为何仍需检查小簇?没有异常标签时为什么无法可靠计算召回率?如果能把这些问题连接到自己的实验记录,就可以带着明确的任务、基线与标签窗口进入 A15,进一步学习怎样评价模型。