import pandas as pd from sklearn.cluster import KMeans import matplotlib.pyplot as plt # 读取数据 data = pd.read_excel('C:/Users/86178/Desktop/test/test/TF-IDF/SSG hole span版.xlsx') # 提取特征列 feature_columns = ["Bridge length (m)","Pier type","Foundation type","Hole","Span (m)", "Bearing type","Plane linear"] X = data[feature_columns] # 创建KMeans对象 kmeans = KMeans(n_clusters=5) # 进行聚类 labels = kmeans.fit_predict(X) # 获取聚类中心 centroids = kmeans.cluster_centers_ # 绘制散点图 plt.scatter(X["feature1"], X["feature2"], c=labels) plt.scatter(centroids[:, 0], centroids[:, 1], marker='x', color='red', s=100) plt.xlabel('Feature 1') plt.ylabel('Feature 2') plt.title('K-means Clustering') plt.show()
时间: 2024-04-10 11:32:31 浏览: 146
这段代码是使用K-means算法对数据进行聚类,并绘制散点图展示聚类结果。首先,代码使用pandas库读取Excel数据文件,并提取需要用于聚类的特征列。然后,创建了一个KMeans对象,并指定聚类的簇数为5。接下来,使用fit_predict方法对数据进行聚类,得到每个样本的类别标签。然后,获取聚类中心点的坐标,并使用散点图将数据点按照类别标签进行绘制,同时将聚类中心以红色的"x"标记显示出来。最后,添加横纵坐标的标签和标题,并展示绘制的散点图。
请注意,代码中的"feature1"和"feature2"需要替换为实际的特征列名称。
相关问题
import pandas as pd from sklearn.cluster import KMeans import matplotlib.pyplot as plt # 读取数据 data = pd.read_excel('C:/Users/86178/Desktop/test/test/TF-IDF/SSG hole span版.xlsx') # 提取特征列 feature_columns = ["Bridge length (m)","Pier type","Foundation type","Hole","Span (m)", "Bearing type","Plane linear"] X = data[feature_columns] # 创建KMeans对象 kmeans = KMeans(n_clusters=5) # 进行聚类 labels = kmeans.fit_predict(X) # 获取聚类中心 centroids = kmeans.cluster_centers_
很好,你成功地创建了KMeans对象并进行了聚类。现在你可以继续绘制散点图来展示聚类结果。
请继续添加以下代码来完成散点图的绘制:
```python
# 绘制散点图
plt.scatter(X["Bridge length (m)"], X["Span (m)"], c=labels)
plt.scatter(centroids[:, 0], centroids[:, 1], marker='x', color='red', s=100)
plt.xlabel('Bridge length (m)')
plt.ylabel('Span (m)')
plt.title('K-means Clustering')
plt.show()
```
请注意,代码中的"Bridge length (m)"和"Span (m)"需要替换为你实际使用的特征列名称。这段代码将使用"Bridge length (m)"作为横坐标,"Span (m)"作为纵坐标,将数据点按照聚类结果进行着色,并将聚类中心以红色的"x"标记显示出来。最后,添加横纵坐标的标签和标题,并展示绘制的散点图。
import pandas as pd import numpy as np from sklearn.cluster import DBSCAN import matplotlib.pyplot as plt from sklearn.cluster import KMeans
这段代码导入了pandas、numpy、matplotlib.pyplot和sklearn.cluster库,其中sklearn.cluster库中包括了DBSCAN和KMeans聚类算法。pandas和numpy库常用于数据处理和科学计算,matplotlib.pyplot库常用于数据可视化。你可以通过这些库来进行数据分析和聚类操作。
阅读全文