在 python 中创建用于进一步分类的特征函数

Creating features function for further classification in python

我已阅读描述,如何应用随机森林回归 here。在此示例中,作者使用以下代码创建功能:

from sklearn.feature_extraction.text import CountVectorizer
vectorizer = CountVectorizer(analyzer = "word",max_features = 5000)
train_data_features = vectorizer.fit_transform(clean_train_reviews)
train_data_features = train_data_features.toarray()

我正在考虑将几种可能性组合为功能并打开和关闭它们。我不知道该怎么做。 到目前为止我所拥有的是我定义了一个 class,我可以在其中打开和关闭功能并查看它是否带来了一些东西(例如,所有 unigrams 和 20 个最常见的 unigrams,它可能是10 个最常见的形容词,tf-idf)。但是现在我不明白如何将它们组合在一起。 代码看起来是这样的,在函数部分我迷路了(我拥有的那种函数会复制他们在教程中所做的事情,但它似乎并没有真正帮助我这样做):

class FeatureGen: #for example, feat = FeatureGen(unigrams = False) creates feature set without the turned off feature
def __init__(self, unigrams = True, unigrams_freq = True)
self.unigrams = unigrams
self.unigrams_freq = unigrams_freq

def get_features(self, input): 
    vectorizer = CountVectorizer(analyzer = "word",max_features = 5000)
    tokens = input["token"]
    if self.unigrams:
        train_data_features = vectorizer.fit_transform(tokens)
    return train_data_features

我应该怎么做才能增加一种功能可能性?赞包含 10 个最常用的词。

          if self.unigrams
               train_data_features = vectorizer.fit_transform(tokens)  
          if self.unigrams_freq:
                #something else
    return features #and this should be a combination somehow

看来你需要np.hstack

但是您需要每个特征数组在每个训练案例中有一行。