Задание по Azure ML для участников конференции Хакатон 2015

Необходимо решить всего две задачи: первую — обязательно, и одну из задач (вторую или третью) — на выбор. Если получится сделать три задачи еще лучше!

Вопросы к заданию и отзывы по функциональности Azure ML можно также писать в этом блоге (в комментариях).

Параметры подключения к данным

Параметры подключения к данным заданий для конференции Hackathon 2015 ML приведены ниже. Это Blob Storage, к которому можно обратиться через Reader в рамках эксперимента Azure ML.

STORAGE ACCOUNT NAME: hackathon2015ml

PRIMARY ACCESS KEY (нужно объединить символы в одну строку):

ZD/Ad7agUVGkYay2hoLE6saxvJGum8hAmWj42QKh87sOz 8VGMwpXR4bdyZR842lsijFjCPfnrzq55DarQ/VMZw==

Задание 1. Предсказание выплат по авариям

Предсказать маленькая или большая сумма выплаты при попадания водителя в аварию (исходя из имеющейся информации: штрафы, марки авто). Прогнозируем значение колонки «Возмещено» (1 — мало выплат по авариям, 2 — много выплат по авариям). Модель должна предсказывать значение поля «Возмещено» для всех строк набора данных.

Исходные файлы:

  • 5wheel/auto-insurance-train.csv (для обучения модели)
  • 5wheel/auto-insurance-task.csv (проверочный набор при оценке модели — для информации)

Замечание. В первый набор данных искусственно внесли зависимости, так как для решения реальной задачи в исходном наборе данных было недостаточно информации. Цель первого задания — оценить стандатные средства Azure ML для обнаружения сильных зависимостей в простом наборе данных.

Для участников с продвинутой моделью подготовили дополнительный набор данных (без внесенной зависимости). Если интересно, можете попробовать свою модель на данном наборе: 5wheel/auto-insurance-2-… Если есть значимый результат, высылайте и этот график.

Критерий оценки: точность предсказания на проверочном наборе данных (…-task) при сопоставлении с реальным значением прогнозируемой колонки «Возмещено». Первичный критерий — максимизация значения показателя AUC. Вторичный критерий — плавность графика ROC.

evaluate

Публикация результатов задания 1 для оценки жюри: выслать снимок экрана с графиком ROC и значением AUC на следующие Live ID: Ivan.Kosyakov@live.com, Yuri.A.Popov@hotmail.com, prootq@xakep.ru, AAChizhova@gmail.com. Графический файл необходимо назвать «Auto Insurance Trained Model ##«, где ## — номер команды.

При формировании графика нужно использовать файл 5wheel/auto-insurance-check.csv.

Наиболее точную модель потом отдельно посмотрим — как она настроена в Azure ML.

evaluate-viz

Задание 2. Товары по поисковым запросам

По тексту поискового запроса, названию товара, описанию товара предсказать наиболее релевантный порядок отображения результатов поиска (товары, на которые пользователь кликнет с большей вероятностью). Предсказать нужно колонку «Clicks». Предсказывать в виде диапазонов или конкретных значений — на ваше усмотрение. То есть товар могут купить на любом уровне иерархии (он может попасть в любую категорию).

Критерий оценки: первый приоритет — значение показателя RMSE; второй приоритет — качество обоснования и реализации модели.

Исходные файлы:

  • ozon/ozon-search-rus-train.csv
  • ozon/ozon-search-rus-task.csv (проверочный набор данных для оценки точности модели)

Публикация результатов задания 2 для оценки жюри: необходимо выслать параметры доступа к набору данных с предсказанием на следующие адреса: Ivan.Kosyakov@live.com, Yuri.A.Popov@hotmail.com, prootq@xakep.ru, AAChizhova@gmail.com. Имя файла: ozon/ozon-search-rus-task-##.csv, где ## — номер команды.

Задание 3. Прогнозирование спроса на товары

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

  • pv_last_1w — (product views) просмотры товара за прошедшую неделю [today — 7, today]
  • pv_last_2w — просмотры товара за прошедшие 2 недели [today — 14, today]
  • ca_last_1w — (cart additions) добавления товара в корзину за прошедшую неделю [today — 7, today]

Предсказать необходимо колонку ca_future_1w_after_1w — сколько товаров положили в корзину через неделю от сегодняшнего дня на протяжении недели, т.е. покупки за период [today + 7, today + 14]. Прогнозирование с запаздыванием из-за задержки поставщиков в 7 дней. Проверять предсказание модели будем по набору данных с другими товарами. Есть предположение, что категория товара при этом может повлиять на тенденцию приобретения клиенами.

Критерий оценки: первый приоритет — значение показателя RMSE; второй приоритет — качество обоснования и реализации модели.

Исходные наборы данных:

  • ozon/ozon-demand-train.csv (для обучения модели)
  • ozon/ozon-demand-task.csv (проверочный набор данных для оценки точности модели)

Комментарий по наборам данных Наборы данных …-test — для обучения вашей модели. На наборах …-task будет тестироваться качество работы алгоритма.

Публикация результатов задания 3 для оценки жюри: необходимо выслать параметры доступа к набору данных с предсказанием на следующие адреса: Ivan.Kosyakov@live.com, Yuri.A.Popov@hotmail.com, prootq@xakep.ru, AAChizhova@gmail.com. Имя файла: ozon/ozon-demand-task-##.csv, где ## — номер команды.

Как подключать набор данных?

На портале http://portal.windowsazure.com подклаемся под своим live ID (связанным предварительно с подпиской). В левой части выбираем Azure Machine Learning (символ пробирки), подключаемся в Azure ML Studio. В Azure ML Studio создать новый эксперимент. В эксперименте из панели инструментов слева перетащить Reader, и в нем настроить параметры подключения к файлу.

reader

Полезные ссылки:

комментариев 16

  1. А какой path to container?

  2. Ребят, просит Path to container, directory… Что вводить?

  3. Иван, опубликуйте ссылки на презентации Хакатона, пожалуйста.

  4. Просьба указать точные метрики, по которым будет оцениваться результат (accuracy? RMSE? f1? roc…)

  5. А куда отправлять результаты?

  6. Как расшерить доступ для модели?

  7. В качестве багрепорта.
    При попытке использования питон-скриптов возникли ошибки даже на самых простых скриптах.

    python script:
    def azureml_main(dataframe1 = None, dataframe2 = None):
    dataframe1[‘elem_pv_last_5w_only’] = dataframe1[‘elem_pv_last_5w’]

    Error 0085: The following error occurred during script evaluation, please view the output log for more information:
    ———- Start of error message from Python interpreter ———-
    data:text/plain,Caught exception while executing function: Traceback (most recent call last):
    File «C:\server\invokepy.py», line 165, in batch
    idfs.append(rutils.RUtils.RFileToDataFrame(infile))
    File «C:\server\RReader\rutils.py», line 16, in RFileToDataFrame
    return RXDRBridge.RObjectToDataFrame(rreader.read_attribute_list())
    File «C:\server\RReader\rxdr.py», line 33, in RObjectToDataFrame
    dataFrame[columnName] = Categorical(values, levels = [None] + column.attributes[«levels»].values())
    File «C:\pyhome\lib\site-packages\pandas\core\frame.py», line 1901, in __setitem__
    self._set_item(key, value)
    File «C:\pyhome\lib\site-packages\pandas\core\frame.py», line 1983, in _set_item
    value = self._sanitize_column(key, value)
    File «C:\pyhome\lib\site-packages\pandas\core\frame.py», line 2033, in _sanitize_column
    raise ValueError(‘Length of values does not match length of ‘
    ValueError: Length of values does not match length of index

    ———- End of error message from Python interpreter ———-

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

    Также есть проблема с отображением текста программы. В том случае, если в конце строчки находится комментарий (# …) происходит наложение комментария на текст строчки кода.

    • Спасибо, буду транслировать разработчикам… Если будет новая информация об исправлении этой ситуации, напишу сюда обязательно…

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

    • Информацию готовим. Я в этом блоге обязательно опубликую ссылки. Думаю, фотографии получится опубликовать быстрее, чем оценку точности (некоторые наборы данных выслали в нестандартном виде — нужно будет индивидуально подключать… Параллельно с основной работой)

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s

%d такие блоггеры, как: