一、前言
在MATLAB中,实现不同类型的聚类(如K-means聚类、层次聚类、模糊聚类)和分类(如神经网络分类)需要用到不同的函数和工具箱。下面我将为每种方法提供一个基本的示例代码。
二、实现
1. K-means聚类
% 假设X是数据矩阵,每行是一个样本,每列是一个特征
X = [randn(100,2)*0.75+ones(100,2);
randn(100,2)*0.5-ones(100,2)];
% 指定聚类中心的数量
k = 2;
% 执行K-means聚类
[idx, C] = kmeans(X, k);
% 绘制结果
figure;
gscatter(X(:,1), X(:,2), idx, 'rb', 'xo');
hold on;
plot(C(:,1), C(:,2), 'kx', 'MarkerSize', 15, 'LineWidth', 3);
title('K-means Clustering Results');
legend('Cluster 1', 'Cluster 2', 'Centroids', 'Location', 'best');
2. 层次聚类(使用linkage
和dendrogram
)
% 使用相同的X数据
Z = linkage(X, 'ward'); % 使用Ward方法
% 绘制树状图