Я пытаюсь использовать функцию toarray()
для преобразования разреженного вектора в плотный и передачи его в дерево KD, но я получаю 'Series'
объект не имеет атрибута 'toarray'
error.Я изо всех сил пытаюсь понять, какой тип объекта здесь.Если я пытаюсь print(vect_train.head())
, я получаю ошибку, что head()
метод не найден.Если vect_train
является серией, то vect_train.head()
должно работать.Если я print type(vect_train)
печатает <class 'scipy.sparse.csr.csr_matrix'>
, но если я применяю toarray()
метод scipy.sparse.csr_matrix
, тогда он выдает ошибку
У объекта 'Series' нет атрибута 'toarray'
Поэтому меня смущает, является ли vect_train
Серией или scipy.sparse.csr_matrix
и как преобразовать ее в плотную матрицу?Пожалуйста, помогите
BoW_vect = CountVectorizer(min_df=10, max_features=500)
vect_train = BoW_vect.fit_transform(X_train)
vect_cv = BoW_vect.transform(X_cv)
vect_test = BoW_vect.transform(X_test)
# #arrays for storing range of K and storing accuracy scores.
k_range= np.arange(1,16,1)
auc_cv=np.zeros(15)
auc_train = np.zeros(15)
# #Simple Cross Validation
count = 0
for i in range (1,30,2):
kd_BOW = KNeighborsClassifier(n_neighbors=i, algorithm = 'kd_tree')
kd_BOW.fit(vect_train.toarray(),Y_train.toarray())
kd_pred = kd_BOW.predict(vect_cv.toarray())
pred_train_BOW = knn.predict(vect_train.toarray())
auc_cv[count] = roc_auc_score(Y_cv,kd_pred)*float(100)
auc_train[count] = roc_auc_score(Y_train,pred_train_BOW)*float(100)
print('\nCV AUC for k=', i)
print('is', auc_cv[count])
count = count +1