Передал плотный массив NumPy, но получил ошибку TypeError: была передана разреженная матрица, но требуются плотные данные - PullRequest
0 голосов
/ 09 октября 2019

Я дважды проверил self.xTrainTest и self.yTrainTest, оба являются плотными массивами с одним и тем же числом строк.

Если я изменяю require_dense на [False, False], модель возвращает еще одну ошибку, говорянесоответствие между формой self.xTrainTest и self.yTrainTest [317,1]. Похоже, что в модель передается только один ряд self.yTrainTest.

print (type(self.xTrainTest),type(self.yTrainTest))
print (self.xTrainTest.shape,self.yTrainTest.shape)

parameters = {'classifier': [SVC(probability=True)],
              'classifier__kernel': ['linear', 'poly', 'rbf'],
              'classifier__C': [0.1,1,10],
              'classifier__gamma': ['auto'],
              'classifier__degree': [1, 5,10,20]}

Random0 = RandomizedSearchCV(BinaryRelevance(require_dense=[False, True]), parameters, scoring='roc_auc', cv=5)
Random0.fit(self.xTrainTest,self.yTrainTest)


<class 'numpy.ndarray'> <class 'numpy.ndarray'>
(397, 74706), (397, 9)
  raise TypeError('A sparse matrix was passed, but dense '
TypeError: A sparse matrix was passed, but dense data is required. Use X.toarray() to convert to a dense numpy array.
...