【发布时间】:2021-12-02 22:51:39
【问题描述】:
我想使用 BIC 标准来找到 GMM 聚类的最佳聚类数。我绘制了集群编号 2 到 41 的 BIC 分数,并获得了附加曲线。我不知道如何解释,有人可以帮忙吗?
作为参考,这是我用来做 GMM 聚类的代码。它应用于一个地区的每日风矢量数据,总计约 5,500 列和 13,880 行。
def gmm_clusters(df_std, dates):
ks = range(2, 44, 3)
bic_scores = []
csv_files = []
for k in ks:
model = GaussianMixture(n_components=k,
n_init=1,
init_params='random',
covariance_type='full',
verbose=0,
random_state=123)
fitted_model = model.fit(df_std)
bic_score = fitted_model.bic(df_std)
bic_scores.append(bic_score)
labels = fitted_model.predict(df_std)
print("Labels counts")
print(np.bincount(labels))
df_label = pandas.DataFrame(df_std)
print("############ dataframe AFTER CLUSTERING ###############")
df_dates = pandas.DataFrame(dates)
df_dates.columns = ['Date']
df_dates = df_dates.reset_index(drop=True)
df_label = df_label.join(df_dates)
df_label["Cluster"] = labels
print(df_label)
csv_file = "{0}_GMM_2_Countries_850hPa.csv".format(k)
df_label.to_csv(csv_file)
csv_files.append(csv_file)
return ks, bic_scores, csv_files
谢谢!!
编辑: 在相同数据上使用 K-means,我得到了这个肘部图(SSE 图): 这很容易解释,表明 11 个集群是最佳的。
【问题讨论】:
标签: python scikit-learn cluster-analysis gmm