赞
踩
- import pandas as pd
- data = pd.read_excel('演示数据.xlsx')
- data.head()
- import matplotlib.pyplot as plt
- plt.scatter(data.iloc[:, 0], data.iloc[:, 1], c="green", marker='*') # 以绿色星星样式绘制散点图
- plt.xlabel('x') # 添加x轴名称
- plt.ylabel('y') # 添加y轴名称
- plt.show()
- from sklearn.cluster import DBSCAN
- dbs = DBSCAN()
- dbs.fit(data)
- label_dbs = dbs.labels_
print(label_dbs)
- plt.scatter(data[label_dbs == 0].iloc[:, 0], data[label_dbs == 0].iloc[:, 1], c="red", marker='o', label='class0') # 以红色圆圈样式绘制散点图并加上标签
- plt.scatter(data[label_dbs == 1].iloc[:, 0], data[label_dbs == 1].iloc[:, 1], c="green", marker='*', label='class1') # 以绿色星星样式绘制散点图并加上标签
- plt.xlabel('x') # 添加x轴名称
- plt.ylabel('y') # 添加y轴名称
- plt.legend() # 设置图例
- from sklearn.cluster import KMeans
- KMs = KMeans(n_clusters=2)
- KMs.fit(data)
- label_kms = KMs.labels_
- plt.scatter(data[label_kms == 0].iloc[:, 0], data[label_kms == 0].iloc[:, 1], c="red", marker='o', label='class0') # 以红色圆圈样式绘制散点图并加上标签
- plt.scatter(data[label_kms == 1].iloc[:, 0], data[label_kms == 1].iloc[:, 1], c="green", marker='*', label='class1') # 以绿色星星样式绘制散点图并加上标签
- plt.xlabel('x') # 添加x轴名称
- plt.ylabel('y') # 添加y轴名称
- plt.legend() # 设置图例
可以看到,对于形状类似同心圆的数据,KMeans算法聚类效果较差,只能机械地将数据分为左右两部分,而无法以外圆内圆的方式进行区分。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。