createDataSet = pd.read_excel(r"D:\1.xlsx") createDataSet.head() X = createDataSet[["CODE","FOR_INTEN","YEAR","FUNCTION","SITE","FOUNDATION","MAJ_STOREY"]] y = createDataSet[['DAM_CLASS']] if __name__=='__main__': dataset = createDataSet() centroids, cluster = kmeans(dataset, 2) print('质心为:%s' % centroids) print('集群为:%s' % cluster) for i in range(len(dataset)): plt.scatter(dataset[i][0],dataset[i][1], marker = 'o',color = 'green', s = 40 ,label = '原始点') # 记号形状 颜色 点的大小 设置标签 for j in range(len(centroids)): plt.scatter(centroids[j][0],centroids[j][1],marker='x',color='red',s=50,label='质心') plt.show()
时间: 2024-04-10 12:30:37 浏览: 86
这段代码看起来是进行k-means聚类算法的操作。首先,通过`pd.read_excel()`函数读取了一个Excel文件,并使用`head()`函数查看前几行数据。
接下来,根据代码中的特征列和目标列的名字,将对应的数据分别赋值给变量X和y。
然后,在`if __name__=='__main__':`的条件下,创建了一个`dataset`变量,但是它没有被定义。我推测你可能是想使用之前读取的Excel数据集`createDataSet`,所以将它赋值给了`dataset`变量。
接下来,调用了一个名为`kmeans()`的函数,传入了数据集和聚类数目2。这个函数应该是使用k-means算法实现的,但是在提供的代码中找不到对应的函数实现。
然后,通过循环遍历数据集和质心,并使用`plt.scatter()`函数将原始点和质心进行可视化展示。
最后,调用`plt.show()`函数显示图像。
请注意,这段代码中有一些问题需要解决:
1. 缺少`kmeans()`函数的实现,需要定义一个k-means聚类算法的函数。
2. 在循环中使用`plt.scatter()`函数时,变量`dataset`可能需要改为`createDataSet`。
3. 缺少对数据进行标准化或归一化的步骤,这在使用k-means算法之前是常见的预处理步骤。
希望以上信息对你有所帮助。如果有任何问题,请随时提问。
相关问题
根据 import numpy as np import operator from os import listdir def classify0(inX, da数据点(8,7)、(10,2)的标签类别taSet, labels, k): dataSetSize = dataSet.shape[0] diffMat = np.tile(inX, (dataSetSize, 1)) - dataSet sqDiffMat = diffMat ** 2 sqDistances = sqDiffMat.sum(axis=1) distances = sqDistances ** 0.5 sortedDistIndicies = distances.argsort() classCount = {} for i in range(k): voteIlabel = labels[sortedDistIndicies[i]] classCount[voteIlabel] = classCount.get(voteIlabel, 0) + 1 sortedClassCount = sorted(classCount.items(), key=operator.itemgetter(1), reverse=True) return sortedClassCount[0][0] def createDataSet(): group = np.array([[1.0, 5.0], [2.0, 2.0], [3.0, 1.0], [4.0, 6.0], [6.0, 8.0], [6.0, 5.0], [7.0, 9.0], [9.0, 8.0]]) labels = ['A', 'A', 'B', 'B', 'A', 'B', 'A', 'B'] return group, labels def loadDataSet(fileName): # general function to parse tab -delimited floats dataMat = [] datalabel = [] # assume last column is target value fr = open(fileName) for line in fr.readlines(): curLine = line.strip().split('\t') fltLine = list(map(float, curLine[0:2])) # map all elements to float() fltLine1 = list(map(int, curLine[2])) dataMat.append(fltLine) datalabel.append(fltLine1) return dataMat, datalabel group,labels=createDataSet() 求
这段代码实现的是 k-近邻算法的分类器。其中 createDataSet() 函数用于生成一个示例数据集,loadDataSet() 函数用于从文件中读取数据集。classify0() 函数是 k-近邻分类器的实现,它接受一个测试数据点 inX 和一个数据集 dataSet,以及对应的标签类别 labels 和 k 值,返回测试数据点的类别。具体实现过程是:首先计算测试数据点与数据集中所有点的距离,然后选取距离最近的 k 个点,统计它们的类别出现次数,最后返回出现次数最多的类别作为测试数据点的预测类别。
import numpy as np import operator from os import listdir def classify0(inX, dataSet, labels, k): dataSetSize = dataSet.shape[0] diffMat = np.tile(inX, (dataSetSize, 1)) - dataSet sqDiffMat = diffMat**2 sqDistances = sqDiffMat.sum(axis=1) distances = sqDistances**0.5 sortedDistIndicies = distances.argsort() classCount = {} for i in range(k): voteIlabel = labels[sortedDistIndicies[i]] classCount[voteIlabel] = classCount.get(voteIlabel, 0) + 1 sortedClassCount = sorted(classCount.items(), key=operator.itemgetter(1), reverse=True) return sortedClassCount[0][0] def createDataSet(): group = np.array([[1.0, 5.0], [2.0, 2.0], [3.0, 1.0], [4.0, 6.0],[6.0, 8.0], [6.0, 5.0], [7.0, 9.0],[9.0,8.0]]) labels = ['A', 'A', 'B', 'B','A', 'B', 'A', 'B'] return group, labels def loadDataSet(fileName): #general function to parse tab -delimited floats dataMat = [] datalabel = [] #assume last column is target value fr = open(fileName) for line in fr.readlines(): curLine = line.strip().split('\t') fltLine = list(map(float,curLine[0:2])) #map all elements to float() fltLine1 = list(map(int,curLine[2])) dataMat.append(fltLine) datalabel.append(fltLine1) return dataMat,datalabel
这段代码是一个 KNN 分类器的实现,用于对数据进行分类。其中,classify0 函数是 KNN 算法的实现,它接受输入向量 inX、训练集 dataSet、训练集标签 labels 和超参数 k,返回 inX 的预测类别。createDataSet 函数和 loadDataSet 函数是数据集的生成和读取函数,分别用于生成一个示例数据集和从文件中读取数据集。
阅读全文