Наука о данных для развлечения? за крипто? Почему не оба? 😀

Обновление - 1 декабря 2020 г .: Ноутбук обновлен в соответствии с новой целью «Номи». TARGET_NAME теперь "target" вместо "target_kazutsugi"

Обновление - СЕНТЯБРЬ 2021 г. Набор данных, используемый в этой записной книжке, теперь является устаревшим. Появился новый сверхмассивный набор данных. Код по-прежнему будет работать с этим с некоторыми изменениями.

Просто дайте мне код:

Убедитесь, что вы зарегистрировались на numer.ai, поскольку вам нужно будет настроить ключи API для отправки материалов прямо из colab.



💡 Задача турнира Numerai

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

Однако данные Numerai разные. Это проблема прогнозирования фондового рынка, но уникальность его заключается в том, что данные запутаны и уже очищены! Мы не знаем, какая строка соответствует какой акции. Более того, каждая строка сгруппирована в эпохи, которые представляют разные моменты времени, но пока она имеет структуру, мы, безусловно, можем попытаться изучить и сопоставить закономерности из нее.

Numerai передает эти очищенные данные специалистам по данным и просит их предоставить более точные оценки данных. Эти прогнозы на основе краудсорсинга используются для построения метамодели и инвестирования в реальные фондовые рынки по всему миру. Поощрения зависят от качества ваших прогнозов и суммы вашей ставки ЯМР. Вы зарабатываете процент от своей ставки, если ваши прогнозы помогают получить прибыль, в противном случае ваша ставка сгорит. Эта система заработка / сжигания продолжает мотивировать к лучшим и уникальным прогнозам. Таким образом, чем точнее и / или уникальнее прогнозы, тем выше доход. Это то, что делает его интересным и сложным (сложнейшая проблема науки о данных).

Давайте займемся этой проблемой в Google Colab. Сквозной обход с использованием простой, но очень хорошей техники - CatBoost. Я буду объяснять здесь фрагменты колаба. Было бы очень полезно, если бы вы открыли ссылку записная книжка в новой вкладке параллельно с этим.

Трубопровод ➿

  1. Загрузить набор данных (и некоторые операции, которые вам понадобятся)
  2. Определить модель
  3. Обучить модель
  4. Подтвердить
    4.1 Что-нибудь изменить (вернуться к шагу 1)
  5. Прогнозирование и отправка
    5.1 Наблюдайте за производительностью в течение 4 недель

Настройка Colab

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

Runtime -> Change runtime type -> GPU -> Save

Colab поставляется с предустановленным множеством библиотек для анализа данных. нам нужно будет установить CatBoost и numerapi.

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

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

Загрузка данных 📊

Данные турнира уже содержат проверочные наборы (val1 и val2). Обычно мы оцениваем прогнозы нашей модели на этом подмножестве с целью хорошо работать с невидимыми данными.

Определение и обучение модели 🤖⚙️

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

Создание и оценка прогнозов 📐

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

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

Отправка прогнозов📤

Хотя вы можете загрузить predictions.csv вручную, мы будем использовать API для удобной и удобной отправки. Numerai позволяет создавать ключи для разных целей, но мы создадим ключ только для загрузки прогнозов.

Чтобы создать новые секретные ключи, перейдите в

Settings -> Create API key -> select "Upload Predictions" -> Save

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

Ниже приведен образец ключа для отправки прогнозов.

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

После загрузки прогнозов вы увидите некоторые показатели и информацию о отправленных вами сообщениях.

По моему опыту, чтобы начать турнир, нужно подать пару заявок. После того, как вы настроили рабочий процесс, все, что вам нужно сделать, это нажать Run all в Google colab.

Your predictions will be tested on live data and given scores,
CORR: Correlation between your predictions and live data
Meta Model Contribution(MMC): An advanced staking option which incentivizes models that are unique in addition to high performing
You can stake your NMR on either CORR or CORR+MMC.

Что дальше? 💭

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

  1. Играйте с данными
  2. Настроить параметры модели
  3. Изменить архитектуру модели
  4. Задайте вопрос в RocketChat или Форуме
  5. Присоединяйтесь к еженедельным часам работы офиса - подробности на RocketChat