import matplotlib.pyplot as plt import xlutils import openpyxl import numpy as np import xlrd from sklearn.cluster import KMeans from sklearn import datasets wk = openpyxl.load_workbook("D:\localDirection\细分表格\X(28465-28775)\\531.xlsx") ws = wk.active data= xlrd.open_workbook('D:\localDirection\细分表格\X(28465-28775)\\531.xls') worksheet = data.sheet_by_name("Sheet1") X = data[:, :2] # #表示我们取特征空间中的4个维度 print(X.shape) # 绘制数据分布图 plt.scatter(X[:, 0], X[:, 1], c="red", marker='o', label='see') plt.xlabel('sepal length') plt.ylabel('sepal width') plt.legend(loc=2) plt.show() estimator = KMeans(n_clusters=3) # 构造聚类器 estimator.fit(X) # 聚类 label_pred = estimator.labels_ # 获取聚类标签 # 绘制k-means结果 x0 = X[label_pred == 0] x1 = X[label_pred == 1] x2 = X[label_pred == 2] plt.scatter(x0[:, 0], x0[:, 1], c="red", marker='o', label='label0') plt.scatter(x1[:, 0], x1[:, 1], c="green", marker='*', label='label1') plt.scatter(x2[:, 0], x2[:, 1], c="blue", marker='+', label='label2') plt.xlabel('sepal length') plt.ylabel('sepal width') plt.legend(loc=2) plt.show()
时间: 2024-04-28 09:22:24 浏览: 84
import numpy as np import matplotlib.pyplot as plt import math
这段代码是用于读取并处理 Excel 文件数据,并使用 KMeans 聚类算法对数据进行分析和可视化。具体来说:
- 第1行导入了 matplotlib.pyplot、xlutils、openpyxl、numpy、xlrd 等库
- 第2至9行分别打开 Excel 文件并读取数据,其中第6行使用了 xlrd 库的 sheet_by_name 函数获取工作表“Sheet1”中的数据
- 第10行使用 [:, :2] 将数据集中的前两列数据存储在 X 变量中(注意:应该使用 np.array(data) 将数据转换为 numpy 数组后再进行索引)
- 第12至19行使用 matplotlib 库的 scatter 函数将数据集 X 中的前两列特征数据作为横纵坐标,以散点图的形式展示在坐标系中
- 第21至23行使用 KMeans 算法构造聚类器,并使用 fit 函数对数据进行聚类
- 第25行使用 labels_ 属性获取聚类标签
- 第27至35行使用 matplotlib 库的 scatter 函数将聚类结果以不同颜色的散点图展示在坐标系中,其中 label0、label1、label2 分别表示聚类结果的三个簇(注意:应该使用 np.array(X)[label_pred == 0] 将标签应用到数据集中,获取聚类结果的每个簇的数据)
阅读全文