DBSCAN聚类Python程序及评价轮廓系数
import pandas aspd
beer =pd.read_csv('C:/Users/zhao/Desktop/data.txt', sep=' ') # 导入数据
print(beer)
fromsklearn.cluster import DBSCAN
X =beer[["colories","sodium","alcohol","cost"]]
db =DBSCAN(eps=10, min_samples=2).fit(X) # 设置半径为10,最小样本量为2,建模
labels =db.labels_ # 聚类,将每个实例的簇标签放入labels序列
beer['cluster_db']= labels # 在数据集最后一列加上经过DBSCAN聚类后的结果
beer.sort_values('cluster_db')
print(beer.groupby('cluster_db').mean()) # 查看根据DBSCAN聚类后的分组统计结果(均值)
print(pd.plotting.scatter_matrix(X,c=beer.cluster_db.tolist(), figsize = (10,10), s=100)) # 画出在不同两个指标下样本的分布情况
# 可以从这个图里观察聚类效果的好坏,但是当数据量很大,或者指标很多