Введение в 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 можно найти по адресу:
- Документы: https://pyrapidml.readthedocs.io/en/latest/
- Ссылка на Github: https://github.com/Zainali5/PyRapidML
- Ссылка на Pypi: https://pypi.org/project/PyRapidML/1.0.13/
Дополнительные ссылки на PyRapidML:
Решения для анализа данных с использованием PyRapidML, революционной библиотеки Python: https://medium.com/@zainbalouch3?p=80ce8be1a7c7