MATLAB实现聚类】的更多相关文章

%% Cluster x = data; % 传入数据 [h, w] = size(x); num_cluster = 12; % 聚类数 T = clusterdata(x, num_cluster); % T变量中显示每个数据被分到了哪一类 res = zeros(30); for i = 1 : num_cluster % 整合所有数据的类别划分 % hang为类, 列无特殊意义, 矩阵元素为样本点序号 res(i, 1:length(find(T(:, 1) == i)')) = fin…
目前已知matlab的聚类方法有三种: 一.利用 clusterdata函数对样本数据进行一次聚类,其缺点为可供用户选择的面较窄,不能更改距离的计算方法: 二.层次聚类,该方法较为灵活,需要进行细节了解聚类原理,具体需要进行如下过程处理: (1)找到数据集合中变量两两之间的相似性和非相似性,用pdist函数计算变量之间的距离: (2)用 linkage函数定义变量之间的连接: (3)用 cophenetic函数评价聚类信息: (4)用cluster函数创建聚类. 三.划分聚类,包括K均值聚类和K…
MATLAB聚类有效性评价指标(外部) 作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ 更多内容,请看:MATLAB.聚类.MATLAB聚类有效性评价指标(外部 成对度量).MATLAB: Clustering Algorithms 前提:数据的真实标签已知! 1. 归一化互信息(Normalized Mutual information) 定义 程序 function MIhat = nmi(A, B) %NMI Normalized mutua…
问题引入 在做实验的时候,需要用到python和matlab工具来进行不同的处理,比如在run神经网络的时候,需要使用pytorch框架得到网络的各个参数,在得到参数后需要使用matlab进行聚类规划.之前的做法是用python脚本耦合其联系,两者通信的方式是通过文件.后来发现matlab有针对于python的api引擎,瞬间感觉打开了新世界的大门,只需要在python中调用相关的api,就可以完成matlab的工作,再也不用一个一个复制文件了. 解决思路 首先,我安装的是matlab R201…
MATLAB最大均值差异(Maximum Mean Discrepancy) 作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ 更多内容,请看标签:MATLAB.聚类 注:X与Y数据维度必须一致! 1. MMD介绍 2. MATLAB程序 数据 注:数据集仅供参考,并不能真正用于研究中. 源域: 2.1789 1.7811 5.079 4.9312 0.8621 2.1287 4.9825 2.3388 2.6347 1.9563 4.5392 4.…
最近在看<机器学习实战>这本书,因为自己本身很想深入的了解机器学习算法,加之想学python,就在朋友的推荐之下选择了这本书进行学习. 一 . K-近邻算法(KNN)概述  最简单最初级的分类器是将全部的训练数据所对应的类别都记录下来,当测试对象的属性和某个训练对象的属性完全匹配时,便可以对其进行分类.但是怎么可能所有测试对象都会找到与之完全匹配的训练对象呢,其次就是存在一个测试对象同时与多个训练对象匹配,导致一个训练对象被分到了多个类的问题,基于这些问题呢,就产生了KNN. KNN是通过测量…
前言:这几天一直都在研究模糊聚类.感觉网上的文档都没有一个详细而具体的讲解,正好今天有时间,就来聊一聊模糊聚类. 一:模糊数学 我们大家都知道计算机其实只认识两个数字0,1.我们平时写程序其实也是这样if 1 then do.永远这种模式,在这种模式中,一个元素要么属于这个集合,要么不属于这个集合,但是对我们现在介绍的模糊集来说,某个元素可能部分属于这个集合,又可能部分属于另外的集合,显然,例如,一个男人(1表示),一个女人(0表示),但是随着科学技术的发展,出现了人妖这个生物(可能0.3属于男…
1.K-均值聚类法的概述    之前在参加数学建模的过程中用到过这种聚类方法,但是当时只是简单知道了在matlab中如何调用工具箱进行聚类,并不是特别清楚它的原理.最近因为在学模式识别,又重新接触了这种聚类算法,所以便仔细地研究了一下它的原理.弄懂了之后就自己手工用matlab编程实现了,最后的结果还不错,嘿嘿~~~   简单来说,K-均值聚类就是在给定了一组样本(x1, x2, ...xn) (xi, i = 1, 2, ... n均是向量) 之后,假设要将其聚为 m(<n) 类,可以按照如下…
人生如戏!!!! 一.理论准备 聚类算法,不是分类算法.分类算法是给一个数据,然后判断这个数据属于已分好的类中的具体哪一类.聚类算法是给一大堆原始数据,然后通过算法将其中具有相似特征的数据聚为一类. K-Means算法的基本思想是初始随机给定K个簇中心,按照最邻近原则把待分类样本点分到各个簇.然后按平均法重新计算各个簇的质心,从而确定新的簇心.一直迭代,直到簇心的移动距离小于某个给定的值. 算法大致思路:       1.从给定样本中任选几个点作为初始中心(我取k=2)       2.计算其余…
在数据挖掘中聚类和分类的原理被广泛的应用. 聚类即无监督的学习. 分类即有监督的学习. 通俗一点的讲就是:聚类之前是未知样本的分类.而是根据样本本身的相似性进行划分为相似的类簇.而分类 是已知样本分类,则需要将样本特征和分类特征进行匹配,进而将每个样本归入给出的特定的类. 由于本文是对聚类算法中的k-means算法的实现,所以接下来主要进行一些聚类算法的介绍. 聚类算法包括多种,可按如下分配: 1.划分法:基于此种思想的聚类算法包括 k-means,PAM,CLARA,CLARANS,STIRR…
MATLAB中“fitgmdist”的用法及其GMM聚类算法 作者:凯鲁嘎吉 - 博客园http://www.cnblogs.com/kailugaji/ 高斯混合模型的基本原理:聚类——GMM,MATLAB官方文档中有关于fitgmdist的介绍:fitgmdist.我之前写过有关GMM聚类的算法:GMM算法的matlab程序.这篇文章主要应用MATLAB自带的函数来进行聚类. 1. fitgmdist函数介绍 fitgmdist的使用形式:gmm = fitgmdist(X,k,Name,V…
聚类——GAKFCM的matlab程序 作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ 在聚类——GAKFCM文章中已介绍了GAKFCM算法的理论知识,现在用matlab进行实现,下面这个例子是用GA初始化聚类中心. 1.matlab程序 GAKFCM_main.m function [ave_acc_GAKFCM,max_acc_GAKFCM,min_acc_GAKFCM,ave_iter_GA,ave_iter_KFCM,ave_run_tim…
聚类——WKFCM的matlab程序 作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ 在聚类——WKFCM文章中已介绍了WKFCM算法的理论知识,现在用matlab进行实现,下面这个例子是用FCM初始化聚类中心,也可以随机初始化聚类中心. 1.matlab程序 WKFCM_main.m %function [ave_acc_WKFCM,max_acc_WKFCM,min_acc_WKFCM,ave_iter_WKFCM,ave_run_time]=…
聚类——KFCM的matlab程序 作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ 在聚类——KFCM文章中已介绍了KFCM-F算法的理论知识,现在用matlab进行实现,下面这个例子是用FCM初始化聚类中心,也可以随机初始化聚类中心. 1.matlab程序 KFCM_main.m %function [ave_acc_KFCM,max_acc_KFCM,min_acc_KFCM,ave_iter_KFCM,ave_run_time]=KFCM_m…
聚类——FCM的matlab程序 作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ 在聚类——FCM文章中已介绍了FCM算法的理论知识,现在用matlab进行实现. 1.matlab程序 FCM_main.m function [ave_acc_FCM,max_acc_FCM,min_acc_FCM,ave_iter_FCM,ave_run_time]=FCM_main(X,real_label,K) %输入K:聚的类,max_iter是最大迭代次数…
KFCM算法的matlab程序(用FCM初始化聚类中心) 在“聚类——KFCM”这篇文章中已经介绍了KFCM算法,现在用matlab程序对iris数据库进行实现,用FCM初始化聚类中心,并求其准确度与运行时间. 作者:凯鲁嘎吉 - 博客园http://www.cnblogs.com/kailugaji/ 1.iris数据 iris.data 5.1,3.5,1.4,0.2,1 4.9,3.0,1.4,0.2,1 4.7,3.2,1.3,0.2,1 4.6,3.1,1.5,0.2,1 5.0,3.…
聚类算法,不是分类算法. 分类算法是给一个数据,然后判断这个数据属于已分好的类中的具体哪一类. 聚类算法是给一大堆原始数据,然后通过算法将其中具有相似特征的数据聚为一类. 这里的k-means聚类,是事先给出原始数据所含的类数,然后将含有相似特征的数据聚为一个类中. 所有资料中还是Andrew Ng介绍的明白. 首先给出原始数据{x1,x2,...,xn},这些数据没有被标记的. 初始化k个随机数据u1,u2,...,uk.这些xn和uk都是向量. 根据下面两个公式迭代就能求出最终所有的u,这些…
一.聚类的概念 聚类分析是在数据中发现数据对象之间的关系,将数据进行分组,组内的相似性越大,组间的差别越大,则聚类效果越好.我们事先并不知道数据的正确结果(类标),通过聚类算法来发现和挖掘数据本身的结构信息,对数据进行分簇(分类).聚类算法的目标是,簇内相似度高,簇间相似度低 二.基本的聚类分析算法 1. K均值(K-Means): 基于原型的.划分的距离技术,它试图发现用户指定个数(K)的簇. 2. 凝聚的层次距离: 思想是开始时,每个点都作为一个单点簇,然后,重复的合并两个最靠近的簇,直到尝…
MATLAB实例:聚类初始化方法与数据归一化方法 作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ 1. 聚类初始化方法:init_methods.m function label=init_methods(data, K, choose) % 输入:无标签数据,聚类数,选择方法 % 输出:聚类标签 if choose==1 %随机初始化,随机选K行作为聚类中心,并用欧氏距离计算其他点到其聚类,将数据集分为K类,输出每个样例的类标签 [X_num,…
MATLAB聚类有效性评价指标(外部 成对度量) 作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ 更多内容,请看:MATLAB: Clustering Algorithms, MATLAB聚类有效性评价指标(外部) 前提:数据的真实标签已知!TP:真阳性,FP:假阳性,FN:假阴性,TN:真阴性 1. MATLAB程序 function result = Evaluate(real_label,pre_label) % This fucntion…
ISODATA聚类算法的matlab程序 作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ 参考:Kmeans及ISODATA算法的matlab实现 算法简介:聚类算法:ISODATA算法 数据见:MATLAB实例:PCA降维中的iris数据集,保存为:iris.data,最后一列是类标签. demo_isodata.m clear clc data_load=dlmread('iris.data'); [~,dim]=size(data_load)…
canopy聚类算法的MATLAB程序 凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ 1. canopy聚类算法简介 Canopy聚类算法是一个将对象分组到类的简单.快速.精确地方法.每个对象用多维特征空间里的一个点来表示.这个算法使用一个快速近似距离度量和两个距离阈值T1>T2来处理.基本的算法是,从一个点集合开始并且随机删除一个,创建一个包含这个点的Canopy,并在剩余的点集合上迭代.对于每个点,如果它的距离第一个点的距离小于T1,然后这个点就加…
mean shift聚类算法的MATLAB程序 凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ 1. mean shift 简介 mean shift, 写的更符合国人的习惯,应该是mean of shift,也就是平均偏移量,或者偏移均值向量.在明确了含义之后,就可以开始如下的具体讲解了. &amp;amp;amp;amp;amp;lt;img src="https://pic1.zhimg.com/50/v2-b5f01fcdfc7b8503…
密度峰值聚类算法MATLAB程序 凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ 密度峰值聚类算法简介见:[转] 密度峰值聚类算法(DPC) 数据见:MATLAB中“fitgmdist”的用法及其GMM聚类算法,保存为gauss_data.txt文件,数据最后一列是类标签. 1. MATLAB程序 clear all close all %% 从文件中读取数据 data_load=dlmread('gauss_data.txt'); [num,dim]=…
MATLAB实例:聚类网络连接图 作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ 本文给出一个简单实例,先生成2维高斯数据,得到数据之后,用模糊C均值(FCM)算法对数据进行聚类,得到聚类中心,然后绘制每一类数据到聚类中心的网络连接图. 1. 程序 generate_data.m function data=generate_data() %前两列是数据,最后一列是类标签 %% %数据规模 N=100; %混合比例 para_pi=[0.33, 0…
其实一直以来也没有准备在园子里发这样的文章,相对来说,算法改进放在园子里还是会稍稍显得格格不入.但是最近邮箱收到的几封邮件让我觉得有必要通过我的博客把过去做过的东西分享出去更给更多需要的人.从论文刊登后,陆陆续续收到本科生.研究生还有博士生的来信和短信微信等,表示了对论文的兴趣以及寻求算法的效果和实现细节,所以,我也就通过邮件或者短信微信来回信,但是有时候也会忘记回复. 另外一个原因也是时间久了,我对于论文以及改进的算法的记忆也越来越模糊,或者那天无意间把代码遗失在哪个角落,真的很难想象我还会全…
请编写一个谱聚类算法,实现"Normalized Spectral Clustering-Algorithm 3 (Ng 算法)" 结果如下 谱聚类算法核心步骤都是相同的: •利用点对之间的相似性,构建亲和度矩阵: •构建拉普拉斯矩阵: •求解拉普拉斯矩阵最小的特征值对应的特征向量(通常舍弃零特征所对应的分量全相等的特征向量): •由这些特征向量构成样本点的新特征,采用K-means等聚类方法完成最后的聚类. 采用K-means等聚类方法完成最后的聚类  意思是,对特征向量构成的矩阵T…
K-means聚类算法采用的是将N*P的矩阵X划分为K个类,使得类内对象之间的距离最大,而类之间的距离最小. 使用方法:Idx=Kmeans(X,K)[Idx,C]=Kmeans(X,K) [Idx,C,sumD]=Kmeans(X,K) [Idx,C,sumD,D]=Kmeans(X,K) […]=Kmeans(…,’Param1’,Val1,’Param2’,Val2,…) 各输入输出参数介绍: X N*P的数据矩阵K 表示将X划分为几类,为整数Idx N*1的向量,存储的是每个点的聚类标号…
kmeans函数用法如下: [IDX,C,sumd,D] = kmeans(X,2,'Distance','city','Replicates',5,'Options',opts); 参数含义如下:IDX:        每个样本点所在的类别C:         所聚类别的中心点坐标位置k*p,k是所聚类别sumd:     每个类内各点到中心点的距离之和D:         每个点到各类中心点的距离n*k X表示待聚类的数据矩阵: 2表示聚类类别数:…
本文主要参考: https://wenku.baidu.com/view/b7907665caaedd3383c4d31b.html https://blog.csdn.net/u010376788/article/details/50187321 虽然参考上面两篇文章,不过这里和他给出的算法步骤不完全一致. 因为上面文章是针对Graphs的,矩阵中有边为0的数据,而我的数据是Vector的,边是根据距离计算出来的,应该还是有点区别的,而且我还用了kmeans. 首先给出他的算法步骤: 1.输入…