Сообщения

Сообщения за Апрель, 2018

Философия построения machine learning pipeline

Изображение
Философия построения machine learning pipeline
Введение Этим постом мы открываем цикл статей о методологиях построения pipeline в машинном обучении. Здесь вы не найдете погружение в конкретные детали. Наша цель - верхнеуровнево понять, что есть хорошо, а что - плохо. Наша повесть - не о machine learning, а об инфраструктуре, которой вы должны окружить вашу модель для достижения конкретной цели, для удовлетворения бизнес-потребности. Речь пойдет не про ажурные и утонченные архитектуры, красивые сами в себе. Мы поговорим о молотке, которым можно будет забивать гвозди.

Что делает решение успешным? Можно заметить, что зачастую применение простой baseline модели, с умом конечно же, дает ~95% точности суперзаточенного решения под конкретную область. Ниже представлены подходы, которые дают стабильное улучшение. Итак к сути, что же делает конкретное решение эффективным:

Знание множества state-of-the-art алгоритмов? Увлечение инструментом вместо решения задач может создать проблему: мы можем н…

Перенос модели машинного обучения в production

Изображение
Перенос модели машинного обучения в productionВесь код и конфиги из этой статьи доступны в репозитория GitHub. production_ml

Pipeline для построения моделей машинного обучения часто заканчивается на этапе оценки качества модели: вы достигли приемлемой точности и на этом все.

Кроме этого, возможно, вы еще построите красивые графики для вашей статьи/блога или же для вашей внутренней документации.
Замечание: конечно от machine learning engineer не всегда требуется доведение модели до production. И даже если это нужно, эта часто задача делегируется системному администратору.


Однако в настоящее время многие исследователи/инженеры несут (возможно моральную) ответственность за построение полного pipeline: от построения моделей до доведения их до production. Университетский проект это, личным эксперимент или же коммерческий продукт, демонстрация его работы является отличным способом заинтересовать широкую аудиторию. Немногие люди будут прилагать дополнительные усилия для исследования модели ил…

Подготовка данных для алгоритмов машинного обучения

Изображение
Описание стека и некоторые вводные В нашей статье мы будем использовать язык программирования python с сопутствующими ему библиотеки (sklearn, matplotlib, seaborn) и в качестве среды для работы jupyter notebook. Цель текущего поста - показать общие подходы к подготовке данных. То есть, те манипуляции, которые необходимо совершить перед загрузкой данных в модель машинного обучения. В идеальном мире у вас будет абсолютно чистый датасет без выбросов или пропущенных значений. Однако в реальном мире такие наборы данных встречаются крайне редко.
Далее будем рассматривать данные из Kaggle: "Mental Health in Tech Survey".

Первый взгляд на датасет и понимание его специфики Трудно работать с данными, не понимая, что они из себя представляют, поэтому давайте их загрузим и выведем некоторые статистики.
import pandasas pd import numpy as np df = pd.read_csv("survey.csv") df.head()
Это даст нам первое представление о том, что есть наши данные. Далее посмотрим на размеры наших т…