Сообщения

Прикладная кластеризация. Выделение объективных ниш мобильных приложений Apple App Store.

Изображение
Введение Когда очень много приложений – это проблема.

Растущий из года в год рынок мобильных приложений к 2020 году достигнет объема $189 млрд. Только в Apple App Store количество мобильных приложений превысило 3 миллиона, из которых 783 000 приходится на игры, а остальное - на неигровые приложения. И если все игры распределены по 19 игровым категориям (в среднем 41 000 игр на каждую категорию), то 2,3 млн неигровых приложений заключены в рамки всего 24 категорий (почти 96 000 приложений в среднем на категорию).

Проблема пользователя. Приложений очень много, а категорий мало.

С одной стороны, разработчики часто вынуждены размещать свои приложения в категориях, лишь очень приблизительно описывающих их функционал, а с другой - пользователи вынуждены примерять свои потребности к ограниченному количеству статичных категорий, которые существуют в магазинах приложений в практически неизменном виде с момента их открытия. Не найти, не заметить или пропустить нужное приложение в такой ситуац…

Выбор метрики в машинном обучении

Изображение
Как выбрать метрики для валидации результата Machine Learning 
Главные шаги по выбору метрики 
Следует заметить, что метрика, которую мы оптимизируем и метрика, по которой определяем качество модели, - как правило, разные. Ниже рассмотрим метрики, которые мы в том или ином виде можем оптимизировать непосредственно в модели. За метрики, которыми мы оцениваем результат работы модели, можно принять исходные бизнес-метрики.

Понимание бизнес задачи Из исходных предпосылок нужно выделить, какого типа задачу мы решаем. Основные типы задач:

Классификация. Ваш алгоритм будет предсказывать тип данных из заданного множества. Например говорить да/нет/не уверен. Регрессия. Алгоритм будет предсказывать какие-либо числа. Например, завтрашнюю температуру. Ранжирование. Модель будет предсказывать порядок элементов. Например, нам дали учебный класс и мы должны проранжировать учеников по росту, то есть, упорядочить их от самого высокого, до самого низкого.

Мы решаем задачу нахождения математическая метр…

Философия построения 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()
Это даст нам первое представление о том, что есть наши данные. Далее посмотрим на размеры наших т…