Ошибка KNeighborsClassifier: неизвестный тип метки: ‘неизвестный’

#python #scikit-learn #knn

#python #scikit-learn #knn

Вопрос:

Я пытаюсь выполнить KNN, используя KNeighborsClassifier со следующим кодом —

 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:userskishoreappdatalocalprogramspythonpython36libsite-packagessklearnneighborsbase.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:userskishoreappdatalocalprogramspythonpython36libsite-packagessklearnutilsmulticlass.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 — массив([0, 1, 0, …, 1, 1, 1], dtype=объект)

Мой X — это <5600×6031 разреженная матрица типа » с 586188 сохраненными элементами в сжатом формате разреженной строки>

Комментарии:

1. Не могли бы вы дать представление о ваших X и y

Ответ №1:

Итак, проблема в том, что ваш y имеет тип object, и sklearn не может это распознать.

Вы можете использовать y=y.astype('int') перед передачей переменной в классификатор