人工智能大数据|聚类模型、聚类分析

聚类分析 有监督学习和无监督学习 如何选择?
1、是否有标签(主要):(是否可人工标注标签)
有监督学习-“有老师的学习”,有已知的训练的样本,通过已知的训练样本(如已知输入和对应的输出)来训练,从而得到一个最优模型,再将这个模型应用在新的数据上,映射为输出结果。再经过这样的过程后,模型就有了预知能力。
无监督学习-“没有老师的学习”,即没有训练的过程,直接对数据进行建模。
2、分类和聚类
有监督学习-分类
无监督学习-聚类
3、数据的独立性
数据和数据之间存在联系,不能很好很明确的分类,总有些混淆。有监督和无监督都不能彻底解决这个现象。
独立的数据适合有监督学习。
非独立的数据适合无监督学习。
聚类分析分类

  • 划分法(k-means)
自顶向下,基于划分的聚类方法中,最经典的就是k-平均(k-means)算法和 k-中心(k-medoids)算法,很多算法都是由这两个算法改进而来的。
基于划分的聚类方法的优点是,收敛速度快,缺点是,它要求类别数目 k 可以合理地估计,并且初始中心的选择和噪声会对聚类结果产生很大影响。
  • 层次法
凝聚式层次聚类算法和分裂式层次聚类算法。
1)自底向上法。
首先,每个数据对象都是一个簇,计算数据对象之间的距离,每次将距离最近的点合并到同一个簇。然后,计算簇与簇之间的距离,将距离最近的簇合并为一个大簇。不停地合并,直到合成了一个簇,或者达到某个终止条件为止。
簇与簇的距离的计算方法有最短距离法、中间距离法、类平均法等,其中,最短距离法是将簇与簇的距离定义为簇与簇之间数据对象的最短距离。自底向上法的代表算法是AGNES(AGglomerativeNESing)算法。
2)自顶向下法。
该方法在一开始所有个体都属于一个簇,然后逐渐细分为更小的簇,直到最终每个数据对象都在不同的簇中,或者达到某个终止条件为止。自顶向下法的代表算法是 DIANA(DivisiveANAlysis)算法。
基于层次的聚类算法的主要优点包括,距离和规则的相似度容易定义,限制少,不需要预先制定簇的个数,可以发现簇的层次关系。基于层次的聚类算法的主要缺点包括,计算复杂度太高,奇异值也能产生很大影响,算法很可能聚类成链状。
  • 基于密度聚类
基于密度的聚类方法的主要目标是寻找被低密度区域分离的高密度区域。与基于距离的聚类算法不同的是,基于距离的聚类算法的聚类结果是球状的簇,而基于密度的聚类算法可以发现任意形状的簇。
基于密度的聚类方法是从数据对象分布区域的密度着手的。如果给定类中的数据对象在给定的范围区域中,则数据对象的密度超过某一阈值就继续聚类。
这种方法通过连接密度较大的区域,能够形成不同形状的簇,而且可以消除孤立点和噪声对聚类质量的影响,以及发现任意形状的簇,如图 3 所示。
基于密度的聚类方法中最具代表性的是 DBSAN 算法、OPTICS 算法和 DENCLUE 算法。 图 2 是基于层次的聚类算法的示意图,上方是显示的是 AGNES 算法的步骤,下方是 DIANA 算法的步骤。这两种方法没有优劣之分,只是在实际应用的时候要根据数据特点及想要的簇的个数,来考虑是自底而上更快还是自顶而下更快。
  • 基于图/网格聚类
基于网格的聚类方法将空间量化为有限数目的单元,可以形成一个网格结构,所有聚类都在网格上进行。基本思想就是将每个属性的可能值分割成许多相邻的区间,并创建网格单元的集合。每个对象落入一个网格单元,网格单元对应的属性空间包含该对象的值
基于网格的聚类方法的主要优点是处理速度快,其处理时间独立于数据对象数,而仅依赖于量化空间中的每一维的单元数。这类算法的缺点是只能发现边界是水平或垂直的簇,而不能检测到斜边界。另外,在处理高维数据时,网格单元的数目会随着属性维数的增长而成指数级增长。
  • 基于模型聚类
基于模型的聚类方法是试图优化给定的数据和某些数学模型之间的适应性的。该方法给每一个簇假定了一个模型,然后寻找数据对给定模型的最佳拟合。假定的模型可能是代表数据对象在空间分布情况的密度函数或者其他函数。这种方法的基本原理就是假定目标数据集是由一系列潜在的概率分布所决定的。
图 5 对基于划分的聚类方法和基于模型的聚类方法进行了对比。左侧给出的结果是基于距离的聚类方法,核心原则就是将距离近的点聚在一起。右侧给出的基于概率分布模型的聚类方法,这里采用的概率分布模型是有一定弧度的椭圆。
图 5 中标出了两个实心的点,这两点的距离很近,在基于距离的聚类方法中,它们聚在一个簇中,但基于概率分布模型的聚类方法则将它们分在不同的簇中,这是为了满足特定的概率分布模型。
在基于模型的聚类方法中,簇的数目是基于标准的统计数字自动决定的,噪声或孤立点也是通过统计数字来分析的。基于模型的聚类方法试图优化给定的数据和某些数据模型之间的适应性。
聚类方法性能评估 有分类标签的数据集:
? 使用兰德指数(ARI,Adjusted Rand Index)
? 计算真实标签与聚类标签两种分布相似性之间的相似性,取值范围为[0,1]
? 1表示最好的结果,即聚类类别和真实类别的分布完全一致
//鸢尾花数据集带有标签 from sklearn import metrics metrics.adjusted_rand_score(y, kmeans.labels_) ARI为0.73

没有分类标签的数据集:
? 使用轮廓系数(Silhouette Coefficient)来度量聚类的质量
? 轮廓系数同时考虑聚类结果的簇内凝聚度和簇间分离度
? 取值范围:[-1,1],轮廓系数越大,聚类效果越好
from sklearn import metrics metrics.silhouette_score( X,kmeans.labels_,metric='euclidean' ) //忽略鸢尾花数据集的分类标签,计算聚类的轮廓系数,为0.553

回归模型-有监督学习 基于连续型数据的预测建模分析技术
常用方法:
? 线性回归(Linear Regression)
? 逻辑回归(Logistic Regression)
? 多项式回归(Polynomial Regression)
【人工智能大数据|聚类模型、聚类分析】回归模型性能评估
? 采用均方根误差(Root Mean Squared Error,RMSE)来表示误差
回归模型的预测误差越小越好,当样本数非常多时,随着n的增长,均方根
误差也会增长,不同数据集训练得到的模型效果不能横向比较
人工智能大数据|聚类模型、聚类分析
文章图片

? 统计学上,使用模型的决定系数^2来衡量模型预测能力
人工智能大数据|聚类模型、聚类分析
文章图片

    推荐阅读