Программирование | Отладка | Web-технологии | Microsoft Office | Теор.информатика | Исслед-е операций | Операц. сис-мы | Новости |
Проектирование ИС | Исск. инт-т | Трансляторы | Об авторах | Карта сайта | Поиск |
Язык программирования Turbo Pascal |
Среда программирования Delphi 6 |
Язык программирования C++ |
Язык программирования C# |
Язык программирования Assembler |
Язык программирования Go |
Язык программирования Haskell |
Язык программирования Java |
Язык программирования Kotlin |
Язык программирования LISP |
Язык программирования Prolog |
Язык программирования Python |
Параллельные алгоритмы |
Сети Петри |
Начала |
Отладчик Turbo Debugger |
Основы HTML |
Технология Flash |
Язык программирования Perl |
Основы языка PHP |
Основы PhotoShop |
Основы JavaScript |
Основы CSS |
Основы CorelDRAW |
Библиотека jQuery |
Текстовый процессор Microsoft Word |
Электронные таблицы Microsoft Excel |
Система управления базами данных Microsoft Access |
Использование VBA в Microsoft Excel |
Место информатики в системе наук |
Общие сведения об информации |
Кодирование информации в теории Шеннона |
Основные понятия теории алгоритмов |
Классические формализации понятия 'алгоритм' |
Понятие рекурсии |
Сложность алгоритма |
Методы разработки алгоритмов |
Сложность задачи |
Информационное моделирование |
Основные понятия теории графов |
Алгоритмы поиска на графах |
Матроиды. 'Жадные' алгоритмы |
Динамическое программирование |
Алгоритмы |
UNIX и Linux |
Унифицированный язык моделирования UML |
Введение в машинное обучение с использованием Python |
Основы создания нейросети на Python |
Глубокое обучение на Python |
Начала |
Динамические структуры данных |
Библиотека RX |
Основные классы и события Delphi |
Основные компоненты Delphi |
Организация потоков |
Технология COM |
Язык программирования Object Pascal |
Локальные БД в Delphi |
Библиотека OWL |
Библиотека Qt |
Библиотека STL |
Библиотека шаблонов классов Borland |
Основы компьютерной графики |
Динамические структуры данных |
Начала |
Обработка исключительных ситуаций |
Оптимизация с помощью ассемблера |
Основы объектно-ориентированного программирования |
Потоки ввода-вывода |
Разное |
Редактор Resource Workshop |
Среда Visual C++ |
Программирование в Microsoft Visual C++ 2010 |
Технология CUDA |
Технология OLE |
Начала |
16-битное программирование |
32-битное программирование |
Основы логического программирования |
Динамические структуры данных |
Visual Prolog |
Библиотека PyQt5 |
Библиотека Tkinter |
Визуализация данных |
Начала |
Задачи ComputerScience |
Рекурсия |
Вкладка RXControls |
Вкладка RXDBAware |
Вкладка RXTools |
Вкладка Standard |
Вкладка Additional |
Создание Internet-приложений |
Вкладка System |
Вкладка Win32 |
Вкладка Servers |
Технология ADO |
Вкладка QReport |
Вкладка InterBase |
Вкладка Dialogs |
Начала |
Среда программирования. Язык С/С++ |
На этом шаге мы рассмотрим пример построения такого контейнера.
Давайте посмотрим, как мы можем использовать класс Pipeline, чтобы осуществить обучение SVM после масштабирования данных с помощью MinMaxScaler() (на этот раз не будем использовать решетчатый поиск). Во-первых, мы создаем объект-конвейер, передав ему список необходимых этапов. Каждый этап представляет собой кортеж, содержащий имя (любая строка на ваш выбор, за исключением строки, начинающейся с двух подчеркиваний "__") и экземпляр модели:
[In 6]: from sklearn.pipeline import Pipeline pipe = Pipeline([("scaler", MinMaxScaler()), ("svm", SVC())])
Здесь мы создали два этапа: первый этап, названный "scaler", является экземпляром MinMaxScaler, а второй, названный "svm", является экземпляром SVC. Теперь мы можем построить конвейер точно так же, как и любую другую модель scikit-learn:
[In 7]:
pipe.fit(X_train, y_train)
В данном случае pipe.fit() сначала вызывает метод fit() объекта scaler, преобразует обучающие данные, используя MinMaxScaler(), и, наконец, строит модель SVM на основе масштабированных данных. Чтобы оценить правильность модели на тестовых данных, мы просто вызываем pipe.score():
[In 8]: print("Правильность на тестовом наборе: {:.2f}".format(pipe.score(X_test, y_test))) Правильность на тестовом наборе: 0.97
Когда мы вызываем pipe.score(), сначала тестовые данные масштабируются с помощью MinMaxScaler(), затем к масштабированным тестовым данным применяется построенная модель SVM (происходит вызов метода score() объекта svm). Видно, что приведенный вывод идентичен результату, который мы получили, использовав программный код, когда выполняли преобразования вручную. С помощью конвейера мы сократили программный код, необходимый для нашего процесса "предварительная обработка + классификация". Однако главное преимущество конвейера заключается в том, что сейчас мы можем использовать эту отдельную модель в качестве аргумента функции cross_val_score() или GridSearchCV.
На следующем шаге мы рассмотрим использование конвейера, помещенного в объект GridSearchCV.