Цикл колба в тренинге: Цикл Колба в тренинге – что это такое и как используется
Структура бизнес-тренинга и цикл Колба
Многим известны четыре стадии цикла обучения Дэвида Колба:
- Конкретный опыт (КО).
- Мыслительные наблюдения (МН).
- Абстрактная концептуализация (АК).
- Активное экспериментирование (АЭ).
Учитывая необыкновенную популярность и безусловную полезность модели (и цикла) Дэвида Колба, я умышленно при описании своей структуры тренинга вставил некоторые ключевые термины из нее, чтобы тем, кто хочет сопоставить, было удобно.
Мои первые тренинги научили меня тому, что готовиться надо очень ответственно, а, так как я человек по своей сути добросовестный, то я планировал тренинги ответственно вдвойне (что, впрочем, и продолжаю с удовольствием делать).
К каждому новому тренингу я писал поминутное расписание, да, да, буквально плюс – минус пять минут. Я прописывал, о чем буду говорить, какие примеры буду приводить, как буду давать инструкцию для упражнения, структуру самих упражнений, как подводить итоги.
Это сейчас в большинстве случаев вся эта структура уже у меня в голове, в памяти, и у меня нет необходимости прописывать поминутно весь тренинг. Но если, я берусь за новую тему, то все начинается с самого начала – поминутное расписание тренинга.
Структура очень важна для бизнес-тренинга. Она является одной из основ успеха и эффективности. Структура движет тренингом, она им руководит. Тренинг – это система, которая оказывает влияние на участников, и каждому тренеру нужно применять системный подход. Предлагаю вашему вниманию общую структуру тренинга, выработанную мною за 25 лет.
Структура бизнес-тренинга
- Начало тренинга.
- Представление тренера и метафора тренинга.
- Цели тренинга, озвученные тренером.
- Введение групповых норм и правил (нормы можно вводить и после знакомства, если вы хотите установить сначала индивидуальный контакт с людьми).
- Знакомство с участниками.
- Обзор тем тренинга, сопоставление абстрактных концепций и теоретических моделей с конкретным опытом участников.
- Постановка целей участниками тренинга с точки зрения того, какие рабочие ситуации они хотели бы рассмотреть, какими умениями и навыками стремятся овладеть.
- Упражнение на включение, мягкая лабилизация, проблематизация. Конкретный опыт (КО), который получают участники во время данного упражнения, преобразуется в мыслительные наблюдения (МН) участников. При помощи тренера подводятся итоги, которые приводят к абстрактной концептуализации (АК).
- Загадка, коммуникативная или командная разминка, показательный эксперимент.
- Метафора, афоризм, включение образного мышления, нацеленное на расширение картины мира.
- Создание позитивной установки к конструктивным профессиональным изменениям участников во время тренинга и после него. (Блок не обязательный, но очень полезный).
- Обоснование актуальности теории для участников.
- Позитивная проблематизация, демонстрация примеров, которые показывают возможности использования теории и технологий на практике. Присоединение к конкретному опыту (КО) участников тренинга.
- Теория, абстрактная концептуализация (АК). Объяснение, обоснование и демонстрация теоретических и практических принципов, методов и технологий продаж, переговоров и управления. Сопоставление теории с конкретным опытом (КО) и мыслительными наблюдениями (МН) участников. Приведение примеров использования концепций и технологий, тщательно проработанных и подобранных под специфику бизнеса и деятельности участников тренинга.
- Подготовка к упражнению, деловой или ролевой игре. Использование конкретных сложных ситуаций из реальной практики участников и наложение на данные ситуации технологий продаж, переговоров и управления, которые были рассмотрены в теоретическом блоке. Активное экспериментирование (АЭ) с технологиями при подготовке и адаптация теории под свою специфику. Выбор лучших с точки зрения участников техник и принципов.
- Проведение упражнения, на оттачивание имеющихся и приобретение новых умений и навыков. Экспериментирование (АЭ) во время проигрывания. Реализация заготовленных методов и практика спонтанного, креативного, импровизационного реагирования.
- Обратная связь со стороны участников и тренера. Абстрактная концептуализация (АК) пройденного материала. Позитивная оценка, как командная, так и индивидуальная. Рекомендации, что нужно изменить, чтобы технологии использовались еще более эффективно в реальной практике.
- Короткий итог по поводу технологий, которые были пройдены как теоретически, так и практически. Подведение позитивных итогов.
- Постановка целей на будущее. Побуждение к постоянной тренировке изученных технологий и активному экспериментированию (АЭ), к усилению умений и навыков уже за пределами тренинга. Целесообразно дать короткое самостоятельное задание, в котором участники обдумывают и записывают, где и по отношению к кому, они будут применять изученную технологию в ближайшую неделю, месяц, квартал, полгода или год. Свяжите материал тренинга с реальной работой на максимальном уровне!
- Метафора, афоризм. Образное включение пройденных технологий и концепций в диапазон профессиональных инструментов участников. (Блок не обязательный, но желательный и очень полезный).
- Эмоционально-позитивный итог.
- Целевой итог.
- Командный итог.
- Индивидуальный итог.
Если говорить о сочетании теории и практики, лекций и активной работы участников, то чаще всего 20-30% времени уходит на теорию, а 70-80% – на практику. Конечно, эти цифры не являются догмой. Иногда теории может быть больше, но не более, чем 50%.
Бизнес-тренинг – это активная форма обучения, нацеленная на приобретение новых знаний, формирование новых и оттачивание имеющихся умений и навыков. И в большей степени мы уделяем внимание умениям и навыкам.
Хотя нельзя недооценивать и работу с ценностями и установками (профессиональными, социальными и психологическими) участников на тренинге. Ценности и установки определяют наше поведение. Измени отношение к жизни, и ты изменишь свою жизнь!
Содержание бизнес-тренингаГоворя о структуре тренинга, подчеркнем важный принцип наполнения содержанием. Об этом нужно сказать!
Примеры использования технологий и концепций, преподаваемых на тренинге, должны, как минимум, на 70% учитывать специфику бизнеса и деятельности участников тренинга. Если мы проводим тренинг по проектным продажам IT-технологий, тренеру следует приводить такие примеры, которые отражают как специфику проектных, стратегических, больших продаж, так и специфику самого продукта.
Не надо приводить много примеров из продажи помидоров на рынке, лучше вообще их не приводить. Лучше привести примеры, как продаются другие, аналогичные продукты, допустим, промышленное оборудование.
Разумеется, для расширения картины мира, для лучшего понимания модели можно и нужно иногда пользоваться примерами из других типов продаж и продаж других продуктов. Но это делается только в 10-30% случаев для того, чтобы раскачать мышление и креативность участников.
Для того, чтобы задать вопрос, можем ли мы при известной адаптации использовать данный пример в своей реальной практике.
Если мы проводим тренинг по продажам B2C в магазинах и салонах, то не нужно приводить примеры из оптовых продаж, продаж B2B. Иначе вы вызовете огромное сопротивление у группы, что тренинг «не для них», и даже можете потерять внимание группы.
При проведении тренинга по переговорам, где мы можем рассматривать и переговоры с поставщиками, и коммуникации с коллегами внутри компании, и переговоры с третьими лицам, нужно также учитывать специфику ролей и обсуждаемых вопросов.
Конечно, способность к переносу навыка с одной сферы деятельности на другую у людей может быть сильно развита, но не стоит ее переоценивать.
Управленческие тренинги в этом смысле проводить даже легче. Мой опыт показывает, что руководители чаще имеют более развитую способность к абстрагированию и к переносу технологий из одной сферы в другую. Хотя и здесь лучше приводить больше примеров, учитывающих специфику деятельности и бизнеса участников.
Таким образом, все четыре этапа цикла Колба: конкретный опыт (КО), мыслительные наблюдения (МН), абстрактная концептуализация (АК) и активное экспериментирование (АЭ), – органично вписывают в мою авторскую структуру бизнес-тренинга.
Если вы хотите более подробно ознакомиться с позитивно-гуманистическим структурных подходом к бизнес-тренингу, читайте мою новую книгу «Как вести бизнес-тренинги?».
А если вы хотите заказать для своей компании тренинг по управлению, переговорам или продажам, то звоните или пишите нам, чтобы обсудить конкретные задачи!
Если Вы планируете тренинги для вашей команды посмотрите наши программы.
- Тренинги по продажам и переговорам
- Тренинги по управлению
- Разработка онлайн-курсов для компаний
Мы проводим обучение любого уровня сложности. Будем рады познакомиться!
краткое описание, принципы, примеры и эффективность
Циклом Колба называют одну из моделей, которые используют в процессе обучения взрослых людей (тренинги, курсы, школы). Имя Дэвида Колба, специалиста по психологическим аспектам обучения, стало известно именно благодаря эффективности и действенности разработанной им модели.
Теоретическое основание методики
Д. Колб считал, что обучение как процесс является циклом или своеобразной спиралью, а ее главными составляющими назвал накопление личного опыта с дальнейшим обдумыванием и размышлением и, как результат, действием.
Этапы, которые проходит обучающийся по методике Колба человек:
- Базовый уровень: наличие у человека непосредственного, конкретного опыта в том вопросе, который он планирует изучать.
- Этап рефлексии или мыслительных наблюдений: здесь обучающийся должен обдумать и проанализировать те знания, которыми он обладает.
- Процесс возникновения абстрактной концепции или модели: этап обобщения полученной информации (опыта) и выстраивания конкретной модели. Согласно плану Колба, этот период учебного занятия или тренинга предназначен для генерирования идей, выстраивания взаимосвязей и добавления новой информации о том, как все устроено (о закономерностях в изучаемой сфере).
- Этап активных экспериментов: завершающим элементом занятия становится проверка того, насколько созданная модель или концепция применима к конкретным ситуациям. В итоге у обучающегося формируется совершенно новый опыт. В дальнейшем можно наблюдать замыкание цикла.
Капа — менструальная чаша: размеры, инструкция,…
Лунная (или женская) чаша, как ее иногда называют, на медицинском языке известна как капа…
Цикл Колба: преимущества и сферы применения модели
Описанный метод обучения считается одним из самых эффективных и универсальных. Интересно то, что модель Колба может подойти практически любому человеку, ведь она основана на том, что обучающемуся уже известно. Именно поэтому ее применение настолько результативно.
Этот метод систематизации профессиональных практических или академических знаний и навыков используют крупнейшие компании по всему миру. Цикл Колба, применяемый тренерами личностного роста или преподавателями курсов повышения квалификации, позволяет сотрудникам максимально полно использовать свой потенциал, а также активировать скрытые возможности и способности.
Особенности, характерные для обучения взрослой аудитории
В отличие от педагогики, которая рассматривает специфику работы детской психики в условиях обучения, андрагогика – это наука о том, как преподавателю и тренеру следует работать со взрослыми людьми. Цикл Колба предполагает использование основных принципов андрагогики.
Тип пылесоса циклонный. Что это такое, принцип работы,…
Уборку квартиры тяжело представить без пылесоса. Существует множество разновидностей этой техники….
Отличием «взрослого обучаемого» становится наличие устойчивой мотивации к прохождению тренингов, обучению и саморазвитию. Это неудивительно, ведь многие работающие люди или бизнесмены прекрасно понимают, что новый опыт поможет им более эффективно находить решение профессиональных и личных проблем.
Кроме того, обращаясь к имеющемуся у него опыту, такой человек приносит пользу не только себе, но и другим участникам группы. Общение и обмен информацией обогащают опыт каждого из них.
Последователь Д. Колба: оптимизация модели
Получивший широкое распространение цикл Колба был развит и усовершенствован шведским специалистом по обучению Класом Мелландером. Его цикл выглядит немного иначе и включает такие составляющие:
Что это — фрактальный анализ
Математика как наука предлагает новые методы и способы анализа рыночных коллизий. Прогнозирование…
- Мотивацию (степень восприимчивости и психологической готовности).
- Информацию (образование информации из преобразованных фактов и имеющихся данных).
- Обработку (превращение информации в осознание и опыт).
- Генерацию выводов (переработка осознания и опыта в знание).
- Использование (практическое применение знаний, формирование навыка и подхода).
- Фактор обратной связи (оценка результатов, их оптимизация и новые размышления).
Эта модель больше внимания уделяет процессу преобразования информации, получаемой обучающимся от лектора или тренера, в навыки, которые будут неоднократно применены в дальнейшем.
Цикл Колба в тренинге: структура занятия
Модель, позволяющая эффективно обучать взрослых людей, нашла применение в сфере управления персоналом. Большинство тренингов, направленных на повышение уровня квалификации или обучение сотрудников новым навыкам, построены следующим образом:
- 10 % длительности учебного процесса: выявление мотивации присутствующих, аргументация ценности данного курса (актуализация курса). Это своеобразное вступление позволяет заинтересовать учащихся, сконцентрировать их внимание на теме тренинга, а также указать пользу или необходимость излагаемого материала. Правильно проведенный первый этап во многом определяет успех обучения в целом. Мотивация может быть сформирована с помощью кейсов на проблематизацию, упражнений-вызовов, указывающих участникам на то, что они не обладают навыками и опытом, необходимыми в конкретных ситуациях. Это важнейший инструмент, который предлагает цикл Колба. Пример можно привести следующий: на тренинге по деловому общению и ведению переговоров тренер намеренно провоцирует конфликтную ситуацию между участниками, показывая им, насколько несовершенны их коммуникационные способности и умение анализировать невербальные сигналы собеседника.
- 20 % тренинга: процесс закрепления и повторения того, что уже изучено на занятии. Эта часть обучения позволяет присутствующим сформировать последовательную логическую структуру навыков из несистематизированной информации.
- 50 % учебного процесса: подача и разъяснение новой информации. Этот этап наиболее важен, так как учащиеся получают новые навыки, знания и методики, которые будут нужны им для решения задач, поставленных в начале тренинга.
- 10 % времени: оценка проведенной работы. Здесь тренер оценивает степень и полноту усвоенных участниками знаний. В процессе оценки преподавателю следует исходить из принципов наглядности, справедливости и объективности. Только так оценивание сможет стимулировать аудиторию к дальнейшему обучению. Оценки необязательно должны ставиться тренером, это может делать каждый учащийся или команда.
- 10 % тренинга: выводы. Это этап, на котором тренер получает информацию от учащихся (отзывы, замечания, предложения по усовершенствованию учебного процесса). Последней задачей преподавателя можно назвать формирование у аудитории мотивации к дальнейшему самостоятельному изучению материала.
Адаптация модели для обучения детей
Для использования данной модели учащиеся должны обладать минимальными навыками в какой-либо сфере и иметь желание их развивать. Так как детей обычно обучают «с нуля», в процессе педагогики нечасто применяют цикл Колба. Пример для детского сада может быть следующим:
- Демонстрация красивой поделки из пластилина.
- Обращение к тому, что дети уже умеют делать с этим материалом.
- Иллюстрация алгоритма изготовления поделки.
- Сравнение работ, их оценка.
- Вопросы преподавателя о том, что именно детям понравилось.
Основной опасностью, которая подстерегает тренеров и преподавателей, использующих цикл Колба, становится высокий риск демотивации и возможность снижения самооценки сотрудников или учеников (если полученный в ходе занятия опыт откровенно неудачен). По этой причине тренер должен быть чрезвычайно терпеливым и предусмотрительным. Используя данный метод, необходимо знать правила критики и следить за обратной связью.
Обучение веб-разработке Flask с использованием Python
Способы пройти этот курс
- Онлайн
- Онлайн под руководством инструктора
- На месте
Наша простая в использовании виртуальная платформа позволяет вам проходить курс из дома с живым инструктором. Вы будете следовать тому же расписанию, что и классный курс, и сможете взаимодействовать с тренером и другими делегатами.
- Посмотреть экран тренера
- Виртуальная доска
- Делитесь документами
- Работает на всех устройствах
Наша полностью интерактивная обучающая онлайн-платформа совместима со всеми устройствами и доступна из любого места и в любое время.
Все наши онлайн-курсы имеют стандартную оценку 9.0 дней доступа, который может быть продлен по запросу. Наши опытные инструкторы всегда готовы помочь вам с любыми вопросами, которые могут возникнуть.- Сертификаты предоставляются онлайн
- Получите немедленный доступ при покупке
- Работает на всех устройствах
Что говорят наши клиенты
У Сатиша были ясные мысли, и он отвечал на каждый вопрос с удовлетворением
Тарун Сингх Бхадаурия
Обри — отличный тренер с отличными навыками работы с людьми, мне понравилось работать с ним в желтом и зеленом поясах
Кэтрин Астапчик
Обучение веб-разработке Flask с использованием Python.
Часто задаваемые вопросыВо сколько мне прибыть на место?
Пожалуйста, прибудьте на место в 8:45 утра.
Каковы предварительные условия?
Для посещения этого курса нет предварительных условий.
Кому стоит пройти этот курс?
Этот курс разработан специально для любого разработчика, который хочет использовать самый популярный язык программирования Python в качестве веб-разработчика.
Вы предлагаете поддержку курса?
Мы можем оказать поддержку по телефону и электронной почте до посещения, во время и после курса.
Что входит в курс?
Пакет для делегата, состоящий из заметок по курсу и упражнений, руководства, опытного инструктора и прохладительных напитков
Какова продолжительность этого курса?
Курс длится 1 день.
Как долго я получу информацию о подтверждении курса?
После размещения и подтверждения бронирования вы получите электронное письмо с информацией о месте проведения курса, обзоре курса, материалах для чтения перед курсом (при необходимости), программе курса и квитанциях об оплате
Какова стоимость/плата за обучение веб-разработке Flask с сертификацией Python в США?
Стоимость обучения веб-разработке Flask с сертификацией Python в США начинается от $1495
Какой лучший учебный институт/поставщик обучения веб-разработке Flask с Python в Соединенных Штатах?
Академия знаний является ведущим мировым поставщиком услуг по обучению веб-разработке Flask с помощью Python.
Каковы лучшие курсы Framework Training Courses в Соединенных Штатах?
Почему выбирают нас
Лучшая цена в отрасли
Вы не найдете лучшего предложения на рынке. Если вы найдете более низкую цену, мы снизим ее.
Различные методы доставки
Гибкие методы доставки доступны в зависимости от вашего стиля обучения.
Высококачественные ресурсы
Ресурсы включены для всестороннего обучения.
«Действительно хороший курс и хорошо организованный. Тренер был великолепен с чувством юмора — его опыт позволил провести свободный курс, построенный таким образом, чтобы помочь вам получить как можно больше информацию и соответствующий опыт, помогая вам подготовиться к экзамену»
Джошуа Дэвис, Thames Water
Связанные курсы
Ищете дополнительную информацию об учебных курсах Framework?
Назад к информации о курсе
- Предстоящие занятия
- Пакет специальных предложений
СПОСОБ ДОСТАВКИ
Онлайн под руководством инструктора Онлайн На месте
Машинное обучение Python и прогнозирование с помощью Flask
В этой статье рассказывается об использовании Python в контексте системы машинного обучения или искусственного интеллекта (ИИ) для прогнозирования в реальном времени с помощью Flask REST API. Представленную здесь архитектуру можно рассматривать как путь от проверки концепции (PoC) к минимально жизнеспособному продукту (MVP) для приложений машинного обучения.
Python — не первый выбор, о котором можно подумать при разработке решения для работы в реальном времени. Но поскольку Tensorflow и Scikit-Learn являются одними из наиболее часто используемых библиотек машинного обучения, поддерживаемых Python, их удобно использовать во многих PoC Jupyter Notebook.
Что делает это решение выполнимым, так это тот факт, что обучение занимает много времени по сравнению с прогнозированием. Если рассматривать обучение как процесс просмотра фильма и предсказания ответов на вопросы о нем, то вполне эффективным представляется отсутствие необходимости пересматривать фильм после каждого нового вопроса.
Обучение — это своего рода сжатое представление этого «фильма», а прогнозирование — это извлечение информации из сжатого представления. Это должно быть очень быстро, независимо от того, был ли фильм сложным или длинным.
Давайте реализуем это с помощью быстрого примера [Flask] на Python!
Общая архитектура машинного обучения
Давайте начнем с описания общего потока архитектуры обучения и прогнозирования:
Сначала создается обучающий конвейер для изучения прошлых данных в соответствии с целевой функцией.
Это должно вывести два ключевых элемента:
- Функции разработки признаков : преобразования, используемые во время обучения, должны повторно использоваться во время прогнозирования.
- Параметры модели : окончательно выбранный алгоритм и гиперпараметры должны быть сохранены, чтобы их можно было повторно использовать во время прогнозирования
Обратите внимание, что разработка признаков, выполненная во время обучения, должна быть тщательно сохранена, чтобы ее можно было использовать для прогнозирования. Одна обычная проблема среди многих других, которые могут возникнуть на этом пути, — это масштабирование признаков , которое необходимо для многих алгоритмов.
Если функция X1 масштабируется от значения 1 до 1000 и масштабируется до диапазона [0,1] с помощью функции f(x) = x/max(X1)
, что произойдет, если набор прогнозов будет иметь значение 2000?
Следует заранее подумать о некоторых тщательных корректировках, чтобы функция сопоставления возвращала согласованные выходные данные, которые будут правильно вычисляться во время прогнозирования.
Обучение машинному обучению в сравнении с прогнозированием
Здесь необходимо рассмотреть важный вопрос. Почему мы разделяем обучение и прогнозирование с самого начала?
Абсолютно верно, что в контексте примеров и курсов по машинному обучению, где все данные известны заранее (включая данные, которые необходимо предсказать), очень простой способ построить предиктор — это стек данных обучения и прогнозирования (обычно называемый тестовым набором).
Затем необходимо тренироваться на «тренировочном наборе» и прогнозировать на «тестовом наборе», чтобы получить результаты, в то же время выполняя проектирование признаков как на обучающих, так и на тестовых данных, обучение и прогнозирование в одном и том же и уникальный трубопровод.
Однако в реальных системах у вас обычно есть обучающие данные, и прогнозируемые данные поступают сразу после их обработки. Другими словами, вы смотрите фильм один раз, а потом у вас возникают вопросы по нему, а это значит, что ответы должны быть легкими и быстрыми.
Кроме того, как правило, нет необходимости повторно обучать всю модель каждый раз, когда поступают новые данные, поскольку обучение требует времени (для некоторых наборов изображений может занять несколько недель) и должно быть достаточно стабильным с течением времени.
Вот почему обучение и прогнозирование могут быть или даже должны быть четко разделены во многих системах, и это также лучше отражает то, как обучается интеллектуальная система (искусственная или нет).
Связь с переобучением
Разделение обучения и прогнозирования также является хорошим способом решения проблемы переобучения.
В статистике переоснащение — это «производство анализа, который слишком близко или точно соответствует определенному набору данных и, следовательно, может не соответствовать дополнительным данным или надежно предсказывать будущие наблюдения».
Зеленая линия представляет переобученную модель, а черная линия представляет регуляризованную модель. Хотя зеленая линия лучше всего соответствует обучающим данным, она слишком зависит от этих данных и, вероятно, будет иметь более высокий уровень ошибок на новых невидимых данных по сравнению с черной линией._
Переобучение особенно заметно в наборах данных с большим количеством функций или в наборах данных с ограниченным набором обучающих данных. В обоих случаях данные содержат слишком много информации по сравнению с тем, что может быть проверено предиктором, а некоторые из них могут даже не быть связаны с прогнозируемой переменной. В этом случае сам шум можно интерпретировать как сигнал.
Хороший способ борьбы с переоснащением состоит в том, чтобы тренироваться на части данных и делать прогнозы на другой части, по которой у нас есть истина. Поэтому ожидаемая ошибка для новых данных примерно равна измеренной ошибке для этого набора данных при условии, что данные, на которых мы тренируемся, представляют реальность системы и ее будущие состояния.
Таким образом, если мы разработаем правильный конвейер обучения и прогнозирования вместе с правильным разделением данных, мы не только решим проблему переобучения, но и сможем повторно использовать эту архитектуру для прогнозирования новых данных.
Последним шагом будет контроль того, чтобы ошибка новых данных была такой же, как и ожидалось. Всегда есть сдвиг (фактическая ошибка всегда ниже ожидаемой), и нужно определить, какой сдвиг является приемлемым, но это не тема данной статьи.
REST API для прогнозирования
Именно здесь пригодится четкое разделение обучения и прогнозирования. Если мы сохранили наши методы разработки функций и параметры модели, то мы можем создать простой REST API с этими элементами.
Ключевым здесь является загрузка модели и параметров при запуске API. После запуска и сохранения в памяти каждый вызов API запускает инженерный расчет функций и метод «прогнозирования» алгоритма ML. Оба обычно достаточно быстры, чтобы обеспечить ответ в реальном времени.
API можно спроектировать так, чтобы он принимал один или несколько разных примеров для прогнозирования (пакетные прогнозы).
Вот минимальный код Python/Flask, который реализует этот принцип, с JSON на входе и выходе JSON (вопрос на входе, ответ на выходе):
приложение = фляга (__имя__) @app.route('/api/makecalc/', методы=['POST']) определение makecalc(): """ Функция запускается при каждом вызове API Нет необходимости повторно загружать модель """ # читаем полученный json jsonfile = запрос.get_json() рез = дикт () для ключа в jsonfile.keys(): # вычисляет и предсказывает res[ключ] = model.predict(doTheCalculation(ключ)) # возвращает json-файл вернуть jsonify (рез) если __name__ == '__main__': # Модель загружается при запуске API модель = pickle.load(open('modelfile', 'rb')) app.run(отладка=Истина)
Обратите внимание, что API можно использовать для прогнозирования по новым данным, но я не рекомендую использовать его для обучения модели. Его можно было бы использовать, но это усложняет код обучения модели и может быть более требовательным к ресурсам памяти.
Пример реализации — совместное использование велосипедов
В качестве примера возьмем набор данных Kaggle, совместное использование велосипедов. Скажем, мы компания по прокату велосипедов, которая хочет прогнозировать количество прокатов велосипедов каждый день, чтобы лучше управлять обслуживанием велосипедов, логистикой и другими аспектами бизнеса.
Арендная плата в основном зависит от погодных условий, поэтому с помощью прогноза погоды эта компания может лучше понять, когда будет пик арендной платы, и попытаться избежать технического обслуживания в эти дни.
Сначала мы обучаем модель и сохраняем ее как объект рассола, который можно увидеть в блокноте Jupyter.
Здесь не рассматриваются обучение модели и производительность, это всего лишь пример для понимания всего процесса.
Затем пишем преобразование данных, которое будет выполняться при каждом вызове API:
импортировать numpy как np импортировать панд как pd с даты импорта datetime def doTheCalculation (данные): данные ['dayofyear'] = (данные ['dteday'] - data['dteday']. apply(лямбда x: дата(x.year,1,1)) .astype('datetime64[ns]')).apply(лямбда x: x.days) X = np.array(data[['мгновенный','сезон','год','праздник','будний день','рабочий день', 'weathersit', 'temp', 'atemp', 'гул', 'скорость ветра', 'dayofyear']]) вернуть Х
Это просто вычисление переменной (день года) для включения как месяца, так и точного дня. Существует также выбор столбцов и их соответствующий порядок, который необходимо сохранить.
Нам нужно написать REST API с Flask:
импорт из flask Flask, запрос, перенаправление, url_for, flash, jsonify из features_calculation импортировать doTheCalculation импортировать json, рассол импортировать панд как pd импортировать numpy как np приложение = фляга (__имя__) @app.route('/api/makecalc/', методы=['POST']) определение makecalc(): """ Функция запускается при каждом вызове API """ jsonfile = запрос.get_json() данные = pd.read_json (json.dumps (jsonfile), orient = 'index', convert_dates = ['dteday']) печать (данные) рез = дикт () ypred = model. predict (doTheCalculation (данные)) для i в диапазоне (len (ypred)): res[i] = ypred[i] вернуть jsonify (рез) если __name__ == '__main__': файл модели = 'файл модели.pickle' модель = pickle.load (открыть (файл модели, 'rb')) print("загрузилось нормально") app.run(отладка=Истина)
Запустите эту программу, она по умолчанию будет обслуживать API на порту 5000.
Если мы тестируем запрос локально, все еще с Python:
импортировать запросы, json url = '[http://127.0.0.1:5000/api/makecalc/](http://127.0.0.1:5000/api/makecalc/)' text = json.dumps({"0":{"мгновенный":1,"dteday":"2011-01-01T00:00:00.000Z","сезон":1,"год":0,"месяц" : 1, «праздник»: 0, «будний день»: 6, «рабочий день»: 0, «погода»: 2, «temp»: 0,344167, «atemp»: 0,363625, «гул»: 0,805833, «скорость ветра»: 0,160446 }, "1":{"мгновенный":2,"dteday":"2011-01-02T00:00:00.000Z","сезон":1,"год":0,"мес":1,"праздник": 0, "будний день": 3, "рабочий день": 0, "погода": 2, "темп": 0,363478, "темп": 0,353739,"гул":0,696087,"скорость ветра":0,248539}, "2":{"мгновенный":3,"dteday":"2011-01-03T00:00:00. 000Z","сезон":1,"год":0,"мес":1,"праздник": 0, "день недели": 1, "рабочий день": 1, "погода": 1, "temp": 0,196364, "atemp": 0,189405, "гул": 0,437273, "скорость ветра": 0,248309}})
Запрос содержит всю информацию, переданную модели. Поэтому наша модель будет отвечать прогнозом прокатов велосипедов на указанные даты (здесь их у нас три).
заголовки = {'тип содержимого': 'application/json', 'Accept-Charset': 'UTF-8'} r = request.post (url, данные = текст, заголовки = заголовки) печать (r,r.текст) <Ответ [200]> { «0»: 1063, «1»: 1028, «2»: 1399 }
Вот оно! Эту услугу можно легко использовать в приложении любой компании для планирования технического обслуживания или для того, чтобы пользователи знали о движении велосипедов, спросе и наличии велосипедов напрокат.
Собираем все вместе
Главный недостаток многих систем машинного обучения, особенно PoC, заключается в том, что они смешивают обучение и прогнозирование.
Если они тщательно разделены, прогнозы в реальном времени могут быть выполнены довольно легко для MVP с довольно низкими затратами на разработку и усилиями с помощью Python/Flask, особенно если для многих PoC он изначально был разработан с помощью Scikit-learn, Tensorflow или любая другая библиотека машинного обучения Python.
Тем не менее, это может быть невозможно для всех приложений, особенно для приложений, в которых разработка функций является тяжелой, или приложений, извлекающих наиболее близкое совпадение, которым необходимо иметь самые последние данные, доступные при каждом вызове.
В любом случае, вам нужно смотреть фильмы снова и снова, чтобы ответить на вопросы о них? То же правило применимо и к машинному обучению!
Понимание основ
Что такое REST API?
В контексте веб-служб API RESTful определяются со следующими аспектами: URL-адрес, тип носителя и метод HTTP (GET, POST и т. д.). Их можно использовать как унифицированный способ обмена информацией между приложениями.
Что такое машинное обучение?
Машинное обучение — это разновидность искусственного интеллекта в области компьютерных наук, которая часто использует статистические методы, чтобы дать компьютерам возможность «обучаться» (т. е. постепенно повышать производительность при выполнении конкретной задачи) с данными без явного программирования.