python - KNeighborsClassifier 错误:未知标签类型:“未知”
问题描述
我正在尝试使用 KNeighborsClassifier 和以下代码来做 KNN -
X_train, X_test, y_train, y_test = train_test_split(X_bow, y, test_size=0.30, random_state=42)
neigh = KNeighborsClassifier(n_neighbors=3)
neigh.fit(X_train, y_train)
但我收到以下错误
ValueError: Unknown label type: 'unknown'
X_train 是 scipy.sparse.csr.csr_matrix 类型,y_train 是 numpy.ndarray 类型。
这是我得到的详细错误。为什么我会收到此错误?
ValueError Traceback (most recent call last)
<ipython-input-278-97b47c930597> in <module>
10
11 neigh = KNeighborsClassifier(n_neighbors=3)
---> 12 neigh.fit(X_train, y_train)
c:\users\kishore\appdata\local\programs\python\python36\lib\site-packages\sklearn\neighbors\base.py in fit(self, X, y)
903 self.outputs_2d_ = True
904
--> 905 check_classification_targets(y)
906 self.classes_ = []
907 self._y = np.empty(y.shape, dtype=np.int)
c:\users\kishore\appdata\local\programs\python\python36\lib\site-packages\sklearn\utils\multiclass.py in check_classification_targets(y)
169 if y_type not in ['binary', 'multiclass', 'multiclass-multioutput',
170 'multilabel-indicator', 'multilabel-sequences']:
--> 171 raise ValueError("Unknown label type: %r" % y_type)
172
173
ValueError: Unknown label type: 'unknown'
编辑1:
我的 Y 是 - array([0, 1, 0, ..., 1, 1, 1], dtype=object)
我的 X 是 <5600x6031 类型为 '' 的稀疏矩阵,以压缩稀疏行格式存储了 586188 个元素>
解决方案
因此,问题在于您的 y 是 object 类型,而 sklearn 无法识别。
您可以y=y.astype('int')
在将变量传递给分类器之前使用
推荐阅读
- excel - poi-objectmapper 是否将 excel 工作表映射到嵌套对象?如果是这样,应该怎么做?
- php - 使用 jquery 和 php 访问部分 URL 的问题
- javascript - 如何将变量绑定到图像源字符串?
- mysql - 如何替换 TIMESTAMPDIFF 给我“最终”日期并替换
- python - 如何在没有过多嵌套循环的情况下解决“德州扑克”?
- apollo - 有没有办法从突变更新函数中获取变量?
- jquery - 我无法从单个表单字段中获取输入数组
- javascript - 如何将javascript代码中的变量打印到html正文中?
- aws-sdk - Amazon Athena - 使用 Java SDK 将列名称映射到值
- r - 采购时 RStudio 中的环境