Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python KMeans-OverflowerError:无法将浮点无穷大转换为整数_Python_Cluster Analysis_K Means - Fatal编程技术网

Python KMeans-OverflowerError:无法将浮点无穷大转换为整数

Python KMeans-OverflowerError:无法将浮点无穷大转换为整数,python,cluster-analysis,k-means,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

下面是变量的前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,11)内的i:
3 kmeans=kmeans(n_clusters=i,init='k-means++',random_state=42)
---->4公里平均值。配合(X)
5 wcss.append(kmeans.惰性)
6 plt.绘图(范围(1,11),wcss)
溢出错误:无法将浮点无穷大转换为整数

如何消除此错误?即使我尝试使用各种变量组合,但仍然会出现相同的错误?

您无法使用k=0群集运行k-means

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


在标识符属性(如“storeId”和“pinCode”)上运行k-means是毫无意义的。

您不能在k=0集群上运行k-means

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


对标识符属性(如“storeId”和“pinCode”)运行k-means是毫无意义的。

基本上,我们不能用
k=0运行KMean集群

解决办法是:-

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


它将解决您的问题。

基本上,我们无法使用
k=0运行KMean集群

解决办法是:-

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


这将解决您的问题。

问题很可能是您将群集数设置为0。可能与@DimKoim重复,但我已定义了从0到10的范围。那么如何纠正这个错误呢?这样做:对于范围(1,11)内的i。让我知道。@DimKoim谢谢。将范围从1改为11,结果很好!那就投票表决我的答案吧!最可能的问题是,您正在将集群的数量设置为0。可能与@DimKoim重复,但我已定义了从0到10的范围。那么如何纠正这个错误呢?这样做:对于范围(1,11)内的i。让我知道。@DimKoim谢谢。将范围从1改为11,结果很好!那就投票表决我的答案吧!