Превратить разреженную матрицу в массив для использования в поиске по сетке - PullRequest
0 голосов
/ 20 октября 2019

У меня есть разреженная матрица, созданная после передачи dataframe с документами в каждой строке в TfidfVectorizer, а затем в fit_transform. Сейчас я пытаюсь использовать это в GridSearchCV в качестве оценщика. В частности:

vectorizer = TfidfVectorizer(stop_words = 'english')

vectors = vectorizer.fit_transform(df.news)

Теперь я хочу использовать vectors в качестве оценщика.

clf = OneVsRestClassifier(SVC(kernel='linear', probability=True))
alphas = np.array([1,0.1,0.01,0.001,0.0001,0]) 
grid = grid_search.GridSearchCV(estimator = clf,param_grid = dict(alpha=alphas))

grid.fit(vectors, df.type)

Возвращает ошибку значения следующим образом:

---> 17 grid.fit (векторы, df.type)

ValueError: Неверный параметр alpha для оценщика CalibratedClassifierCV (base_estimator = OneVsRestClassifier (оценщик = SVC (C = 1, cache_size = 200, class_weight = None,coef0 = 0.0,
solution_function_shape = 'ovr', степень = 3, гамма = 'auto_deprecated',
kernel = 'rbf', max_iter = -1, вероятность = False, random_state = нет,
сжатие =True, tol = 0,001, verbose = False), n_jobs = None), cv = 'warn', method = 'sigmoid'). Проверьте список доступных параметров с помощью estimator.get_params().keys().

Чтобы дать вам представление о том, как выглядят эти переменные:

print(vectors)

(0, 52)     0.026904364115790672
(0, 106)    0.026904364115790672
(0, 135)    0.13452182057895337
(0, 161)    0.026904364115790672
(0, 180)    0.03800386016882953
(0, 241)    0.028098990259356804

 df.type

0       alt.science
1       alt.science
2       alt.science
3       alt.science
4       alt.science

В чем может быть проблема и как ее решить

...