【问题标题】:scikit-learn kmeans clustering overflow errorscikit-learn kmeans 聚类溢出错误
【发布时间】:2019-11-29 16:35:55
【问题描述】:

查找KMeans弯头时,显示溢出错误


elbow=[]

for i in range(30):

    model = KMeans(n_clusters=i)
    model.fit(feature_matrix)
    elbow.append(abs(model.score(feature_matrix)))
/opt/conda/lib/python3.6/site-packages/sklearn/cluster/k_means_.py:90: RuntimeWarning: divide by zero encountered in log
  n_local_trials = 2 + int(np.log(n_clusters))

它给出了overflow 错误

【问题讨论】:

    标签: scikit-learn unsupervised-learning


    【解决方案1】:

    这可能是因为您从多个集群开始i=0。 使用range函数,你从0开始。

    Kmeans(nclusters=0) 会失败,因为它会尝试计算log(0)

    如果您希望要测试的集群数量在 1 到 30(包括在内)之间变化,您可以通过 Kmeans(n_cluster=i+1) 更改它。

    【讨论】:

    • 谢谢。我也遇到了同样的问题。
    猜你喜欢
    • 2015-02-20
    • 2015-11-20
    • 2016-11-16
    • 2019-11-12
    • 2015-09-28
    • 2016-06-28
    • 2020-02-13
    • 2014-05-11
    • 2012-06-30
    相关资源
    最近更新 更多