Класс RandomizedSearchCV Scikit-learn зависает/слишком долго выполняет функцию fit()Python

Программы на Python
Anonymous
Класс RandomizedSearchCV Scikit-learn зависает/слишком долго выполняет функцию fit()

Сообщение Anonymous »

У меня есть набор текстовых данных (около 42 000 образцов), и я провожу на нем анализ настроений. Я закодировал текст с помощью класса CountVectorizer. Есть 6 классов. Когда я запускаю следующий скрипт «Подбор 5 складок для каждого из 2 кандидатов, всего 10 подгонок», выводится на мой терминал, и загрузка моего процессора временно увеличивается, но прогресса не наблюдается. (Примечание: я пробовал это с набором данных Wine scikit, и он работает как исключение; распечатываю ход выполнения по мере его выполнения.
Примечательно, что я также пытался преобразовать свои данные в числовые массивы, сопоставляя их требуемый формат (n_samples, n_features) для X и (n_samples) для y.
Программа работает невыносимо медленно для моих текущих настроек, и мне нужна помощь, чтобы выяснить, что является причиной этого.
p>
Вот код:
X_train, X_val, y_train, y_val = sklearn.model_selection.train_test_split(df.tweet_text, df.cyberbullying_type, test_size=0.2, random_state=115)

#Bag of Words
vectorizer = CountVectorizer()
X = vectorizer.fit_transform(X_train)
X_val = vectorizer.transform(X_val)

parameters = {
'booster' : ['gbtree','dart'],
'learning_rate' : [0.01],
'n_estimators' : [100, 200, 300, 400, 500, 600],
}

def tune_hyperparameters(base_model, parameters, n_iter, kfold, X, Y, X_val=None, Y_val=None, SEED=115):
start_time = time.time()

# Arrange data into folds with approx equal proportion of classes within each fold
k = KFold(kfold)

optimal_model = RandomizedSearchCV(
base_model,
param_distributions=parameters,
n_iter=n_iter,
cv=k,
random_state=SEED,
scoring='accuracy',
n_jobs=1,
verbose=2,
error_score='raise'
)

optimal_model.fit(X, Y)#,eval_set=zip(X_val, Y_val))

stop_time = time.time()

scores = cross_val_score(optimal_model, X, Y, cv=k, scoring="accuracy")

return optimal_model

device= 'cuda' if torch.cuda.is_available() else 'cpu'

print(f'The device in use is: {device}')

base_model = XGBClassifier(objective='multi:softmax', num_class=6, device=device, n_jobs=None, verbosity=1, random_state=115)
# fit model
model = tune_hyperparameters(base_model, parameters, n_iter=2, kfold=5, X=X_train, Y=y_train)#, X_val=X_val, Y_val=Y_val)


Подробнее здесь: https://stackoverflow.com/questions/787 ... long-in-th

Вернуться в «Python»