Введение в PyRapidML

Ознакомьтесь с приведенной ниже ссылкой, чтобы узнать больше о PyRapidML.

Решения для анализа данных с использованием PyRapidML, революционной библиотеки Python: https://medium.com/@zainbalouch3?p=80ce8be1a7c7

Что такое PyRapidML?

  • PyRapidML - это библиотека Python, разработанная Зайном Али в июне 2021 года, и уже через пару месяцев она была включена в топовые библиотеки машинного обучения благодаря чистой документации и простоте использования.
  • PyRapidML - это библиотека Python с открытым исходным кодом, которая не только помогает автоматизировать рабочие процессы машинного обучения, но также помогает создавать сквозные алгоритмы машинного обучения.
  • PyRapidML - это библиотека с низким кодом, что означает, что при написании базового и меньшего количества строк кода можно добиться высокой точности в своих моделях машинного обучения. Нет необходимости писать объемные строки кода, поскольку PyRapidML сравнит все возможные алгоритмы машинного обучения, чтобы решить вашу проблему всего в одной строке кода.
  • Это помогает специалисту по анализу данных быстро и более эффективно выполнять любые эксперименты от начала до конца.
  • PyRapidML - это оболочка для многих моделей и фреймворков машинного обучения, таких как PyCaret, XGBoost, Scikit-learn и многих других.

Что может предложить PyRapidML?

PyRapidML имеет ряд функций для:

  • Подготовка данных
  • Исследовательский анализ данных
  • Сбор данных
  • Сравнение нескольких моделей машинного обучения и поиск лучшей модели
  • Модельное обучение
  • Настройка гиперпараметров
  • Обработка естественного языка
  • Глубокое обучение (в разработке)

Начало работы с PyRapidML

Установите PyRapidML с помощью следующей команды в терминале / командной строке с помощью PIP

pip install PyRapidML

Проверьте версию PyRapidML

import PyRapidML
PyRapidML.__version__

Проверка предварительно загруженных данных в PyRapidML

from PyRapidML.datasets import extract_data
extract_data('index')

Настройка среды PyRapidML

Прежде чем продолжить какие-либо эксперименты с PyRapidML, нам необходимо настроить среду.

  • Первым шагом к настройке среды является импорт модуля.
    В зависимости от типа эксперимента, который необходимо провести.
#For Regression
from PyRapidML.regression import *
#For Classification
from PyRapidML.classification import *
#For Clustering
from PyRapidML.clustering import *
#For Anomaly Detection
from PyRapidML.anomaly import *
#For NLP
from PyRapidML.nlp import *
  • Второй шаг - инициализация настройки:
    Это обязательный шаг, который необходимо выполнить перед любым экспериментом с машинным обучением.
reg = initializer(data = DataFrame_name, target = 'target_variable_name')

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

После этого нажмите Enter, и вы получите результаты, как показано ниже.

Шаг инициализации охватывает широкий спектр задач предварительной обработки, таких как:

Определение типа данных:
-
Помогает определить правильные типы данных для всех функций.

Очистка и подготовка данных:
-
Он автоматически подставляет отсутствующие значения, присутствующие в данных.
- По умолчанию числовые значения рассчитываются со средним значением, а категориальные данные - с режим.
- Кроме того, кодирование категориальных функций выполняется автоматически.

Разделение теста на тренировку
- автоматически разделяет данные на тренировку и тест для моделирования. В случае проблем с классификацией используется стратифицированное разбиение.
- По умолчанию коэффициент разбиения составляет 70% для поезда и 30% для теста. Однако это можно изменить с помощью параметра в настройке. «train_size».
-
Оценка каждой модели машинного обучения и оптимизация гиперпараметров выполняется с помощью перекрестной проверки методом K-Fold.

Назначение идентификатора сеанса как начального числа:
-
Идентификатор сеанса - это псевдослучайное число, генерируемое по умолчанию, если не передан параметр session_id.
- PyRapidML распределяет этот идентификатор в качестве начального числа во всех функциях, чтобы изолировать эффект рандомизации.
- Это обеспечивает воспроизводимость позже в той же или другой среде.

Теперь, когда наша среда настроена для обучения. Мы можем продолжить эксперименты с машинным обучением.

Создание моделей

Создание модели в PyRapidML - одна из самых простых задач.

Функция «create_model» принимает только идентификатор модели в виде строки и выполняет задачу.

creating_model('model_ID')

Чтобы использовать перекрестную проверку во время обучения, мы можем включить еще один параметр «fold» в функцию create_model.
По умолчанию для кратности установлено значение 10.

creating_model('model_ID',fold = n)

n - необходимое количество складок.

После этого мы получаем на выходе таблицу всех показателей, округленных до 4 десятичных цифр.
Классификация: точность, AUC, отзыв, точность, F1, каппа, MCC
Регрессия: MAE, MSE, RMSE, R2, RMSLE, MAPE

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

+------------+---------------------------------+
|     ID     |              Name               |
+------------+---------------------------------+
| ‘lr’       | Logistic Regression             |
| ‘knn’      | K Nearest Neighbour             |
| ‘nb’       | Naives Bayes                    |
| ‘dt’       | Decision Tree Classifier        |
| ‘svm’      | SVM – Linear Kernel             |
| ‘rbfsvm’   | SVM – Radial Kernel             |
| ‘gpc’      | Gaussian Process Classifier     |
| ‘mlp’      | Multi Level Perceptron          |
| ‘ridge’    | Ridge Classifier                |
| ‘rf’       | Random Forest Classifier        |
| ‘qda’      | Quadratic Discriminant Analysis |
| ‘ada’      | Ada Boost Classifier            |
| ‘gbc’      | Gradient Boosting Classifier    |
| ‘lda’      | Linear Discriminant Analysis    |
| ‘et’       | Extra Trees Classifier          |
| ‘xgboost’  | Extreme Gradient Boosting       |
| ‘lightgbm’ | Light Gradient Boosting         |
| ‘catboost’ | CatBoost Classifier             |
+------------+---------------------------------+

→ Регрессия:

+------------+-----------------------------------+
|     ID     |               Name                |
+------------+-----------------------------------+
| ‘lr’       | Linear Regression                 |
| ‘lasso’    | Lasso Regression                  |
| ‘ridge’    | Ridge Regression                  |
| ‘en’       | Elastic Net                       |
| ‘lar’      | Least Angle Regression            |
| ‘llar’     | Lasso Least Angle Regression      |
| ‘omp’      | Orthogonal Matching Pursuit       |
| ‘br’       | Bayesian Ridge                    |
| ‘ard’      | Automatic Relevance Determination |
| ‘par’      | Passive Aggressive Regressor      |
| ‘ransac’   | Random Sample Consensus           |
| ‘tr’       | TheilSen Regressor                |
| ‘huber’    | Huber Regressor                   |
| ‘kr’       | Kernel Ridge                      |
| ‘svm’      | Support Vector Machine            |
| ‘knn’      | K Neighbors Regressor             |
| ‘dt’       | Decision Tree                     |
| ‘rf’       | Random Forest                     |
| ‘et’       | Extra Trees Regressor             |
| ‘ada’      | AdaBoost Regressor                |
| ‘gbr’      | Gradient Boosting Regressor       |
| ‘mlp’      | Multi Level Perceptron            |
| ‘xgboost’  | Extreme Gradient Boosting         |
| ‘lightgbm’ | Light Gradient Boosting           |
| ‘catboost’ | CatBoost Regressor                |
+------------+-----------------------------------+

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

+-------------+----------------------------------+
|     ID      |               Name               |
+-------------+----------------------------------+
| ‘kmeans’    | K-Means Clustering               |
| ‘ap’        | Affinity Propagation             |
| ‘meanshift’ | Mean shift Clustering            |
| ‘sc’        | Spectral Clustering              |
| ‘hclust’    | Agglomerative Clustering         |
| ‘dbscan’    | Density-Based Spatial Clustering |
| ‘optics’    | OPTICS Clustering                |
| ‘birch’     | Birch Clustering                 |
| ‘kmodes’    | K-Modes Clustering               |
+-------------+----------------------------------+

→ Обнаружение аномалий:

+-------------+-----------------------------------+
|     ID      |               Name                |
+-------------+-----------------------------------+
| ‘abod’      | Angle-base Outlier Detection      |
| ‘iforest’   | Isolation Forest                  |
| ‘cluster’   | Clustering-Based Local Outlier    |
| ‘cof’       | Connectivity-Based Outlier Factor |
| ‘histogram’ | Histogram-based Outlier Detection |
| ‘knn’       | k-Nearest Neighbors Detector      |
| ‘lof’       | Local Outlier Factor              |
| ‘svm’       | One-class SVM detector            |
| ‘pca’       | Principal Component Analysis      |
| ‘mcd’       | Minimum Covariance Determinant    |
| ‘sod’       | Subspace Outlier Detection        |
| ‘sos        | Stochastic Outlier Selection      |
+-------------+-----------------------------------+

→ НЛП:

+-------+-----------------------------------+
|  ID   |               Model               |
+-------+-----------------------------------+
| ‘lda’ | Latent Dirichlet Allocation       |
| ‘lsi’ | Latent Semantic Indexing          |
| ‘hdp’ | Hierarchical Dirichlet Process    |
| ‘rp’  | Random Projections                |
| ‘nmf’ | Non-Negative Matrix Factorization |
+-------+-----------------------------------+

Сравнение моделей

Эта функция сравнивает каждую модель, присутствующую в PyRapidML, в зависимости от постановки задачи.
Обучение каждой модели выполняется с использованием гиперпараметров по умолчанию и оценивает показатели производительности с помощью перекрестной проверки.

comparing_models()

Результатом функции является таблица, показывающая средний балл всех моделей по складкам. Количество складок можно определить с помощью параметров fold в функции comparing_models. По умолчанию для сгиба установлено значение 10. Таблица сортируется (от самой высокой к самой низкой) по выбранной метрике и может быть определена с помощью параметра sort . По умолчанию таблица имеет вид отсортировано по точности для классификационных экспериментов и по R2 для регрессионных экспериментов. Некоторые модели нельзя сравнивать из-за их длительного времени работы. Чтобы обойти это предотвращение, для параметра turbo можно установить значение False.

Чтобы выбрать первые n чисел модели, включите гиперпараметр n_select в функцию compare_models.

comparing_models(n_select = n)

Мы даже можем отсортировать это по метрикам.

comparing_models(n_select = n, sort ‘ AUC’)

Настроить модель

Он предоставляет только одну строчную функцию для выполнения настройки гиперпараметров любой модели, присутствующей в библиотеке PyRapidML.

Он настраивает гиперпараметр модели, переданной в качестве оценщика, с помощью случайного поиска по сетке с заранее заданными сетками, которые можно полностью настроить.

  • Сначала создайте модель
dt = creating_model('dt') #dt stands for the Decision Tree
  • Настройте модель
tuned = tuning_model(dt, n_iter = 50)

Постройте модель

Это помогает в проверке производительности модели с разными графиками в одной строке кода.

model = creating_model('Model_name')plot_model(model)

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

+-----------------------------+--------------------+
|            Name             |        Plot        |
+-----------------------------+--------------------+
| Area Under the Curve        | ‘auc’              |
| Discrimination Threshold    | ‘threshold’        |
| Precision Recall Curve      | ‘pr’               |
| Confusion Matrix            | ‘confusion_matrix’ |
| Class Prediction Error      | ‘error’            |
| Classification Report       | ‘class_report’     |
| Decision Boundary           | ‘boundary’         |
| Recursive Feature Selection | ‘rfe’              |
| Learning Curve              | ‘learning’         |
| Manifold Learning           | ‘manifold’         |
| Calibration Curve           | ‘calibration’      |
| Validation Curve            | ‘vc’               |
| Dimension Learning          | ‘dimension’        |
| Feature Importance          | ‘feature’          |
| Model Hyperparameter        | ‘parameter’        |
+-----------------------------+--------------------+

→ Регрессия:

+-----------------------------+-------------+
|            Name             |    Plot     |
+-----------------------------+-------------+
| Residuals Plot              | ‘residuals’ |
| Prediction Error Plot       | ‘error’     |
| Cooks Distance Plot         | ‘cooks’     |
| Recursive Feature Selection | ‘rfe’       |
| Learning Curve              | ‘learning’  |
| Validation Curve            | ‘vc’        |
| Manifold Learning           | ‘manifold’  |
| Feature Importance          | ‘feature’   |
| Model Hyperparameter        | ‘parameter’ |
+-----------------------------+-------------+

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

+-----------------------+----------------+
| Cluster PCA Plot (2d) |   ‘cluster’    |
+-----------------------+----------------+
| Cluster TSnE (3d)     | ‘tsne’         |
| Elbow Plot            | ‘elbow’        |
| Silhouette Plot       | ‘silhouette’   |
| Distance Plot         | ‘distance’     |
| Distribution Plot     | ‘distribution’ |
+-----------------------+----------------+

→ Обнаружение аномалий:

+---------------------------+--------+
| t-SNE (3d) Dimension Plot | ‘tsne’ |
+---------------------------+--------+
| UMAP Dimensionality Plot  | ‘umap’ |
+---------------------------+--------+

→ Обработка естественного языка:

+---------------------------+----------------------+
|           Name            |         Plot         |
+---------------------------+----------------------+
| Word Token Frequency      | ‘frequency’          |
| Word Distribution Plot    | ‘distribution’       |
| Bigram Frequency Plot     | ‘bigram’             |
| Trigram Frequency Plot    | ‘trigram’            |
| Sentiment Polarity Plot   | ‘sentiment’          |
| Part of Speech Frequency  | ‘pos’                |
| t-SNE (3d) Dimension Plot | ‘tsne’               |
| Topic Model (pyLDAvis)    | ‘topic_model’        |
| Topic Infer Distribution  | ‘topic_distribution’ |
| Word cloud                | ‘wordcloud’          |
| UMAP Dimensionality Plot  | ‘umap                |
+---------------------------+----------------------+

Интерпретировать модель

После построения модели одной из важнейших задач является интерпретация результатов.

Интерпретируемость модели помогает отладить модель, анализируя то, что модель действительно считает важным.

model = creating_model('Model_name')
interpret_model(model)

Завершить модель

Это последний шаг построения модели в PyRapidML.

Эта функция принимает обученный объект модели и возвращает модель, которая была обучена на всем наборе данных.

model = creating_model('Model_name')
finalize_model(model)

Документация PyRapidML

Документация и ссылка на Github

Документацию по PyRapidML можно найти по адресу:

Дополнительные ссылки на PyRapidML:

Решения для анализа данных с использованием PyRapidML, революционной библиотеки Python: https://medium.com/@zainbalouch3?p=80ce8be1a7c7