关于算法:R语言谱聚类Kmeans聚类分析非线性环状数据比较

37次阅读

共计 2056 个字符,预计需要花费 6 分钟才能阅读完成。

原文链接:http://tecdat.cn/?p=23276

有些问题是线性的,但有些问题是非线性的。我假如,你过来的常识是从探讨和解决线性问题开始的,这是一个天然的终点。对于非线性问题的解决,往往波及一个初始解决步骤。这个初始步骤的目标是将问题转化为同样具备线性特色的问题。

一个教科书式的例子是逻辑回归,用于取得两类之间的最佳线性边界。在一个规范的神经网络模型中,你会发现逻辑回归(或多类输入的回归)利用于转换后的数据。后面的几层 “ 致力于 “ 将不可分割的输出空间转化为线性办法能够解决的货色,使逻辑回归可能绝对容易地解决问题。

同样的情理也实用于谱聚类。与其用原始输出的数据工作,不如用一个转换后的数据工作,这将使它更容易解决,而后再链接到你的原始输出。

谱聚类是一些相当规范的聚类算法的重要变体。它是古代统计工具中的一个弱小工具。谱聚类包含一个解决步骤,以帮忙解决非线性问题,这样的问题能够用咱们所喜爱的那些线性算法来解决。例如,风行的 K -means。

内容

  • 谱系聚类的动机
  •  一个典型的谱聚类算法
  •  编码实例

谱聚类的动机

“ 一张图片胜过万语千言 ”(Tess Flanders)。

指标是划分两个不相交的类别。咱们的数据就有这种 “ 两个环 “ 的形态。你能够看到,因为数据不是线性可拆散的,K-means 解决方案没有太大意义。咱们须要思考到数据中特地的非线性构造。做到这一点的办法之一是应用数据的特色子空间,不是数据的理论状况,而是数据的相似性矩阵。

典型的谱聚类算法步骤

输出:n 个样本点 和聚类簇的数目 k;

输入:聚类簇

(1)应用上面公式计算 的类似度矩阵 W;

                                 

W 为 组成的类似度矩阵。

(2)应用上面公式计算度矩阵 D;

 ,即类似度矩阵 W 的每一行元素之和 

D 为 组成的 对角矩阵。

(3)计算拉普拉斯矩阵

(4)计算 L 的特征值,将特征值从小到大排序,取前 k 个特征值,并计算前 k 个特征值的特征向量

(5)将下面的 k 个列向量组成矩阵

(6)令 是的第 行的向量,其中

(7)应用 k -means 算法将新样本点 聚类成簇

(8)输入簇,其中,.

下面就是未标准化的谱聚类算法的形容。也就是先依据样本点计算类似度矩阵,而后计算度矩阵和拉普拉斯矩阵,接着计算拉普拉斯矩阵前 k 个特征值对应的特征向量,最初将这 k 个特征值对应的特征向量组成 的矩阵 U,U 的每一行成为一个新生成的样本点,对这些新生成的样本点进行 k -means 聚类,聚成 k 类,最初输入聚类的后果。这就是谱聚类算法的根本思维。相比拟 PCA 降维中取前 k 大的特征值对应的特征向量,这里获得是前 k 小的特征值对应的特征向量。然而上述的谱聚类算法并不是最优的,接下来咱们一步一步的合成下面的步骤,总结一下在此基础上进行优化的谱聚类的版本。

编码示例

环数据在代码中是对象 dat。上面的几行只是简略地生成 K -means 解决方案,并将其绘制进去。

plot(dat, col= kmeans0cluster)

  

当初是谱聚类解决方案。

# 计算间隔矩阵
dist(dat, method = "euclidean", diag= T, upper = T)  
sig=1 # 超参数
#  一个点与本身的间隔为零
diag(tmpa) <- 0 #设置对角线为零
# 计算水平矩阵
# 因为 D 是一个对角线矩阵,所以上面一行就能够了:
diag(D) <- diag(D)^(-0.5)
# 当初是拉普拉斯的问题:
# 特色合成
eig_L <- eigen(L, symmetric= T)
K <- 4 # 让咱们应用前 4 个向量
# 它是相当持重的 -- 例如 5 或 6 的后果不会扭转
x <- eig_L$vectors\[,1:K\]
# 当初进行归一化解决:
sqrt(apply(x^2, 1, sum) ) #  长期分母
# 长期分母 2:转换为一个矩阵
# 创立 Y 矩阵
# 在 y 上利用聚类
# 可视化:
plot(dat, col= spect0$cluster)

* 在咱们的例子中,的条目不仅是 0 和 1(连贯或不连贯),而且是量化相似性的数字。

参考资料

Ng, Andrew Y., Michael I. Jordan, and Yair Weiss.“On spectral clustering: Analysis and an algorithm.”Advances in neural information processing systems. 2002.



最受欢迎的见解

1. R 语言 k -Shape 算法股票价格工夫序列聚类

2. R 语言中不同类型的聚类办法比拟

3. R 语言对用电负荷工夫序列数据进行 K -medoids 聚类建模和 GAM 回归

4. r 语言鸢尾花 iris 数据集的档次聚类

5.Python Monte Carlo K-Means 聚类实战

6.用 R 进行网站评论文本开掘聚类

7.用于 NLP 的 Python:应用 Keras 的多标签文本 LSTM 神经网络

8. R 语言对 MNIST 数据集剖析 摸索手写数字分类数据

9. R 语言基于 Keras 的小数据集深度学习图像分类

正文完
 0