我尝试添加功能以对文档进行分类。但我的问题是,如果我的矩阵大小与样本数量不对应,如何添加特征。这是我的估算器
class Add(BaseEstimator, TransformerMixin):
def __init__(self):
pass
def transform(self, X, y=None):
print(type(X))
print('Dans Add X vaut:', X.shape)
return X
def fit(self, X, y = None):
return self
pipeline = Pipeline([
('vect', TfidfVectorizer()),
('add_features', Add()),
('clf', SGDClassifier())
])
parameters = {'vect__max_features': (3000,5000)}
data = load_files('./HO_without_tag', categories=None)
X , Y = (data.data, data.target)
print(len(X), len(Y))
grid_search = GridSearchCV(pipeline, param_grid = parameters, n_jobs = 1, verbose = 1000)
grid_search.fit(X,Y).transform(X)
但在我的结果中,我没有打印所有内容......
Fitting 3 folds for each of 1 candidates, totalling 3 fits
[CV] vect__max_features=3000
<class 'scipy.sparse.csr.csr_matrix'>
Dans Addned X vaut: (323, 3000)
<class 'scipy.sparse.csr.csr_matrix'>
Dans Addned X vaut: (163, 3000)
.......
我不明白 (323, 3000) 和 (163, 3000) 是什么意思???
通常我有 486 个文件(文件)。如果我想在我的变换方法中添加一些特征,我只需要将第一个管道 tdfIdfVectorizer 给出的数组(我理解为 (486, 3000) )连接到我的具有这种形状的新特征数组(486,我的特征)。目前,我无法个性化我的转换方法,因为此时我的行维度不兼容。提前感谢您的帮助。