KMeans - OverflowError:无法将float无穷大转换为整数

时间:2017-10-30 14:11:55

标签: python cluster-analysis k-means

以下是变量的前5行,我用于KMeans找到最佳的簇数 -

store_code  PinCode sale_price_after_promo
0   2655    453441.0    55.00
1   2655    999999.0    30.00
2   2655    400064.0    418.95
3   2615    400099.0    70.00
4   2655    474001.0    34.20

这是我得到的错误 -

OverflowError                             Traceback (most recent call last)
<ipython-input-62-3802a2b79f71> in <module>()
      2 for i in range(0,11):
      3     kmeans=KMeans(n_clusters=i, init='k-means++', random_state=42)
----> 4     kmeans.fit(X)
      5     wcss.append(kmeans.inertia_)
      6 plt.plot(range(1, 11), wcss)

OverflowError: cannot convert float infinity to integer

如果我尝试使用各种变量组合但仍然遇到同样的错误,如何摆脱这个错误?

2 个答案:

答案 0 :(得分:1)

你不能用k = 0簇运行k-means。

此外,您的数据似乎非常不适合k-means。

在诸如“storeId”和“pinCode”之类的标识符属性上运行k-means是没有意义的。

答案 1 :(得分:0)

基本上我们不能使用k=0

运行KMean集群

解决方案是:-

for i in range(1,11):

我的意思是在范围(1到11)而不是范围(0,11)中使用k

它将解决您的问题。