谱聚类python实践

聚类后:

# -*- coding: utf-8 -*-"""Created on 09 05 2017

@author: similarface"""import numpy as npimport matplotlib.pyplot as pltimport mpl_toolkits.mplot3d.axes3d as p3from sklearn import datasetsfrom sklearn import metricsfrom sklearn.cluster import SpectralClustering

#500 个样本  3个特征 6个中心  方差数据的离散程度X, y = datasets.make_blobs(n_samples=500, n_features=3, centers=6, cluster_std=[1.4, 0.3, 1.4, 0.3, 0.4, 0.9],random_state=11)xx, yy, zz = X[:, 0], X[:, 1], X[:, 2]# 创建一个三维的绘图工程ax = plt.subplot(111, projection=‘3d‘)# 将数据点分成三部分画,在颜色上有区分度# 绘制数据点ax.scatter(xx, yy, zz, c=‘y‘)# 坐标轴ax.set_zlabel(‘Z‘)ax.set_ylabel(‘Y‘)ax.set_xlabel(‘X‘)plt.show()

#为了区分 聚类成5个类y_pred = SpectralClustering(n_clusters=5, gamma=0.1).fit_predict(X)fig = plt.figure()ax = p3.Axes3D(fig)ax.view_init(7, -80)for l in np.unique(y_pred):    ax.scatter(X[y_pred == l, 0], X[y_pred == l, 1], X[y_pred == l, 2],color=plt.cm.jet(float(l) / np.max(y_pred + 1)),s=20, edgecolor=‘k‘)plt.title(u‘谱聚类‘)plt.show()

#交叉计算 簇个数 以及RBF的 参数值 最后的max(Calinski-Harabasz Score) 为最佳# for index, gamma in enumerate((0.01,0.1,1,10)):#     for index, k in enumerate((3,4,5,6)):#         y_pred = SpectralClustering(n_clusters=k, gamma=gamma).fit_predict(X)#         print "Calinski-Harabasz Score with gamma=", gamma, "n_clusters=", k,"score:", metrics.calinski_harabaz_score(X, y_pred)
‘‘‘http://www.cnblogs.com/pinard/p/6221564.html‘‘‘
时间: 2024-10-11 16:55:04

谱聚类python实践的相关文章

关于谱聚类的ng算法的实现

广义上讲,任何在学习过程中应用到矩阵特征值分解的方法均叫做谱学习方法,比如主成分分析(PCA),线性判别成分分析(LDA),流形学习中的谱嵌入方法,谱聚类等等. 由于科苑向世明老师课件上面关于ng的谱聚类算法里面与ng大神的论文中写到的算法中有所出入,导致昨天晚上调了一晚上的算法并没有调出满意的结果,今天在网上找到了ng大神的原始paper阅读一遍,虽然还是有很多不理解的地方,还是有了自己的见解.下面是ng算法的流程. 算法第一步先通过高斯函数计算出每个点与其他点的亲和度,与自己的亲和度为0,对

谱聚类--SpectralClustering

谱聚类一般会先对两两样本间求相似度, 然后根据相似度矩阵求出拉普拉斯矩阵,然后将每个样本映射到拉普拉斯矩阵特诊向量中,最后使用k-means聚类. scikit-learn开源包中已经有现成的接口可以使用,具体见 http://scikit-learn.org/dev/modules/generated/sklearn.cluster.SpectralClustering.html#sklearn.cluster.SpectralClustering 写了一个测试例子 构造二维空间样本点, #!

利用谱聚类算法解决非完全图的聚类

在处理非完全图的聚类时候,很难找到一个有效的聚类算法去做聚类. 对于下图来说,10号点和15号点的位置相隔并不是那么近,如用普通聚类算法对下图做聚类,通常会把10号点和15号点聚在一个类上,所以一般的聚类效果并没有那么好. 而谱聚类,就很能很好的处理这类问题. 下面我们来重点介绍谱聚类 谱聚类(SpectralClustering),就是要把样本合理地分成两份或者K份.从图论的角度来说,谱聚类的问题就相当于一个图的分割问题.即给定一个图G = (V, E),顶点集V表示各个样本,带权的边表示各个

从拉普拉斯矩阵说到谱聚类

转载:http://blog.csdn.net/v_july_v/article/details/40738211   0 引言     11月1日上午,机器学习班第7次课,邹博讲聚类(PPT),其中的谱聚类引起了自己的兴趣,他从最基本的概念:单位向量.两个向量的正交.方阵的特征值和特征向量,讲到相似度图.拉普拉斯矩阵,最后讲谱聚类的目标函数和其算法流程.     课后自己又琢磨了番谱聚类跟拉普拉斯矩阵,打算写篇博客记录学习心得, 若有不足或建议,欢迎随时不吝指出,thanks. 1 矩阵基础

【机器学习】--谱聚类从初始到应用

一.前述 谱聚类(spectral clustering)是一种基于图论的聚类方法,主要思想是把所有的数据看做空间中的点,这些点之间可以用边连接起来.距离较远(或者相似度较低)的两个点之间的边权重值较低,而距离较近(或者相似度较高)的两个点之间的边权重值较高,通过对所有数据点组成的图进行切图,让切图后不同的子图间边权重和尽可能的低,而子图内的边权重和尽可能的高,从而达到聚类的目的. 二.具体原理 1.优点谱聚类相较于前面讲到的最最传统的k-means聚类方法,谱聚类又具有许多的优点: 1.只需要

机器学习(6)之聚类算法(k-means\Canopy\层次聚类\谱聚类)

目录 1 聚类的定义 1.1 距离公式(相似度) 1.2 聚类的思想 2 K-means算法 2.1 K-means算法的思考 2.2 总结 3 二分K-Means算法 4 K-Means++算法 4.1 K-Means||算法 5 Canopy算法 5.1 应用场景 6 Mini Batch K-Means算法 7 层次聚类方法 7.1 AGNES算法中簇间距离 7.2 层次聚类优化算法 8 密度聚类 8.1 DBSCAN算法 8.1.1 基本概念 8.1.2 算法流程 8.1.3 DBSCA

谱聚类算法

转载自:[聚类算法]谱聚类(Spectral Clustering) 1.问题描述 谱聚类(Spectral Clustering, SC)是一种基于图论的聚类方法——将带权无向图划分为两个或两个以上的最优子图(sub-Graph),使子图内部尽量相似,而子图间距离尽量距离较远,以达到常见的聚类的目的. 对于图的相关定义如下: 对于无向图G = (V,E),V表示顶点集合,即样本集合,即一个顶点为一个样本:E表示边集合. 设样本数为n,即顶点数为n. 权重矩阵:W,为n*n的矩阵,其值wi,j为

用scikit-learn学习谱聚类

在谱聚类(spectral clustering)原理总结中,我们对谱聚类的原理做了总结.这里我们就对scikit-learn中谱聚类的使用做一个总结. 1. scikit-learn谱聚类概述 在scikit-learn的类库中,sklearn.cluster.SpectralClustering实现了基于Ncut的谱聚类,没有实现基于RatioCut的切图聚类.同时,对于相似矩阵的建立,也只是实现了基于K邻近法和全连接法的方式,没有基于$\epsilon$-邻近法的相似矩阵.最后一步的聚类方

谱聚类算法及其代码(Spectral Clustering)

简介 文章将介绍谱聚类(spectral clustering)的基本算法,以及在matlab下的代码实现.介绍内容将包括: 从图分割角度直观理解谱聚类 谱聚类算法步骤 数据以及实现代码 本文将不会涉及细节化的证明和推导,如有兴趣可参考july大神的文章从拉普拉斯矩阵说到谱聚类. 对谱聚类的理解 这一节将从图分割聚类的角度直观理解谱聚类.不过,因为本人是从事社交媒体分析的,将从一种社会关系网络的角度来介绍网络图分割成多个子图的概念. 图的分割 首先将社会关系网络看成是一个整体,每一个个体(use