#python #scikit-learn #feature-extraction
#python #scikit-learn #извлечение объектов
Вопрос:
Я прочитал описание, как применить регрессию случайного леса здесь. В этом примере авторы используют следующий код для создания объектов:
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()
Я подумываю о том, чтобы объединить несколько возможностей в качестве функций и включать и выключать их. И я не знаю, как это сделать.
На данный момент у меня есть то, что я определяю класс, в котором я смогу включать и выключать функции и смотреть, приносит ли это что-то (например, все униграммы и 20 наиболее частых униграмм, тогда это может быть 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
Что мне следует сделать, чтобы добавить еще одну возможность создания функций? Like содержит 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
Ответ №1:
Похоже, вам нужен np.hstack
Однако вам нужно, чтобы в каждом массиве объектов было по одной строке на учебный пример.
Комментарии:
1. Большое спасибо, я начал искать в этом направлении, и, похоже, это работает с numpy.column_stack