#進行SpectralClustering
#查看默認的譜聚類效果
y_pred = SpectralClustering().fit_predict(cluster_data)
print("Calinski-Harabasz Score", metrics.calinski_harabaz_score(cluster_data, y_pred))
#默認使用的是高斯核,需要對n_cluster和gamma進行調參,選擇合適的參數
for index, gamma in enumerate((0.01, 0.1, 1, 10)):
for index, k in enumerate((3, 4, 5, 6, 7, 8)):
y_pred = SpectralClustering(n_clusters=k, gamma=gamma).fit_predict(cluster_data)
print("Calinski-Harabasz Score with gamma=", gamma, "n_clusters=", k, "score:", metrics.calinski_harabaz_score(cluster_data, y_pred))
#用測試出的參數進行最終聚類得到類別信息
y_pred = SpectralClustering(gamma=0.1, n_clusters=5).fit_predict(cluster_data)
result_data = cluster_data.join(DataFrame(y_pred, columns=['cluster']))
result_data.to_excel('D:/test_data/result_6.17.xlsx', index=False)