1.随机生成样本数据,X = [randn(100,2)*0.75+ones(100,2); randn(100,2)*0.5-ones(100,2)]; 绘制数据并且用Kmeans将其分为两类,并绘制出结果。

84浏览 · 2023-12-17 15:03:22
好的,我来解答这个问题。首先,你给出的是 MATLAB [代码](https://geek.csdn.net/educolumn/1572ef9b473b4e00f6b2bf6d428b7c27?spm=1055.2569.3001.10083),我会按照 MATLAB 的语法来回答。 ```matlab % 生成数据 X = [randn(100,2)*0.75+ones(100,2); randn(100,2)*0.5-ones(100,2)]; % 绘制数据 figure; scatter(X(:,1), X(:,2)); title('样本数据'); % 使用 Kmeans 将其分为两类 [idx, C] = kmeans(X, 2); % 绘制结果 figure; scatter(X(idx==1,1), X(idx==1,2)); hold on; scatter(X(idx==2,1), X(idx==2,2)); scatter(C(:,1), C(:,2), 'x', 'LineWidth', 3, 'MarkerEdgeColor', 'r'); title('Kmeans 分类结果'); legend('第一类', '第二类', '聚类[中心](https://geek.csdn.net/educolumn/25c0213845468cc350845cfcac056868?spm=1055.2569.3001.10083)'); 以上[代码](https://geek.csdn.net/educolumn/1572ef9b473b4e00f6b2bf6d428b7c27?spm=1055.2569.3001.10083)的解释如下: - 第一行生成样本数据,其中前 100 个数据点为高斯分布,均值为 (1,1),标准差为 0.75,后 100 个数据点为高斯分布,均值为 (-1,-1),标准差为 0.5。 - 第四行绘制样本数据的散点图。 - 第七行使用 Kmeans 将样本数据分为两类,其中 idx 是每个数据点所属的类别,C 是聚类[中心](https://geek.csdn.net/educolumn/25c0213845468cc350845cfcac056868?spm=1055.2569.3001.10083)。 - 第十行绘制 Kmeans 分类结果的散点图,其中每个类别用不同的颜色表示,聚类[中心](https://geek.csdn.net/educolumn/25c0213845468cc350845cfcac056868?spm=1055.2569.3001.10083)用红色叉号表示。
相关问题
好的,让我来帮您回答这个问题。 首先,您可以使用以下代码生成数据并绘制出来: ```python import numpy as np import matplotlib.pyplot as plt from sklearn.cluster import KMeans # 生成数据 X = np.vstack((np.random.randn(100, 2) * 0.75 + np.ones((100, 2)), np.random.randn(100, 2) * 0.5 - np.ones((100, 2)))) # 绘制数据 plt.scatter(X[:, 0], X[:, 1], s=50) plt.show()