Я обучил свою модель классификатора дерева решений с помощью набора данных Titanic. Я протестировал модель, все в порядке. Все прошло хорошо. Но затем я научился тому, что называется визуализацией обучения (кривая обучения и кривая проверки), которая будет полезна для анализа того, как моя модель обучается. Для модели TensorFlow или Keras существует отличный инструмент визуализации под названием tensorboard, но для модели sklearn нет возможности. Я искал в Интернете, но нашел что-то под названием sklearn.model_selection.learning_curve и sklearn.model_selection.validation_curve, но я попытался не получить удовлетворения. Затем я поискал в Интернете и узнал о Вес и смещение, который является очень замечательным и отличным инструментом для визуализации. Они поддерживают sklearn, PyTorch, TensorFlow и т. д. В этом блоге я расскажу, как это интегрировать в свой проект.

Монтаж

Чтобы установить вес и смещение, добавьте следующую строку

Для установки с помощью python
pip install wandb

Для установки с помощью anaconda
conda install wandb

Настраивать

Импорт W&B и вход

импортировать wandb
wandb.login()

В этой статье я собираюсь показать, как интегрировать W&B для всей регрессии, классификации и кластеризации, и здесь мы используем модель хребта для регрессии и классификации и kmeans для кластеризации.

Чтобы инициализировать вес и смещение, используйте метод ниже:
метод init содержит параметр, называемый именем проекта, и имя
project = имя проекта. Имя, данное здесь, будет использоваться. показать проект на панели управления весом и смещением
имя = имя модели, оно должно быть уникальным, чтобы вы могли легко проверять графики.

wandb.init(project = имя_проекта, имя = имя модели или уникальное имя)

Примечание. Если вы не указали имя проекта или имя, W&B сгенерирует имя случайным образом и присвоит его

Прежде чем углубляться в вы должны знать некоторое сходство в методе

  1. W&B предоставляет метод построения кривой обучения, который будет встроен в график для всех типов моделей, если вы хотите построить только кривую обучения, вы можете использовать метод ниже
    wandb.sklearn.plot_learning_curve(model, X_train, y_train)
    Здесь
    модель = любой модельный классификатор, регрессор или кластер.
  2. Если вы передаете функции для метода построения графика, он будет отображать важность функций для этих данных.

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

Регрессия

wandb.init(project = «visualize_sklearn», name = «regression»)

W&B имеет метод, называемый графиком регрессии, когда мы используем его, мы можем автоматически строить все графики, связанные с регрессией, вместо того, чтобы строить их один за другим.

Все в одном: график регрессии
Используя все это в одном API, можно:

  • Сводка журнала метрик
  • Кривая обучения журнала
  • Кандидаты на выбросы журнала
  • Лог остаточный участок

wandb.sklearn.plot_regressor(reg_model, X_train, X_test, y_train, y_test, model_name='RidgeRegressor')

Здесь
1. модель = модель регрессора
2. X_train, X_test, y_train, y_test = набор данных
3. feature_name = ваши функции или нет. Если вы передадите функцию, она также отобразит важность функции
4. model_name = имя модели или уникальное имя

Если вы хотите запустить каждый сюжет. Используйте приведенный ниже код

wandb.sklearn.plot_residuals(reg_model, X_train, y_train) =для остаточного графика
wandb.sklearn.plot_outlier_candidates(reg_model, X_train, y_train) =для кандидата-выброса

wandb.finish() — используйте в конце проекта, чтобы закончить W&B

Классификация

wandb.init(project = «visualize_sklearn», name = «classification»)

W&B имеет метод, называемый классификационным графиком, когда мы используем его, мы можем автоматически строить все графики, связанные с классификацией, вместо того, чтобы строить их один за другим.

Все в одном: график классификатора
Используя все это в одном API, можно:

  • Важность функции журнала
  • Кривая обучения журнала
  • Матрица путаницы в журнале
  • Сводные показатели журнала
  • Пропорции класса журнала
  • Калибровочная кривая журнала
  • Кривая бревна
  • Кривая отзыва точности журнала

wandb.sklearn.plot_classifier(model,X_train, X_test,y_train, y_test,y_pred,y_probas,labels,model_name=’RidgeClassifier’)

Здесь
1. модель = модель классификатора
2. X_train, X_test, y_train, y_test = набор данных
3. y_pred = прогноз данных с использованием модели
4. y_probas = вероятность прогноза данных
5. labels = массив уникальных меток (например, ["да", "нет"] или ["выжил", "не выжил"] или ["положительно", "отрицательно", "нейтрально"] )
6. feature_name = ваши функции или нет. Если вы передадите функцию, она также отобразит важность функции
7. model_name = имя модели или уникальное имя

Примечание. Вы можете получить уникальный ярлык, например train[labelName].unique(), используя pandas

Если вы хотите запустить каждый сюжет. Используйте приведенный ниже код

wandb.sklearn.plot_class_proportions(y_train, y_test, labels) = пропорции класса
wandb.sklearn.plot_roc(y_test, y_probas, labels)= ROC
wandb.sklearn.plot_precision_recall(y_test, y_probas, labels)= кривая точного отзыва

wandb.finish() — используйте в конце проекта, чтобы закончить W&B.

Кластеризация

wandb.init(project = «visualize_sklearn», name = «кластеризация»)

W&B имеет метод, называемый графиком кластеризации, когда мы используем его, мы можем автоматически строить все графики, связанные с кластеризацией, вместо того, чтобы строить их один за другим.

Все в одном: Clusterer Plot
С помощью этого универсального API вы можете:

  • Кривая логарифмического локтя
  • График силуэта бревна

wandb.sklearn.plot_clusterer(kmeans, X, cluster_labels, labels, ‘KMeans’)

Здесь
1. модель = модель кластера
2. X = набор данных
3. cluster_labels = прогноз модели
4. labels = массив уникальных меток (например, [“ да», «нет»] или [«выжил», «не выжил»] или [«положительно», «отрицательно», «нейтрально»])
5. feature_name = ваши функции или None. Если вы передадите функцию, она также отобразит важность функции
6. model_name = имя модели или уникальное имя

Примечание. Вы можете получить уникальный ярлык, например train[labelName].unique(), используя pandas

Если вы хотите запустить каждый сюжет. Используйте приведенный ниже код

wandb.sklearn.plot_elbow_curve(kmeans, X) = график локтя
wandb.sklearn.plot_silhouette(kmeans, X, labels) = график силуэта

wandb.finish() — используйте в конце проекта, чтобы закончить W&B

Автономный режим

Проблема, с которой я столкнулся при интеграции этого пакета, заключается в том, что этому фреймворку требуется подключение к Интернету, когда мы вызываем его метод для загрузки всех имеющихся там серверов, чтобы он создал красивую панель инструментов на своем веб-сайте. Но для этого нам нужно больше интернета. я не могу позволить себе столько интернета. Поэтому я искал в Интернете, чтобы запустить эту структуру в автономном режиме, а затем узнал об автономном режиме. Чтобы включить это, вы должны добавить WANDB_MODE = offline в переменную среды, чтобы весь ваш график работал в автономном режиме. Он сохранит график в локальном хранилище, и мы сможем синхронизировать его с Интернетом, используя строку ниже
wandb sync your_run_directory

Использованная литература :

  1. Документы W&B sklearn -› https://docs.wandb.ai/guides/integrations/scikit
  2. Примеры W&B sklearn -› https://colab.research.google.com/github/wandb/examples/blob/master/colabs/scikit/Simple_Scikit_Integration.ipynb#scrollTo=ojLgOTVLEIxc
  3. Домашняя страница W&B -› https://wandb.ai/home

Есть еще поддержка W&B, которую мы можем проанализировать в будущем. В этой статье я максимально подробно рассказал о визуализации. Не стесняйтесь попробовать и задать сомнения в комментарии. Я новичок в этой области, будет полезно, если вы оставите отзыв. Спасибо