Настройка модели с помощью HPSklearn

Само по себе создание модели машинного обучения не решит проблему, если вы не сможете оптимизировать ее для повышения точности и производительности. Использование GridsearchCV и RandomsearchCV для определения наиболее эффективных гиперпараметров занимает много времени, а использование этих методов для различных моделей также является трудоемким процессом.

HPSklearn - это библиотека Python с открытым исходным кодом, которая не только выбирает лучшую модель для ваших данных, но и определяет лучшие параметры для этой модели. Он прост в использовании и содержит большое количество функций.

В этой статье мы обсудим, как с помощью HPsklearn сэкономить время и силы при моделировании машинного обучения.

Давайте начнем….

Установка HPSklearn

!pip install hpsklearn

Импорт необходимых библиотек

Далее мы импортируем все необходимые библиотеки, которые будут использоваться в этой статье.

from sklearn.datasets import make_classification
from sklearn.model_selection import train_test_split
from hpsklearn import HyperoptEstimator, extra_trees, svc
from hpsklearn import any_classifier
from hpsklearn import any_preprocessing
from hyperopt import tpe
from sklearn import datasets
import numpy as np

Загрузка набора данных

В этой статье мы будем использовать знаменитый набор данных IRIS.

# define dataset
X, y = make_classification(n_samples=100, n_features=10, n_informative=5, n_redundant=5, random_state=1)

Использование HPSklearn для моделирования

Теперь мы будем использовать hpsklearn для создания модели машинного обучения.

# split into train and test sets
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.33, random_state=1)
# define search
model = HyperoptEstimator(classifier=any_classifier('cla'), preprocessing=any_preprocessing('pre'), algo=tpe.suggest, max_evals=10, trial_timeout=30)
# perform the search
model.fit(X_train, y_train)

# summarize performance
acc = model.score(X_test, y_test)
print("Accuracy: %.3f" % acc)

# summarize the best model
print(model.best_model())

В этой библиотеке доступны разные классификаторы. Некоторые из них: svc, svc_linear, svc_rbf, svc_poly, svc_sigmoid, liblinear_svc, knn, ada_boost, gradient_boosting, random_forest, extra_trees, solution_tree, sgd, xgboost_classification и т. Д.

estim = HyperoptEstimator(classifier=svc('SVM'),
                          preprocessing=any_preprocessing('pre'),
                          algo=tpe.suggest,
                          max_evals=10,
                          trial_timeout=300)
estim.fit( X_train, y_train )

Доступны различные методы предварительной обработки: PCA, one_hot_encoder, standard_scaler, min_max_scaler, normalized, ts_lagselector, tfidf, rbm, colkmeans.

acc = estim.score(X_test, y_test)
print("Accuracy: %.3f" % acc)

print(estim.best_model())

Вот как вы можете использовать HPSklearn для автоматической оптимизации гиперпараметров. Давай, попробуй это и расскажи мне о своем опыте в разделе ответов.

Эта статья написана в сотрудничестве с Пиюшем Ингале.

Перед тем, как ты уйдешь

Спасибо за чтение! Если вы хотите связаться со мной, свяжитесь со мной по адресу [email protected] или в моем профиле LinkedIn. Вы можете просмотреть мой профиль Github для различных проектов по науке о данных и руководств по пакетам. Кроме того, не стесняйтесь изучать мой профиль и читать разные мои статьи, связанные с наукой о данных.