Я обучил свою модель классификатора дерева решений с помощью набора данных 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 сгенерирует имя случайным образом и присвоит его
Прежде чем углубляться в вы должны знать некоторое сходство в методе
- W&B предоставляет метод построения кривой обучения, который будет встроен в график для всех типов моделей, если вы хотите построить только кривую обучения, вы можете использовать метод ниже
wandb.sklearn.plot_learning_curve(model, X_train, y_train)
Здесь
модель = любой модельный классификатор, регрессор или кластер. - Если вы передаете функции для метода построения графика, он будет отображать важность функций для этих данных.
Давайте начнем…..
Регрессия
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
Использованная литература :
- Документы W&B sklearn -› https://docs.wandb.ai/guides/integrations/scikit
- Примеры W&B sklearn -› https://colab.research.google.com/github/wandb/examples/blob/master/colabs/scikit/Simple_Scikit_Integration.ipynb#scrollTo=ojLgOTVLEIxc
- Домашняя страница W&B -› https://wandb.ai/home
Есть еще поддержка W&B, которую мы можем проанализировать в будущем. В этой статье я максимально подробно рассказал о визуализации. Не стесняйтесь попробовать и задать сомнения в комментарии. Я новичок в этой области, будет полезно, если вы оставите отзыв. Спасибо