【发布时间】:2025-12-29 12:35:05
【问题描述】:
我是 Python 新手。我正在尝试使用 sklearn.cluster。 这是我的代码:
from sklearn.cluster import MiniBatchKMeans
kmeans=MiniBatchKMeans(n_clusters=2)
kmeans.fit(df)
但我收到以下错误:
50 and not np.isfinite(X).all()):
51 raise ValueError("Input contains NaN, infinity"
---> 52 " or a value too large for %r." % X.dtype)
ValueError: Input contains NaN, infinity or a value too large for dtype('float64')
我检查了没有 Nan 或 infinity 值。所以只剩下一个选项了。但是,我的数据信息告诉我所有变量都是float64,所以我不明白问题出在哪里。
df.info()
<class 'pandas.core.frame.DataFrame'>
Int64Index: 362358 entries, 135 to 4747145
Data columns (total 8 columns):
User 362358 non-null float64
Hour 362352 non-null float64
Minute 362352 non-null float64
Day 362352 non-null float64
Month 362352 non-null float64
Year 362352 non-null float64
Latitude 362352 non-null float64
Longitude 362352 non-null float64
dtypes: float64(8)
memory usage: 24.9 MB
非常感谢,
【问题讨论】:
-
I checked that the there is no Nan or infinity value.请告诉我们你是怎么做到的。 -
对数据进行排序并检查顶部/底部值。
-
我认为
df是熊猫数据框?如果是这样,请尝试kmeans.fit(df.as_matrix())。 Scikit-learn 没有 DataFrame 的概念,只有 numpy 数组。
标签: python pandas machine-learning scikit-learn k-means