Как использовать функцию toarray для дерева KD? - PullRequest
0 голосов
/ 01 марта 2019

Я пытаюсь использовать функцию 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
...