【发布时间】:2013-12-27 15:24:19
【问题描述】:
在 CountVectorizer/TfidfVectorizer 变为 (40,845 X 218,904) (unigram) 之后,我遇到了一个只有 2 个类和我的训练数据集矩阵大小的文档分类问题。我想使用 TruncatedSVD;但是,CountVectorizer/TfidfVectorizer 似乎会产生负值。我想知道为什么以及如何避免负值。
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)
【问题讨论】:
-
你应该包含一些代码
-
我添加了一些代码。只是使用了 sklearn 包中的必要功能
-
它看起来不像是一个有效的 python 缩进,为了提出一个好问题(因此 - 获得有价值的答案),您必须准备一个简短的、可重复的示例
-
另外,请务必提及您正在使用的库版本(在本例中为 scikit-learn)。
标签: python-2.7 machine-learning scikit-learn