模型和算法篇(二)无监督学习

张开发
2026/4/20 22:37:07 15 分钟阅读

分享文章

模型和算法篇(二)无监督学习
在无监督学习中聚类和降维是两种最常见的算法不过它们应用场景很不一样。聚类我们说过了主要可以用来做分组而降维则是通过数学变换将原始高维属性空间转变为一个低维“子空间”它本质上是通过最主要的几个特征维度实现对数据的描述。聚类算法可以让机器把数据集中的样本按照特征的性质分组不过它只是帮我们把数据特征彼此邻近的用户聚成一组这里的组称为聚类的簇。而这里说的“特征彼此邻近”指的这些用户的数据特征在坐标系中有更短的向量空间距离。也就是说聚类算法是把空间位置相近的特征数据归为同一组。聚类算法本身并不知道哪一组用户是高价值哪一组用户是低价值。分完组之后我们还要根据机器聚类的结果人为地给这些用户组贴标签看看哪一组价值高哪一组价值低。我这里把这种人为贴标签的过程称为“聚类后概念化”。一、聚类算法——K-MeansK- 均值算法这个算法不仅简洁而且效率也高是我们最常用的聚类算法。像文档归类、欺诈行为检测、用户分组等等这些场景我们往往都能用到。在 K-Means 算法中“K”是一个关键。K 代表聚类的簇也就是组的个数。比如说我们想把 M 值作为特征将用户分成 3 个簇即高、中、低三个用户组那这里的 K 值就是 3并且需要我们人工指定。指定 K 的数值后K-Means 算法会在数据中随机挑选出 K 个数据点作为簇的质心centroid这些质心就是未来每一个簇的中心点算法会根据其它数据点和它的距离来进行聚类。挑选出质心后K-Means 算法会遍历每一个数据点计算它们与每一个质心的距离比如欧式距离。数据点离哪个质心近就跟哪个质心属于一类。遍历结束后每一个质心周围就都聚集了很多数据点这时候啊算法会在数据簇中选择更靠近中心的质心如果原来随机选择的质心不合适就会让它下岗。在整个聚类过程中为了选择出更好的质心“挑选质心”和“遍历数据点与质心的距离”会不断重复直到质心的移动变化很小了或者说固定不变了那 K-Means 算法就可以停止了。我们前面说 K 值需要人工指定那怎么在算法的辅助下确定 K 值呢手肘法选取 K 值其实在事先并不是很确定分成多少组比较合适的情况下“手肘法”elbow method可以帮我们决定在某一批数据点中数据分为多少组比较合适。手肘法是通过聚类算法的损失值曲线来直观确定簇的数量。损失值曲线就是以图像的方法绘出取每一个 K 值时各个数据点距离质心的平均距离。如下图所示当 K 取值很小的时候整体损失很大也就是说各个数据点距离质心的距离特别大。而随着 K 的增大损失函数的值会在逐渐收敛之前出现一个拐点。此时的 K 值就是一个比较好的值。你看图中损失随着簇的个数而收敛的曲线大概像个手臂最佳 K 值的点像是一个手肘这就是为什么我们会叫它“手肘法”的原因。

更多文章