可以发现,从20开始就飘红了,追溯代码,可能是聚类中心点个数设置太大了,n_features达到20时error已经等于0,后面的也就无需设置太多中心点。
原始代码:
def k_determin():'''测试选择最优参数'''dataset = df['论文摘要']print("%d documents" % len(dataset))X, vectorizer = transform(dataset, n_features=50)true_ks = []scores = []#中心点的个数最大选择自己的数据量,我这里本来是34条数据for i in range(3, 34, 1):score = train(X, vectorizer, true_k=i) / len(dataset)print(i, score)true_ks.append(i)scores.append(score)plt.figure(figsize=(8, 4))plt.plot(true_ks, scores, label="Error", color="blue", linewidth=1)plt.xlabel("n_features")plt.ylabel("Error")plt.legend()plt.show()
k_determin()
修改代码:
for i in range(3, 20, 1):score = train(X, vectorizer, true_k=i) / len(dataset)print(i, score)true_ks.append(i)scores.append(score)
运行不会出现“ConvergenceWarning: Number of distinct clusters (19) found smaller than n_clusters (20).”红色字样
本文发布于:2024-02-01 11:13:20,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170675720136206.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |