Шаг 174.
Введение в машинное обучение с использованием Python. ... . Общий интерфейс конвейера. Построение конвейеров с помошью функции make_pipeline()

    На этом шаге мы рассмотрим этапы построения ковейера с помощью этой функции.

    Построение конвейера с помощью вышеописанного синтаксиса иногда выглядит немного громоздким и, как правило, нам нет необходимости присваивать имя каждому этапу. Существует удобная функция make_pipeline(), которая позволяет создать конвейер и автоматически присвоить имя каждому этапу, исходя из его класса (напомним, что каждый этап представляет собой кортеж, содержащий имя и экземпляр модели). Синтаксис make_pipeline() выглядит следующим образом:

[In 18]:
from sklearn.pipeline import make_pipeline
# стандартный синтаксис
pipe_long = Pipeline([("scaler", MinMaxScaler()), ("svm", SVC(C=100))])
# сокращенный синтаксис
pipe_short = make_pipeline(MinMaxScaler(), SVC(C=100))

    Объекты-конвейеры pipe_long и pipe_short выполняют одну и ту же последовательность операций, но в случае с pipe_short имена этапов присваиваются автоматически. Мы можем взглянуть на имена этапов с помощью атрибута steps:

[In 19]:
print("Этапы конвейера:\n{}".format(pipe_short.steps))

Этапы конвейера:
[('minmaxscaler', MinMaxScaler()), ('svc', SVC(C=100))]

    Этапам присвоены имена minmaxscaler и SVC. В общем, имена этапов - это просто названия классов, написанные строчными буквами. Если несколько этапов используют один и тот же класс, добавляется номер:

[In 20]:
from sklearn.preprocessing import StandardScaler
from sklearn.decomposition import PCA
pipe = make_pipeline(StandardScaler(), PCA(n_components=2), StandardScaler())
print("Этапы конвейера:\n{}".format(pipe.steps))

Этапы конвейера:
[('standardscaler-1', StandardScaler()), ('pca', PCA(n_components=2)), 
   ('standardscaler-2', StandardScaler())]

    Видно, что первый этап StandardScaler был назван standardscaler-1, а второй - standardscaler-2. Однако в данной ситуации было бы лучше использовать архитектуру конвейера с явными именами, чтобы присвоить этапам более содержательные названия.

    На следующем шаге мы рассмотрим работу с атрибутами этапов.




Предыдущий шаг Содержание Следующий шаг