【发布时间】:2023-03-29 12:42:01
【问题描述】:
我正在尝试处理一个包含 71,000 行 200 列浮点数的 numpy 数组,当我超过 5853 行时,我尝试的两个 sci-kit 学习模型都会给出不同的错误。我尝试删除有问题的行,但它仍然失败。 sci-kit learn 不能处理这么多数据,还是别的什么? X 是列表列表的 numpy 数组。
KNN:
nbrs = NearestNeighbors(n_neighbors=2, algorithm='ball_tree').fit(X)
错误:
File "knn.py", line 48, in <module>
nbrs = NearestNeighbors(n_neighbors=2, algorithm='ball_tree').fit(X)
File "/usr/local/lib/python2.7/dist-packages/sklearn/neighbors/base.py", line 642, in fit
return self._fit(X)
File "/usr/local/lib/python2.7/dist-packages/sklearn/neighbors/base.py", line 180, in _fit
raise ValueError("data type not understood")
ValueError: 数据类型不理解
K 均值:
kmeans_model = KMeans(n_clusters=2, random_state=1).fit(X)
错误:
Traceback (most recent call last):
File "knn.py", line 48, in <module>
kmeans_model = KMeans(n_clusters=2, random_state=1).fit(X)
File "/usr/local/lib/python2.7/dist-packages/sklearn/cluster/k_means_.py", line 702, in fit
X = self._check_fit_data(X)
File "/usr/local/lib/python2.7/dist-packages/sklearn/cluster/k_means_.py", line 668, in _check_fit_data
X = atleast2d_or_csr(X, dtype=np.float64)
File "/usr/local/lib/python2.7/dist-packages/sklearn/utils/validation.py", line 134, in atleast2d_or_csr
"tocsr", force_all_finite)
File "/usr/local/lib/python2.7/dist-packages/sklearn/utils/validation.py", line 111, in _atleast2d_or_sparse
force_all_finite=force_all_finite)
File "/usr/local/lib/python2.7/dist-packages/sklearn/utils/validation.py", line 91, in array2d
X_2d = np.asarray(np.atleast_2d(X), dtype=dtype, order=order)
File "/usr/local/lib/python2.7/dist-packages/numpy/core/numeric.py", line 235, in asarray
return array(a, dtype, copy=False, order=order)
ValueError: setting an array element with a sequence.
【问题讨论】:
-
使用熊猫。它将错误的类型转换为可用的东西,或者忽略它。
-
“X 是列表列表的 numpy 数组”。这听起来不太对劲。你能发一小段
X吗? -
我已经通过 Numpy 代码更仔细地追踪了您的回溯,二维数组或一维数组列表应该没有任何问题。
X到底是什么?
标签: python numpy cluster-analysis scikit-learn