在 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
但是您需要每个特征数组在每个训练案例中有一行。
我已阅读描述,如何应用随机森林回归 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
但是您需要每个特征数组在每个训练案例中有一行。