Scikit learn scikit learn表示num样本必须大于num集群
使用sklearn.cluster.KMeans。这段代码在早期几乎完全有效,但我所改变的只是构建数据集的方式。我只是不知道从哪里开始。。。代码如下:Scikit learn scikit learn表示num样本必须大于num集群,scikit-learn,Scikit Learn,使用sklearn.cluster.KMeans。这段代码在早期几乎完全有效,但我所改变的只是构建数据集的方式。我只是不知道从哪里开始。。。代码如下: from sklearn.cluster import KMeans km = KMeans(n_clusters=20) for item in dfX: if type(item) != type(dfX[0]): print(item) print(len(dfX)) print(dfX[:10]) km.fit(d
from sklearn.cluster import KMeans
km = KMeans(n_clusters=20)
for item in dfX:
if type(item) != type(dfX[0]):
print(item)
print(len(dfX))
print(dfX[:10])
km.fit(dfX)
print(km.cluster_centers_)
其输出如下:
12147
[1.201, 1.237, 1.092, 1.074, 0.979, 0.885, 1.018, 1.083, 1.067, 1.071]
/home/sbendl/anaconda3/lib/python3.5/site-packages/sklearn/utils/validation.py:386: DeprecationWarning: Passing 1d arrays as data is deprecated in 0.17 and willraise ValueError in 0.19. Reshape your data either using X.reshape(-1, 1) if your data has a single feature or X.reshape(1, -1) if it contains a single sample.
DeprecationWarning)
Traceback (most recent call last):
File "/home/sbendl/PycharmProjects/MLFP/K-means.py", line 20, in <module>
km.fit(dfX)
File "/home/sbendl/anaconda3/lib/python3.5/site-packages/sklearn/cluster/k_means_.py", line 812, in fit
X = self._check_fit_data(X)
File "/home/sbendl/anaconda3/lib/python3.5/site-packages/sklearn/cluster/k_means_.py", line 789, in _check_fit_data
X.shape[0], self.n_clusters))
ValueError: n_samples=1 should be >= n_clusters=20
Process finished with exit code 1
12147
[1.201, 1.237, 1.092, 1.074, 0.979, 0.885, 1.018, 1.083, 1.067, 1.071]
/home/sbendl/anaconda3/lib/python3.5/site packages/sklearn/utils/validation.py:386:DeprecationWarning:在0.17中不推荐将1d数组作为数据传递,在0.19中会引发ValueError。如果数据具有单个特征,请使用X.restrape(-1,1),如果数据包含单个样本,请使用X.restrape(1,-1)重塑数据。
弃用警告)
回溯(最近一次呼叫最后一次):
文件“/home/sbendl/PycharmProjects/MLFP/K-means.py”,第20行,在
公里拟合(dfX)
文件“/home/sbendl/anaconda3/lib/python3.5/site packages/sklearn/cluster/k_-means_uu.py”,第812行
X=自检查拟合数据(X)
文件“/home/sbendl/anaconda3/lib/python3.5/site packages/sklearn/cluster/k_means_uu.py”,第789行,在“检查”数据中
X.shape[0],self.n_簇)
ValueError:n_samples=1应大于等于n_clusters=20
进程已完成,退出代码为1
正如您从输出中看到的,肯定有12147个样本,在大多数计数系统中大于20;)。此外,它们都是浮动的,所以这不会有问题。有人有什么想法吗?摆脱循环打印,使用numpy进行分析(而不是x循环和len)。打印出dfX的形状,你会看到它可能是(12147),根据sklearn,这是DIM12147的一个样本。^是的。就是这样,我想知道为什么我在摆脱循环打印并使用numpy分析(而不是x循环和len)之前就这样做了。打印出dfX的形状,你会看到它可能是(12147),根据sklearn,这是DIM12147的一个样本。^是的。就是这样,我想知道为什么在xD之前我会这样做