Показаны сообщения с ярлыком машинное обучение. Показать все сообщения
Показаны сообщения с ярлыком машинное обучение. Показать все сообщения

МТС поможет НИУ ВШЭ готовить специалистов по машинному обучению

МТС объявляет об открытии базовой кафедры по направлению глубинного машинного обучения на факультете компьютерных наук НИУ ВШЭ. Первые 500 студентов приступят к занятиям 1 сентября. В основе обучения будут кейсы компаний, входящих в экосистему МТС. Лучшим студентам обещана стажировка в МТС Диджитал и оффер компании. 


Базовая кафедра МТС будет работать по трем основным направлениям: генеративные модели искусственного интеллекта, Big Data и работа с данными, а также создание и поддержка инфраструктуры для больших данных. Преподавать будут лучшие специалисты компании с практическим опытом в сфере больших данных и Deep Learning. В рамках программы предусмотрены лекции по генеративным моделям ИИ, технологиям обработки звука, компьютерному зрению и другим направлениям. Оператор обещает проводить конкурсы и хакатоны с призовым фондом. 

«С Высшей школой экономики мы сотрудничаем уже не первый год и с каждым новым проектом стараемся всё больше актуализировать и масштабировать учебные программы. Генеративный искусственный интеллект — это важнейший тренд современных технологий, который радикально поменяет жизнь людей в ближайшие несколько лет. Очень важно освоить работу с сетями-трансформерами и сверточными нейросетями сейчас, чтобы уверенно себя чувствовать в будущем и создавать его. Мы рады, что можем дать эту возможность студентам ВШЭ», — прокомментировал Павел Воронин, первый вице-президент по технологиям МТС

Ранее МТС также запустила два курса на базе факультета компьютерных наук: «Разработка микросервисов на Golang» и «DevOps: методология и практика» - оба входят в перечень обязательных дисциплин по выбору. MTS AI - один из трех партнеров центра ИИ НИУ ВШЭ. 


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

-- 

Курс ML и Big Data завершен. Жизнь продолжается

Сегодня у меня было последнее занятие в Школе Данных Билайн. 10 недель - много вечеров занятий и несколько ночей до рассвета с выполнением домашек. Пришлось прицепом закончить еще и курс Python на Coursera, чтобы не чувствовать себя совсем уже гуманитарием среди профи. В общем, гранит было грызть не слишком просто. 


Школа данных Билайн

На руках симпатичный диплом. К бумажкам такого рода у меня нет особого почтения, свои навыки надо доказывать в деле, а не красивыми картиниками. Не скажу, что я заслужил этот диплом в полном объеме и могу идти работать по новой специальности. Что могу утверждать - это то, что у меня сформировалась понятийная структура в этой области, прояснился ряд вопросов, связанных с анализом соцсетей, текста, методами машинного обучения и даже в области построения кластера Hadoop, а также в том, насколько его вообще нужно строить :).

Было приятно вновь чему-то учиться, уже подзабытое ощущение. И, надеюсь, не без пользы для будущего провел это время.

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

- Пополнил свою "аллею славы" - http://www.mforum.ru/090976.htm ;
- Мои анонсы-отзывы о Школе данных Билайн: http://abloud.blogspot.ru/
- Официальный сайт Школы данных Билайн http://bigdata.beeline.digital/

Big Data. Чтобы было на втором занятии курса Data-MBA

Вчера вечером был на втором занятии курса Data-MBA Школы Билайн. Рассказываю, что обсуждалось, насколько было интересно. 


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

Второй час ушел на инструменты анализа данных - в отношении "малых данных" поговорили о Rapid Miner, Weka, SAS Miner, Python и R.

Вскоре перешли непосредственно к Big Data - стеку Hadoop, HDFS, Map Reduce, Zoo Keeper, Oozie, Azkaban, Qqoop. Flume, Kafka, Hbase, Cassandra, Hive и Pig, Apache Spark. Конечно, это все галопом, буквально по нескольку минут на продукт, только, чтобы вписать его в "понятийную решетку".  О Vowpal Wabbit и яндексовом Matrix Net.

Затем подробнее разбирали бизнес-процесс работы с ML / Big Data. От идеи и бизнес-требований к формальным требованиям, определению данных, выгрузке данных и их предобработке, построению моделей, пользе пилотов.

Затронули тему подготовки специалистов в области Big Data. Чего от них хотеть, чего ожидать.

Напоследок занялись всем известным Титаником, обращая внимание на подходы к решению - тестам простых гипотез, заполнение пропусков в данных.

Решили задержаться сверх обещанных двух часов и поговорили об обработке текстов методами ML - Bag of Words, Document Term Matrix, WordZVep - вот этом всём.

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

Занятие, как и первое, проводил Александр Крот.

Для интересующихся темой, рекомендую чтение: http://papers.nips.cc/paper/5656-hidden-technical-debt-in-machine-learning-systems.pdf (англ.) - хороший текст для тех, кто думает, что ML - это что-то типа "волшебной палочки".

+ +

BigData в тренде - экс-мегафоновцы собираются торговать аналитикой данных

О планах компании "Единый фактор" читайте в Ведомостях. Компанией занимаются Михаил Дубин, совсем недавно работавший в МегаФон первым замом, а также Роман Постников, также хорошо известный на рынке BigData в связи с попытками МегаФона заниматься коммерческими проектами, связанными с геолокационными данными абонентов компании (не пугайтесь, это законно - речь об обезличенной информации).


 Источник: Wikibon-2014 

В Едином факторе надеются получить инвестирование холдинга UCM в обмен на пакет акций компании.  Ранее МегаФон заявлял, что направление BigData приносит компании до 1% выручки. Интересно, какая часть выручки теперь уйдет в Единый фактор?

Впрочем, не стоит считать, что в Едином факторе намереваются паразитировать на данных, собираемых с сети МегаФон. Новая компания готов обрабатывать и анализировать данные сторонних компаний, в частности, методами машинного обучения (в России, правда, не очень любят делиться чувствительной информацией, зачастую проще нанять людей, способных заниматься аналитикой в структуре компании),  а также заниматься разработками в области ИИ.

Сейчас только самые неспешные компании еще не обзавелись собственными структурами по анализу данных современными способами - такие структуры есть в Билайн, МегаФон, МТС, Mail.ru, Yandex и т.д. Интересно, что МегаФон уже закупает у Единого фактора софт - для услуг на базе машинного обучения и геопространственного анализа. Странная модель.

В Mail.ru, например, как и в Билайне, обработкой BigData и ML занимаются подразделения внутри компании. Кстати, в Mail.ru подразделение работает не только в интересах компании, но и с другими компаниями из разных секторов. А подразделение в Билайн не только работает со структурами правительства Москвы, предоставляя те самые, агрегированные данные, как и МегаФон. Также открыта Школа данных Билайн, где на вечерних курсы по ML (машинному обучению) занимаются программисты, аналитики, а с 16-го февраля начнут заниматься менеджеры. Об этих занятих я писал, см., например, здесь.

В целом, направление ML и BigData - стратегически важное, как для компаний сотовой связи, так и для множества других компаний. Вряд ли крупному и среднему бизнесу можно будет и далее обходиться без собственного отдела, занимающегося аналитикой больших данных уже в самые ближайшие годы. Да и сегодня работа для него найдется.  А менеджменту неплохо бы подразобраться в теме, чтобы понимать, какие задачи можно ставить перед таким отделом.
 
+ +

Школа данных Билайн - курс для менеджеров, подробности

Я уже анонсировал Курс Data-MBA для менеджеров, который запускает Школа данных Билайн с 16 февраля 2016 года. Сегодня вышел анонс с подробностями об этом курсе на Хабре, рекомендую взглянуть. 


В анонсе поясняется, чем этот курс отличается от курса для аналитиков и зачем вообще менеджменту компании, как высшему, так и среднему звену, нужно знакомиться с аналитикой больших данных, ее возможностями и инструментами.  

Планирую участвовать в нескольких первых занятиях, чтобы сравнить курс, что прохожу сейчас (для аналитиков), и новый курс, адресованный менеджерам. Благо в новом курсе нет домашних заданий на выполнение которых, признаться, времени совсем не хватает. Не требуется и особой предварительной подготовки к Data-MBA - все обещают рассказать на занятиях. Стоимость курса для менеджеров такая же, как и для аналитиков, все те же 100 тысяч рублей. Записаться на курс можно здесь до 12 февраля. 

+ + 



Школа данных Билайн. Как прошло мое 3-е занятие

Рассказываю о Школе данных Билайн, где слушаю курс "Введение в машинное обучение". Делюсь впечатлениями о третьем занятии. 



Как и предыдущие, третье занятие проходило весьма энергично. Начали с обсуждения домашнего задания. Мне оно показалось сложным, сказывается отсутствие знакомства с пакетами Pandas и Seaborn. Хотя потратил часов 15, так и не смог все задачи решить. Кроме того, некоторые задания были сформулированы так, что можно было трактовать их по-разному. Также участники высказали пожелания уделять меньше внимания теоретическим вопросам типа обзора задач Линейной алгебры и больше - практическим аспектам решения этих задач.

Организаторы в свою очередь простимулировали работу с домашними заданиями, пообещав победителю приз - камеру GoPro. Мне не светит, т.к. не все получается сделать, да и времени категорически не хватает на выполнение домашних заданий. Первые задания вроде получилось сделать приемлемо, но дальше, думаю, неизбежно сползу вниз в ренкинге.



По нашей просьбе лектор еще раз "пробежался" по основным методам библиотеки Seaborn.

В Seaborn вместо гистограммы используется .distplot(dataframe_name['параметр'], kde=False)
Параметр отобразится по оси абсцисс.


Можно оси подписать .axlabel и задать стиль раскраски .set_style

sns.distplot(girls['Height'], kde=False)
sns.axlabel('Playboy girls height', 'Frequency')
sns.set_style('darkgrid')

Получим еще более симпатичный график


Еще одна удобная и распространенная визуализация - это .boxplot или "ящик с усами". Строится зависимость непрерывного признака от категориального.

Убедившись, что все данные в наборе численные, можем сформировать три категории весов и построить боксплот. Создаем правило weight_category и применяем его к столбцу Weight из датафрейма girls. Затем строим боксплот на базе сформированных категорий. Можно наблюдать зависимость роста и весовых категорий девушек. Очевидно, что где девушки потяжелее, там они и выше.

def weight_category(weight):
    return 'heavier' if weight > 54\
            else 'lighter' if weight < 49 else 'median'

girls['weight_cat'] = girls['Weight'].apply(weight_category)
sns.boxplot(x='weight_cat', y='Height', data=girls)


Рассмотрели пример анализа данных из научной статьи, к которой был дан небольшой набор наблюдений.

Скачиваем data frame.
Можно посмотреть - в табличке всего 7 наблюдений, автор статьи усматривает в них некоторую зависимость.



Понятно, что 7 наблюдений маловато для того, чтобы строить какие-то модели, но нам для тренировки подойдет.

Выполним сортировку по Score

df.sort_values('Score', 
               ascending=False, 
               inplace=True) 

Посмотрим на статистику

df.describe().T 



Можно нарисовать boxplot методами Pandas.Пользуемся надстройкой над методом mathplotlib. Задаем аргумент box, чтобы боксплот нарисовать для признаков Drugs и Score. Можно наблюдать средние, медианные значения, выбросы.

df.plot(kind='box') 



Если изменить аргумент функции на 'bar', получим столбчатую диаграмму, где значения Score показаны в зависимости от признака Drugs.

df.plot(x='Drugs', y='Score', kind='bar') 


Лучше всего зависимость видна на скаттер графике, здесь тенденция вполне проявлена.

df.plot(x='Drugs', y='Score', kind='scatter') 


Pandas позволяет быстро строить различные графики, например, чтобы построить в Pandas гистограмму, достаточно будет строки:

df['Drugs'].gist()

Можно оценить корреляцию Пирсона, получаем весьма сильную корреляцию -0.93.

df.corr(method='pearson')


Возможен также JointPlot, но это уже, как говорится "подробности".

# sns.regplot(x='Drugs', y='Score', data=df)
sns.jointplot(x='Drugs', y='Score', 
              data=df, kind='reg')

Чтобы вы представляли себе темп, с которым идет занятие, на всю вступительную часть ушло порядка 13 минут.

Далее приступили к практике по визуализации и первичному анализу данных. Нужно было построить образцы гистограмм, боксплотов и т.п. картинки на основе датафрейма, созданного на основе известного соревнования Kaggle Titanic. Работать можно либо в облаке SageMathCloud, либо на своем ноуте, где установлена сборка Jupyter. Задания для работы в класса и домашку нам раздают через облако, также для локального использования данные дублируют на Yandex.Диск.

Итак, что же предлагалось сделать:


Считываю обучающую выборку в train_df , с этим pandas-датафреймом и буду теперь работать.

Смотрю, как оформлены данные в датафрейме - .head(10) извлекает из датафрейма первые 10 строк с заголовками столбцов.


Приглядимся к таблице подробнее, функция .describe(include='all') выдает краткую первичную статистику по базе данных. Поскольку видно, что признаки Age и Embarked содержат пропуски, заполняем их медианными значениями, используя функции .fillna и .median()  Медианные значения для Age берем из обучающей выборки. Для параметра Embarked заполняем пропуски значением 'S', как самым распространенным. 


Нетрудно построить попарные зависимости признаков, например, с использованием библиотеки Seaborn. Это предлагается сделать самостоятельно.  В коде .set_palette отвечает за палитру цветов результатов, а сиборновский .pairplot , как мы уже знаем, выдает набор графиков зависимостей для всех пар параметров, заданных как аргументы функции.


Далее требовалось визуализировать зависимость величины платы за проезд и класса каюты, которую получил пассажир.

Вначале я написал неправильный вариант кода, перепутав местами x и y.

sns.boxplot(x='Fare', y='Pclass', data=train_df)



Нужно строить зависимость непрерывного признака от критериального, т.е.

sns.boxplot(x='Pclass', y='Fare', data=train_df)


Вот только все равно boxplot получается не очень красивым из-за выбросов в данных, когда цена билета слишком сильно отличалась от средней цены по классу.

Предлагаемое в тетрадке решение: создайте признак Fare_no_out - стоимости без выбросов, в котором исключаются стоимости, отличающиеся от средней по классу более чем на 3 стандартных отклонения. Важно: Надо исключать выбросы именно в зависимости от класса каюты. Иначе исключаться будут только самые большие (1 класс) и малые (3 класс) стоимости.

С этим можно справиться, если создать новый признак - Fare_no_out - содержащий стоимость билетов, не включая те, что отличаются от средней цены более, чем на три стандартных отклонения. При этом важно учитывать зависимость от класса каюты, т.е. делать это отдельно для каждого класса. Иначе отфильтруются не выбросы внутри класса, а цены билетов 1-го и 3-го классов.

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


А я перешел к следующему пункту: Каково соотношение погибших и выживших в зависимости от пола? Отобразите c помощью Seaborn.countplot c аргументом hue.

Для визуализации соотношений удобно использовать "каунтплоты" .countplot(x='Параметр1', hue= 'Параметр2', data=имя_датафрейма), которые показывают зависимости по двум категориальным признакам, названия параметров указываются по осям и в "легенде".

Видно, что женщин в процентном отношении выжило существенно больше, чем мужчин.

Как я уже говорил, темп занятия очень высокий, поэтому к этому моменту мы завершили практику, а у меня остались не выполненными еще два пункта.


На самом деле решение было простым, но это я уже дома доразобрался.

sns.countplot(x='Pclass', hue='Survived', data=train_df)

Видим, что в 3-м классе выживали намного меньше, чем во-втором, а наибольшую выживаемость демонстрируют пассажиры первого класса - они и к шлюпкам были ближе, и спасали их в первую очередь.

Графическая проверка зависимости выживания от возраста

train_df.plot(x='Survived', y='Age', kind='box')

или куда более наглядный вариант с Seaborn:

sns.boxplot(x='Survived', y='Age', data=train_df) 

Здесь отлично видно, что возраст практически не влиял на то, выживет пассажир или нет.

С вычислением Fare_no_out я не справился.

Для понимания темпов - до этого места нужно было добраться за 33 минуты от начала занятия.

Далее Юрий Кашницкий, который читает нам этот блок лекций, быстро пробежался по решению задач.

с 37-й минуты. Начался разбор новой темы:

Обучение с учителем. Задачи классификации и регрессии
  • Практическое задание. Визуальный анализ данных пассажиров "Титаника"
  • Обзор библиотеки Scikit-learn
  • Дерево решений в задаче классификации
  • Дерево решений в соревновании Kaggle Inclass по автострахованию
  • Извлечение признаков. Пример с набором данных Titanic
  • Домашнее задание 3. Дерево решений и случайный лес в задаче предсказания выживания пассажиров "Титаника"
Дальше не буду подробно рассказывать о том, что происходило в следующие 2 часа. (Да, мы постоянно выходим за границы официальных 2 часов занятия на 20-30 минут, материалов действительно много, иногда возникают вопросы у обучаемых и в итоге задержка получается с завидным постоянством).

Поговорили об основных алгоритмах, поддерживаемых библиотекой Scikit-learn.
  • Линейные модели (Ridge, Lasso, Elastic Net, ...)
  • Ансамбли (случайный лес, бэггинг, градиентный бустинг, ...)
  • Машина опорных векторов (SVM)
  • k ближайших соседей (kNN)
И о шпаргалке, подсказывающей выбор алгоритма


О том, что в scikit-learn удобный API, что позволяет писать собственные классы - достаточно скормить алгоритму обучающую выборку

class Estimator(object):
    def fit(self, X, y=None):
        """Fits estimator to data."""
        # set state of ``self``
        return self

и написать как, собственно, алгоритм будет предсказывать то, что требуется.

def predict(self, X):
        """Predict response of ``X``."""
        # compute predictions ``pred``
        return pred

Очень бегло нам рассказали об SVM, а заодно о наборах данных USI Machine Learning repositary  http://archive.ics.uci.edu/ml/ очень популярных в машинном обучении.

и далее совсем кратко.

с 43-й минуты. Пробежались по теме кросс-валидации результатов, опасности переобучения, вариантах выделения тестовой выборки, вот об этом всём, выборе k.

с 60-й минуты. Обсудили "дерево решений".  Почему они популярны. Кредитный скоринг. Игра в 20 вопросов. Энтропия Шеннона. Пример предсказания цвета шарика по координате. Интерпретируемость методов (случайный лес - не интерпретируемый).

с 77-й минуты. Перешли к примерам алгоритмов, реализующим дерево решений. DecisionTreeClassifier. Predict. Прямые линии границ у бинарных деревьев. Дерево решений может также предсказывать вероятности. Зачем рубят деревья. Плюсы и минусы деревьев решений. Проблема XOR.

с 88-й минуты. Пример применения алгоритма дерева решений к страхованию автомобилей. Подготовка данных. Навеска меток (scikit-learn не умеет работать с категориальными признаками). Добавление dummy-переменных. Проблема непопадания данных для ряда брендов. Добавление колонок с нулевыми данными. Глубина дерева. Как формировать данные для отсылки результатов на Kaggle. Фунция .gini (Джини импьюрити). Вывод дерева в формате .pdf  Отправка файла на Kaggle.

со 115-й минуты. Функция GridSearchCV и ее применение. Распараллеливание процессов. Приходим к дереву глубины 3. Обучение случайного леса. Параметры.

со 122-й минуты вернулись к примеру Титаник. Поговорили о составлении обучающей и тестовой выборок. Попробовали на выборке алгоритм Случайный лес. Что можно "вытащить" из исходных признаков? Создание нового категориального признака, заменяющего числовой признак.

с 127-й минута.  "Пробежались" по домашнему заданию. Нужно будет с теми же данными Титаника разобраться, как обучить дерево решений, как настроить его параметры, как обучить случайный лес. Проверили все ли зарегистрировались на Kaggle. Рассказали подробнее об устройстве соревнований Kaggle.

134-я минута. Занятие завершилось.

Надеюсь, вы получили неплохое представление о том, что происходит на занятиях по теме "Машинное обучение" в Школе Данных Билайн. Пожелайте мне успехов в прохождении курса!

+ +

Также по теме:

- Анонсы: Data-MBA для менеджеров и бизнесменов (c 16 февраля)
- Школа данных Билайн. Как прошло мое первое занятие
- Анонсы: Завтра у меня первое занятие в Школе данных Билайн

UPD:

Отправил свое домашнее задание на соревнования Kaggle




Обучение: Data-MBA для менеджеров и бизнесменов

Вы уже знаете, что с января я слушаю лекции в Школе данных Билайн по теме машинное обучение. Это курс для Data scientists и тех, кто ими хочет стать. В Школе данных подготовлен и другой курс, Data-MBA. Он адресован менеджерам, заказчикам и владельцам бизнесов и не требует для освоения математического образования и специальной подготовки, но позволяет "приобщиться к теме" аналитики данных, Big Data и машинного обучения. 


Зачем это "руководству"? На рынке все чаще появляются предложения по использованию аналитики данных в бизнесе. Перед менеджерами, заказчиками и владельцами бизнесов все чаще встают вопросы эффективной организации работы по анализу данных, выбору решений и контролю процесса. Научить разбираться в теме обещают в Школе Билайн. Эксперты расскажут о возможностях применения машинного обучения и анализа больших данных.

Обучение построено на разборе примеров решения бизнес-задач с применением конкретных инструментов. 

Занятия пройдут в Москве, начиная с 16 февраля 2016 года, по вторникам и четвергам с 19 часов вечера по адресу Краснопролетарская д.4, продолжительность - 5 недель. Стоимость - 100 тыс. руб. Подробности.  Продолжительность занятия - порядка 2 часов. 

+ +

Мне обещали возможность послушать несколько занятий этого курса, чтобы сравнить его с тем, на котором я обучаюсь. Постараюсь отписаться в той же манере, что и про свой курс.

Школа данных Билайн. Как прошло мое первое занятие

Рассказываю о Школе данных Билайн, где слушаю курс "Введение в машинное обучение". Делюсь впечатлениями о первом занятии.



Впечатления от первого занятия получил яркие! По-сравнению с теми лекциями, с которыми сталкивался раньше, темп намного выше, не успеваю записывать конспект. Кроме того, лекция - это отнюдь не попытка "надиктовать" некое готовое содержание учащимся. Нет, это частично диалог - когда преподаватель бросает в аудиторию вопрос и хочет немедленно получить на него ответ, а частично трансляция практического опыта применения теоретических сведений, которые (предположительно) уже имеет аудитория.

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

Кто и зачем пришел учиться? 

Часть тех, кто записался на курс - это сотрудники крупных компаний. Часть людей - "физики", работающие в различных бизнесах, которые отправили себя на учебу самостоятельно и за свой счет. Кому-то освоить тему нужно по-работе, кто-то пришел, поскольку тема интересна и хочется повысить эрудицию. Учатся также люди из Киева - они участвуют в занятиях дистанционно в режиме видеоконференции.

Мне показалась особенно интересной мотивация участников, вот несколько "кейсов", которые я записал, когда участники представлялись друг-другу. Проверьте, не найдете ли вы свой случай?

Занимаюсь автоматизацией, IT-шник в агентстве по ипотечному кредитованию. Профессия немного отличается. Машинное обучение - не моя область, но я этой темой интересуюсь несколько последних лет. Иногда вижу "точки пересечения" с тем, что делаю на работе. Поэтому хотелось бы разобраться в теме глубже, чтобы затем решать свои задачи. 

Работаю в дочернем подразделении известного интернет-поисковика. Хотелось бы на практике попробовать решения задач типа прогнозирования показателей оттока, роста числа клиентов. 

Продуктовый аналитик в стартапе. Практически нет пересечений с моей работой, машинное обучение интересует в качестве хобби. 

Аналитик известной системы онлайн-обучения английскому языку. Мы уже на работе решаем задачи, связанные с машинным обучением, по оттоку, рекомендательные системы. Хочется пройти интересный курс, надеюсь углубить текущие знания.

Новостной интернет-ресурс, отвечая на нем за все digital-активности, включая машинное обучение. Для меня это прямая специальность. Хочется расширить свои знания.  

Работаю в операторе сотовой связи. Новый IT-директор ставит задачи внедрения машинного обучения. Будем вплотную этим заниматься. Так что нужны знания для практического их применения.

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

Занимаюсь аналитикой ценообразования в крупной розничной продуктовой сети.  Хотелось бы больше применять методы машинного обучения   в моей работе. Поэтому я здесь. 

Работаю в крупном зарубежном автопроизводителе. Машинное обучение никак не связано с моей работой. Просто тема очень любопытна. 

Работаю в социальной сети. Борюсь там со спамом. Очень много где можно в моей работе применить машинное обучение. Хотелось бы получить практические знания. 

Работаю в компании решений для авто навигации, включая автомобильную навигацию, моделирование поведения водителей. Мне кажется в этой области можно будет применить технологии машинного обучения. 

Интернет-агентство. Машинное обучение интересно с точки зрения анализа поведения пользователей на сайте во время рекламных кампаний. Поэтому я здесь.

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

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

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

Системный администратор хранилища данных телеком-компании. С машинным обучением пока не сталкивался, интересно вникнуть. 

Первое занятие

Первое занятие проводил Александр Крот, тема - Введение в теорию машинного обучения.

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

По-прикладным задачам, которые решает "машинное обучение", их можно разделить на много сегментов. Мы не будем изучать целый ряд сегментов, например, анализ изображений и видео (computer vision), не уделим время анализу аудиосигналов (signal processing), оставим за бортом обработку естественного языка (natural language processing) тем более, что в этой области применительно к русскому языку пока все слабо развито. В общем в сферу deep learning не пойдем, но поговорим об обработке текстов, анализе соцсетей

На первом занятии начали практически от печки - что делает машинное обучение с объектами на основе признаков, чем отличается обучение с учителем от обучения без учителя (в понятиях машинного обучения). Вспомнили, что такое класификация, регрессия и кластеризация и KMeans.

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

Немало внимания было уделено инструментам анализа данных. Причем, когда об этом зашла речь, то четко провели разграничение - какие из инструментов и для чего уместно использовать.
Скажем, если речь о хранении и обработки BigData, то это Hadoop и Spark.
А если речь о работе с обучающими выборками (куда меньшими по объемам), то уместны совсем иные продукты, такие, как RapidMiner, Weka, языки программирования Python (с Jupyter и библиотеками scikit-learn) и R (RStudio) - все менее популярный.

Если все же нужно работать с Big Data, то это файловая система HDFS и модель вычислений MarReduce. Для работы с ними есть целый набор инструментария: ZooKeeper, Ooze, Azkaban, Scoop, Flume, Kafka, Hbase, Cassandra, Hive, Pig, NameNode. Про каждый продукт коротко прошлись - чем от других отличается и где уместен.

Конечно упомянули и in-memory, Apache Spark. Поговорили о том, как обойтись без кластера и что делать, если даные не лезут в память - Vowpal Wabbit и доучивание.

Затем подробно говорили о бизнес-процессе разработки продукта.

Поговорили на тему подготовки специалистов в областях Data Science и Big Data. Какая нужна подготовка (математика, мат.статистика, навыки программирования), что затем следует выучить. Навыки программирования нужны минимальные (по крайней мере для аналитиков - им достаточно научиться писать грамотные запросы на Python, SQL, R).

Пояснили почему так важна практика, в частности, практика построения алгоритмов. Важно понимать, какие задачи хорошо решаются, т.к. решаются не все задачи. Что в книгах далеко не все описывается, например, где и как искать обучающую выборку, какие признаки использовать для конкретной задачи, как разбивать данные.

Это все было забито в мой мозг и сверху притоптано за 120 минут времени. На деле пришлось задержаться еще минут на 20, чтобы Александр Крот успел дорассказать все, что планировал дать нам на первом занятии.

Отступление на тему "сколько стоят все эти чудеса"? 

Вопрос стоимости почему-то все время поднимается, когда я пишу про Школу данных Билайн. Предупреждая вопросы тех, кто их еще не задал - да, обучение на курсе стоит 100 000 (сто тысяч) российских рублей. С одной стороны, это немалые деньги, а с другой мой MBA-курс в ВШЭ стоил и вовсе $7 тысяч. "Свет знаний" стоит немало... бесплатно можно полежать на диване с бутылочкой пива. Вопрос личного выбора. 

О моих впечатлениях от занятия

Абсолютное большинство учащихся в группе с темой на этом уровне уже знакомо, многие хотели бы вводное занятие если не пропустить, то проскроллить намного быстрее. Мне же, даже при том, что знакомство с темой не нулевое, все равно было непросто все усваивать в таком темпе. Конспект потянул на 20 тысяч симоволов! А прочитать не спеша и подробнее "на досуге" - тоже кажется сейчас нереалистичным.

Между тем, домашку действительно задали и при первом взгляде на некоторые вопросы, я пока не знаю, как подойтик к решению. И это мы еще не добрались до тем, требующих программирования! При том, что я не более процентов 40-50% введения в Python прочел/прорешал примитивные задачки.
Ладно, пока рано пугаться, еще есть среда и четверг, чтобы во всем разобраться. :)

+ +

Раньше на эту тему написал здесь - там есть еще полезные подробности для тех, кого тема заинтересовала.

Завтра у меня первое занятие в Школе данных Билайн

Завтра у меня первое занятие в Школе данных Билайн - Введение в машинное обучение. Основные типы задач и методы их решения.


Получил песочницу для запуска скриптов на cloud.sagemath.com


Поставил себе сборку Python 3.5 (Anaconda3 для Windows), а также интерпретатор Jupyter в котором можно меняться документами, а также выполнять код Python. Поставил среду разработчика PyCharm EDU 2.0.3 компании JetBrains. 

Первое занятие будет проводить преподаватель ФКН НИУ ВШЭ Юрий Кашницкий.

План занятия:

  • Введение в машинное обучение, необходимые навыки
  • Задачи классификации, регрессии и кластеризации
  • Краткий обзор Kaggle
  • Открытие соревнования Kaggle Inclass
  • Знакомство с набором данных по автострахованию этого соревнования
  • Деревья решений
  • Применение дерева решений Scikit-learn к синтетическому набору данных и к данным из контеста Kaggle Inclass
  • Настройка параметров дерева, кросс-валидация
  • Пример извлечения признака для набора данных соревнования "Titanic: Machine Learning from Disaster"
  • Практика на применение дерева решений и случайного леса к набору данных Titanic


Программа курса.
  • 1 занятие. «Введение в машинное обучение. Основные типы задач и методы их решения»
  • 2 занятие. «Библиотеки и инструменты для анализа данных. Математика в машинном обучении»
  • 3 занятие. «Обучение с учителем. Задачи классификации и регрессии»
  • 4 занятие. «Оценка качества алгоритмов машинного обучения»
  • 5 занятие«Продвинутые методы классификации и регрессии. Переобучение». Теория
  • 6 занятие«Продвинутые методы классификации и регрессии. Переобучение». Практика
  • 7 занятие«Обучение без учителя»
  • занятие. «Анализ социальных сетей». Теория
  • 9 занятие. «Анализ социальных сетей». Практика
  • 10 занятие«Обнаружение знаний в данных»
  • 11 занятие. «Рекомендательные системы»
  • 12 занятие«Обработка текстов». Теория
  • 13 занятие. «Обработка текстов». Практика
  • 14 занятие. «Введение в анализ больших данных и масштабируемое машинное обучение». Теория
  • 15 занятие. «Введение в анализ больших данных и масштабируемое машинное обучение». Практика
  • 16 занятие. «Альтернатива Большим Данным. Large Scale Machine Learning. Обзор инструмента vowpal wabbit»
  • 17 занятие. «Соревнования по анализу данных». Теория
  • 18 занятие. «Соревнования по анализу данных». Практика 

Курс лекций по теме "Машинное обучение" можно найти, например, здесь. Еще домашние задания обещают. Но когда же их делать? В общем, сон на ближайший семестр наверное отменяется.

Популярные сообщения

Translate