已知数据分类标签的GMM聚类算法的matlab代码
时间: 2024-03-16 22:41:28 浏览: 70
以下是一个使用GMM聚类算法的Matlab代码示例,其中假设有20个样本和4个分类标签:
```matlab
clear all;
close all;
clc;
% Generate some sample data
rng('default');
X = [randn(10,2); randn(10,2)+5];
Y = [ones(10,1); ones(10,1)*2];
% Use GMM to cluster the data
gm = fitgmdist(X,4);
idx = cluster(gm,X);
% Plot the results
figure;
gscatter(X(:,1),X(:,2),idx);
hold on;
ezpolar(@(x)1);
title 'GMM Clustering';
% Compare with the true labels
figure;
gscatter(X(:,1),X(:,2),Y);
hold on;
ezpolar(@(x)1);
title 'True Labels';
```
其中,第一部分生成了20个样本,包括两个2D高斯分布(每个分布10个样本)。第二部分使用`fitgmdist`函数对数据进行聚类,并使用`cluster`函数将每个样本分配到不同的簇中。第三部分绘制了聚类结果,其中每个簇被标记为不同的颜色。最后,第四部分绘制了真实标签,以便比较聚类结果。
阅读全文