以下是变量的前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
如果我尝试使用各种变量组合但仍然遇到同样的错误,如何摆脱这个错误?
答案 0 :(得分:1)
你不能用k = 0簇运行k-means。
此外,您的数据似乎非常不适合k-means。
在诸如“storeId”和“pinCode”之类的标识符属性上运行k-means是没有意义的。
答案 1 :(得分:0)
基本上我们不能使用k=0
解决方案是:-
for i in range(1,11):
我的意思是在范围(1到11)而不是范围(0,11)中使用k
它将解决您的问题。