У меня проблема классификации документов только с двумя классами и размером матрицы набора учебных материалов после того, как CountVectorizer/TfidfVectorizer становится (40,845 X 218,904) (unigram). Я хотел бы использовать TruncatedSVD; однако, CountVectorizer/TfidfVectorizer, похоже, создает отрицательные значения. Я хотел бы знать, почему и как можно избежать отрицательных значений.Как избежать отрицательных значений при использовании TruncatedSVD?
tsvd = TruncatedSVD(10000, algorithm="randomized")
features = [
dict(name="count_ng1",
feat=CountVectorizer(tokenizer=tokenizer, ngram_range=(1,1))),
dict(name="tfidf_ng1",
feat=TfidfVectorizer(tokenizer=tokenizer, ngram_range=(1,1))),
]
for data in datas:
(D_train, y_train, d_test, y_test) = g.get_train_test(**data['params'])
for feat in features:
x_train = feat['feat'].fit_transform(d_train)
x_test = feat['feat'].transform(d_test)
X_trainSVD = tsvd.fit_transform(x_train)
X_testSVD = tsvd.transform(x_test)
Вы должны указать код – lejlot
Я добавил код. Просто использование необходимых функций из пакета sklearn – user2179347
не похоже на действительный отступ python, чтобы задать хороший вопрос (и поэтому - получить ценные ответы), вы должны подготовить короткий, воспроизводимый пример – lejlot