mcl计算matlab代码,matlab练习程序(马尔可夫聚类MCL)
本文主要参考:
虽然参考上面两篇文章,不过这里和他给出的算法步骤不完全一致。
因为上面文章是针对Graphs的,矩阵中有边为0的数据,而我的数据是Vector的,边是根据距离计算出来的,应该还是有点区别的,而且我还用了kmeans。
首先给出他的算法步骤:
1.输入一个无向图,Expansion的幂e和Inflation的参数r。
2.创建邻接矩阵。
3.对每个结点添加自循环(可选的)。
4.标准化矩阵(每个元素除以所在列的所有元素之和)。
5.计算矩阵的第e次幂。
6.用参数r对求得的矩阵进行Inflation处理。
7.重复第5步和第6步,直到状态稳定不变(收敛)。
8.把最终结果矩阵转换成聚簇。
然后是这里的算法步骤:
1.输入数据,创建邻接矩阵。
2.标准化矩阵(每个元素除以所在列的所有元素之和)。
3.对标准化后的矩阵进行马尔可夫状态转移。
4.重复第2步和第3步,直到状态稳定不变(收敛)。
5.使用kmeans把最终结果矩阵转换成聚簇。(不明白kmeans的可以看看这篇文章)
代码如下:
clear all;
close all;
clc;
K=3;
theta=0:0.01:2*pi;
p1=[3*cos(theta) + rand(1,length(theta))/2;3*sin(theta)+ rand(1,length(theta))/2];
p2=[2*cos(theta) + rand(1,length(theta))/2;2*sin(theta)+ rand(1,length(theta))/2];
p3=[cos(theta) + rand(1,length(theta))/2;sin(theta)+ rand(1,length(theta))/2];
p=[p1 p2 p3]';
randIndex = randperm(length(p))'; %打乱数据顺序
p=p(randIndex,:);
plot(p(:,1),p(:,2),'.')
for i = 1:length(p)
for j =1:length(p)
W(i,j) = sqrt(sum((p(i,:)-p(j,:)).^2)); %根据距离初始化无向图的边
end
end
preW=W;
while 1
x=repmat(sum(W),length(p),1);
W=W./x;
W=W*W; %马尔科夫状态转移
if sum(sum(preW-W))<1e-15
break;
end
preW=W;
end
[idx,ctrs] = kmeans(W(:,1),K); %用kmeans将收敛矩阵转换为聚簇
figure;
plot(p(idx==1,1),p(idx==1,2),'r.')
hold on;
plot(p(idx==2,1),p(idx==2,2),'g.')
plot(p(idx==3,1),p(idx==3,2),'b.')
原始数据:
聚类后:
mcl计算matlab代码,matlab练习程序(马尔可夫聚类MCL)相关推荐
- 马尔可夫聚类 MCL
本文转载自:聚类算法--MCL 和 马尔可夫聚类算法 Background Different Clustering Vector Clustering 我们在描述一个人时,常常会使用他所拥有的特点来 ...
- arcgis使用arcpy计算土地利用LUCC变化转移矩阵、马尔科夫模型变化表,最好用的方法TabulateArea实现两期数据变化统计
arcgis使用arcpy计算土地利用LUCC变化转移矩阵.马尔科夫模型变化表,最好用的方法TabulateArea实现两期数据变化统计: 下载链接:LUCC变化转移矩阵Arcpy脚本 coding ...
- matlab应用于体育彩票上,马尔科夫预测法在体育彩票“排列三”中的应用
张思思 曾华 (中南大学土木建筑学院,湖南长沙 410012) 摘要:本文首先对"体彩排列三"中的和数与和尾上近1074期的出号数字进行统计,利用马尔可夫链,求得其相应的转移矩 ...
- 求解平稳分布matlab,随机过程课程设计--应用马尔科夫链的平稳分布预测空调市场的占有率.doc...
课程名称: <随机过程> 课程设计(论文) 题 目: 应用马尔科夫链的平稳分 布预测市场占有率 学 院: 理学院 专 业: 数学与应用数学 班 级: 15-1 学 生 姓 名: 邹光睿 学 ...
- Matlab实现Viterbi算法,隐马尔可夫模型(HMM)的MATLAB实现——Viterbi算法
维特比算法实际是用动态规划求解隐马尔可夫模型解码问题,即用动态规划求概率最大路径(最优路径).代码中有示例,来自李航<统计学习方法> function [Delta,Psi,P,I] = ...
- mcmc matlab 人大,mcmc.in.matlab 使用matlab工具完成mcmc(马尔科夫蒙托卡罗)方法的计算 - 下载 - 搜珍网...
mcmc的matlab实现/ mcmc的matlab实现/mcmc/ mcmc的matlab实现/mcmc/About_MCMC.html mcmc的matlab实现/mcmc/betalpr.m m ...
- matlab——自带的隐马尔科夫工具箱的使用
最近用到HMM,MATALB自带HMM工具箱 了解一下 1.hmmgenerate函数 [SEQ, STATES] = HMMGENERATE(LEN,TRANSITIONS,EMISSIONS) ...
- 马尔可夫聚类算法(MCL)
1.基础 1.1Random Walks 在图中,通过Random Walks处理,可以找到数据在哪里聚集,或者聚簇在哪. 图中的Random Walks是使用马尔可夫链计算求出. 1.2马尔可夫链( ...
- m基于隐马尔科夫模型(HMM)的手机用户行为预测(MMUB)算法matlab仿真
目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB 1.算法描述 隐马尔可夫模型(Hidden Markov Model,HMM)是一种统计模型,广泛应用在语音识别, ...
最新文章
- 服务器响应的生成:HTTP响应报头——HttpServletResponse接口的应用
- android 串口开发_详细分析Esp8266上电信息打印的数据,如何做到串口通讯上电不乱码打印...
- “科研女神”颜宁当选美国科学院外籍院士
- HTTP协议和HTTPS协议初探
- pytorch基础知识整理(五) 优化器
- mysql自增id获取失败
- python循环输入字符串_Python基础-条件判断、循环、字符串格式化
- 某大型IT公司招网络工程师认证试题精选(要求:CCNA或 HCNE以上)
- 打开word时总是弹出The resource dll can not be loaded
- 图像处理之超像素分割(SLIC)
- 程序员如何选择外包平台
- firefoxos中打开app
- 在微信朋友圈冲浪必备的心灵免疫力
- 西班牙建筑中的突起感是什么呀
- PHP+JS+HTML 手机下拉加载分页
- 深度学习(二)-----算法岗面试题
- rpm安装及卸载软件
- pycharm配置 自动运行指定脚本
- 红黄绿小灯泡标记实现
- Unity(三)三维数学和坐标系统
热门文章
- 从神话诗歌到奇幻科学的人类探索史·《月亮》·精彩摘录
- indesign里怎么打根号_排版中黄金比例、白银比例是什么意思?
- Android merge
- 梁海云:优秀志愿者风采展示(2022年度)
- Android Activity底层启动过程分析
- 判断推理之图形推理 1
- 震撼!全球超低功耗LED显示屏生产基地现场首播成功!
- 曾鸣:未来10年,在潮中戏水还是被大浪抛弃?| 阿里内部干货
- JavaWeb day10会话技术
- 临界区锁 InitializeCriticalSection()--- EnterCriticalSection()--LeaveCriticalSection()