正如上篇所说,非监督学习在数据挖掘中主要是以聚类分析算法的方式出现。我们知道,聚类算法是将一组物理或抽象的对象按某种相似特性进行分组的过程,它不同于监督学习算法(分类算法)依赖于已经定义好或标记好的类别进行训练和学习,而是通过观察进行学习。那么,我们通过聚类算法,能够从数据中获取什么呢?
为了更为简洁的说明这个问题,我们人为的创建了三列数据(按一定规则),第一列为序号,第二列为属性1数据,第二列为属性2数据。这里没有使用高维数据是为了便于能用图形进行直观说明。下图为将这两个属性按序号绘制的图形,它所表现的是两条曲线。
针对这两个属性数据,利用通用的Kmeans算法对其进行聚类分析,其计算结果用下图表示。
图中红绿兰三种颜色表示了数据的三种聚类类型,即每一种颜色所表示的数据在某一种意义下(依赖于算法)属于同一类数据。从该图中我们能看出来的聚类特点是其数据序号的先后分布特征,红色的数据在前,蓝色的居中,绿色的在后。但其中一些不符合这些规律的点(如下部的红色和蓝色点)似乎可以否定我们这种想法。显然,从这个角度理解所挖掘对象的数据结构似乎是不准确的。那么这个例子的真实情况是怎样的呢?我们将上面的数据换一种方式展示,即不按曲线的形式展示,而是按两个属性的交会图的形式绘制(如:属性1为横坐标,属性2为纵坐标),其数据的分布就变成了下图所示。
从该图中不难看出,原来的曲线变成了具有明显分布特征的散点图。同样,将上述聚类分析结果以这种方式展示,就可以清晰看到了这个数据集聚为三类,每一类具有等轴性且边界清晰的分布特征(如下图所示)。
上述例子说明,数据中的某些特征有时候不能直观可见或易于表征,但利用聚类分析可以挖掘出数据内部隐含的某种数据结构(或分布特征),进而实现某种需求的应用。当然,实际的情况要比这复杂的多,有诸多的因素会影响这种聚类分析的效果,需要针对不同的情况采用适当的应对策略。
领取专属 10元无门槛券
私享最新 技术干货