clustering 聚类分析

2020-03-06  本文已影响0人  你的仙女本仙


系统聚类分析

参考文献:https://blog.csdn.net/sinat_40431164/article/details/81017568?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task

```

import pandasas pd

from sklearnimport preprocessing

import scipy.cluster.hierarchyas sch

#用于进行层次聚类,画层次聚类图的工具包

from matplotlibimport pyplotas plt

from sklearn.clusterimport KMeans

from prettytableimport PrettyTable

##数据准备

df = pd.read_excel("习题5.8.xlsx")

label =df['地区']

array = df.values[:,1:7]

##数据预处理

def ZscoreNormalization(X):

scaler = preprocessing.StandardScaler().fit(X)

x_norm = scaler.transform(X)

return x_norm

##系统聚类

X_norm =ZscoreNormalization(array)

Z = sch.linkage(X_norm,method='ward', metric='euclidean')

sch.dendrogram(Z)

#绘图1

plt.title('Clustering')

plt.xlabel('area')

plt.ylabel('distance')

plt.show()

```

```

##K—mean 聚类

cluster =4

cls =KMeans(cluster).fit(X_norm)

# print(cls.labels_) #输出分类列表

cls_result,results =[],[]

for iin cls.labels_:

cls_result.append(i)

results =list(zip(label,cls_result))

Results= PrettyTable(["地区", "K-mean分类"])

for iin results:

Results.add_row([i[0],i[1]])

print(Results)

```

+--------+------------+

|  地区  | K-mean分类 |

+--------+------------+

|  北京  |    3      |

|  天津  |    0      |

|  河北  |    1      |

|  山西  |    1      |

| 内蒙古 |    1      |

|  辽宁  |    0      |

|  吉林  |    2      |

| 黑龙江 |    2      |

|  上海  |    3      |

|  江苏  |    0      |

|  浙江  |    0      |

|  安徽  |    2      |

|  福建  |    2      |

|  江西  |    2      |

|  山东  |    0      |

|  河南  |    1      |

+--------+------------+

上一篇 下一篇

猜你喜欢

热点阅读