Мы все сталкивались или столкнемся с такой ситуацией: когда мы пытаемся найти, какая модель машинного обучения будет лучше всего работать с данным набором данных? Чтобы найти этот ответ, вам нужно написать код для различных моделей мл и обучить свой набор данных для каждой модели, а затем попытаться сравнить производительность этих моделей в тестовом наборе данных. Что ж, вот решение вашей проблемы: Lazypredict.

Фото автора Priscilla Du Preez на Unsplash

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

Lazy Predict помогает создавать множество базовых моделей для контролируемого обучения без большого количества кода и помогает понять, какие модели работают лучше без какой-либо настройки параметров.

LazyPredict может обучать и оценивать различные модели для классификации и регрессионного анализа. Мы увидим код для обоих:

  1. LazyPredict для задач классификации:

Мы будем использовать набор данных heart.csv для задачи классификации, которая содержит следующие независимые столбцы:['age', 'sex', 'cp', 'trestbps', 'chol', 'fbs', 'restecg', 'thalach', 'exang', 'oldpeak', 'slope', 'ca', 'thal'.Используя эти столбцы, вам нужно предсказать цель, которая содержит 1, если у пациента есть какое-либо заболевание сердца, и 0, если у пациента нет сердечного заболевания. Это предварительно обработанный набор данных, т.е. он не содержит нулевого значения или значения NaN. Мы можем импортировать LazyClassifier из lazypredict. Контролируемая библиотека, затем загрузите набор данных и разделите его на обучающие и тестовые данные. Затем вызовите LazyClassifier(), чтобы создать объект, обучить модели мл и предсказать результат с помощью метода fit() одновременно. models — это фрейм данных, который содержит различные строки, где каждая строка соответствует имени модели, ее точности, кривой ROC-AUC, F1-показателю и времени, затраченному на обучение модели.

from lazypredict.Supervised import LazyClassifier
import pandas as pd
data = pd.read_csv("heart.csv")
y = data.pop('target').to_numpy() # this will return the target and remove it from data
X= data
X_train, X_test, y_train, y_test = train_test_split(X, y,test_size=.2,random_state =123)
clf = LazyClassifier(verbose=0,ignore_warnings=True, custom_metric=None)
models,predictions = clf.fit(X_train, X_test, y_train, y_test)
models

Модели классификации с использованием LazyPredict

2. LazyPredict для задач регрессии:

Точно так же вы можете обучать различные регрессионные модели, используя класс lazypredict.supervised.LazyRegressor. Мы будем использовать набор данных о жилье в Бостоне из библиотеки sklearn для прогнозирования целевой переменной. В остальном все аналогично задачам классификации. Показатели сравнения для регрессионных моделей отличаются от показателей для модели классификации, поскольку для сравнения производительности модели имеет смысл использовать среднеквадратичное отклонение и ошибку R-квадрат.

from lazypredict.Supervised import LazyRegressor
from sklearn import datasets
from sklearn.utils import shuffle
import numpy as np
from sklearn.model_selection import train_test_split
boston = datasets.load_boston()
X, y = shuffle(boston.data, boston.target, random_state=13)
X = X.astype(np.float32)
X_train,X_test, y_train, y_test = train_test_split(X,y,train_size = 0.7, random_state = 14)
reg = LazyRegressor(verbose=0, ignore_warnings=False, custom_metric=None)
models, predictions = reg.fit(X_train, X_test, y_train, y_test)
models # returns dataframe of model with their metrics score

Модели классификации с использованием LazyPredict

Примечание. Библиотека LazyPredict автоматически выполняет все задачи обработки данных, такие как очистка данных, и обрабатывает нулевые значения целочисленных столбцов, используя SimpleImputer,, и нулевые значения категориальных столбцов, используя отсутствующие ключевые слова, а затем преобразует категориальные переменная с использованием OnHotEncoder и OrdinalEncoder(в зависимости от кардинальности — количество уникальных значений). Вы можете скачать набор данных и блокнот по этой ссылке.

Ограничения:

  1. Настройка параметров не допускается.
  2. Не реализовано для неконтролируемого алгоритма.

Вывод:

Кроме того, он также поддерживает множество различных источников данных и форматов, что упрощает его использование с существующими наборами данных. В целом, LazyPredict — отличная библиотека для машинного обучения Python. Он прост в использовании и предоставляет широкий спектр функций, которые делают его идеальным выбором для анализа данных.

Ссылки:



Дополнительные материалы на PlainEnglish.io.

Подпишитесь на нашу бесплатную еженедельную рассылку новостей. Подпишитесь на нас в Twitter, LinkedIn, YouTube и Discord.

Заинтересованы в масштабировании запуска вашего программного обеспечения? Проверьте Цепь.

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