1. 无监督机器学习概述
无监督学习是机器学习三大范式之一(监督学习、无监督学习、强化学习),其核心特点是训练数据没有人工标注的标签。与需要"标准答案"的监督学习不同,无监督学习算法需要自行发现数据中的隐藏结构和模式。这种特性使其在数据探索、特征发现等场景中具有独特优势。
我在金融风控领域第一次应用无监督学习时,面对的是数百万条没有标注的交易记录。通过聚类算法,我们成功识别出20多个异常交易模式,其中3种是传统规则引擎从未发现过的新型欺诈手段。这让我深刻体会到无监督学习的价值——它能发现人类尚未认知的数据规律。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 核心算法与数学原理
2.1 聚类算法家族
K-means是最广为人知的聚类算法,其目标函数是最小化簇内平方和(WCSS):
code复制J = ΣΣ ||x - μᵢ||²
其中μᵢ是第i个簇的质心。实际应用时需要注意:
- 肘部法则确定K值时,建议同时观察轮廓系数
- 数据需要标准化处理,否则量纲会影响距离计算
- 对非凸分布效果较差,这时需要考虑谱聚类
层次聚类通过树状图(dendrogram)展示聚类过程,特别适合需要多粒度分析的场景。我在用户分群项目中就曾用Ward法发现不同层级的用户群体。
2.2 降维技术对比
PCA通过特征值分解寻找最大方差方向:
code复制Σ = XᵀX = PDPᵀ
其中D是对角矩阵。实践中发现:
- 累计贡献率85%通常是不错的截断点
- 核PCA能处理非线性结构
- t-SNE更适合可视化(但需注意perplexity参数)
最近帮生物医学团队分析基因数据时,UMAP表现出比t-SNE更好的全局结构保持能力,且计算效率更高。
2.3 异常检测方法
孤立森林通过随机划分快速隔离异常点:
code复制路径长度h(x) ≈ 2H(n-1) - 2(n-1)/n
其中H为调和数。实际经验:
- 适用于高维数据
- 对全局异常敏感,局部异常可能漏检
- 参数n_estimators建议设置100-200
3. 工程实践要点
3.1 数据预处理策略
非结构化数据(如文本)需要特殊处理:
python复制from sklearn.feature_extraction.text import TfidfVectorizer
tfidf = TfidfVectorizer(max_features=5000)
X = tfidf.fit_transform(text_data)
处理混合类型数据时,建议:
- 数值变量:RobustScaler
- 类别变量:TargetEncoder
- 缺失值:迭代插补(IterativeImputer)
3.2 模型评估方法
虽然没有真实标签,但仍可评估:
- 轮廓系数:[-1,1]区间,越大越好
- Calinski-Harabasz指数:类间离散/类内离散
- 戴维森堡丁指数:接近0更好
在电商用户聚类项目中,我们通过人工抽样验证发现,当轮廓系数>0.6时,业务人员对聚类结果的认可度达85%以上。
3.3 分布式实现
PySpark中的实现示例:
python复制from pyspark.ml.clustering import KMeans
kmeans = KMeans(k=5, featuresCol="scaled_features")
model = kmeans.fit(scaled_data)
性能优化技巧:
- 合理设置numPartitions
- 使用KMeans||初始化算法
- 对大规模数据可以先做MiniBatchKMeans
4. 行业应用案例
4.1 金融风控
某银行应用案例:
- 使用DBSCAN检测异常交易
- 通过t-SNE可视化高维特征
- 结合孤立森林评分
效果:欺诈检测召回率提升37%,同时减少60%的误报。
4.2 推荐系统
用户embedding生成流程:
- 物品共现矩阵构建
- 矩阵分解得到潜在因子
- 层次聚类生成用户分群
实践发现,这种方法比协同过滤的冷启动表现更好。
4.3 工业物联网
设备异常检测方案:
- 阶段1:PCA降维
- 阶段2:高斯混合模型聚类
- 阶段3:3σ原则标记异常
在某汽车生产线部署后,提前2周预测到关键设备故障。
5. 常见问题排查
5.1 算法选择困惑
决策流程图:
code复制连续特征 → 高斯混合模型
高维数据 → 谱聚类/DBSCAN
需要可解释性 → K-means
时序数据 → 隐马尔可夫模型
5.2 维度灾难应对
当特征数>10000时:
- 先用TruncatedSVD降维
- 应用自动编码器
- 最后进行聚类
5.3 结果不稳定分析
可能原因:
- 数据分布偏移
- 随机初始化影响
- 超参数敏感
解决方案:
- 多次运行取共识
- 使用确定性的初始化
- 参数网格搜索
6. 前沿发展方向
对比学习(Contrastive Learning)在无监督领域展现出强大潜力。最近在图像数据上,SimCLR框架通过数据增强样本的对比学习,得到的特征表示甚至优于有监督预训练。
自监督学习(Self-supervised Learning)是另一个重要趋势。在NLP领域,BERT等模型通过掩码语言建模任务,无需标注数据就能学习高质量文本表示。
我在实际项目中测试发现,将自监督预训练和传统聚类算法结合,在文本分类任务上能用1/10的标注数据达到原有效果。
