Наука о данных для развлечения? за крипто? Почему не оба? 😀
Обновление - 1 декабря 2020 г .: Ноутбук обновлен в соответствии с новой целью «Номи». TARGET_NAME теперь "target" вместо "target_kazutsugi"
Обновление - СЕНТЯБРЬ 2021 г. Набор данных, используемый в этой записной книжке, теперь является устаревшим. Появился новый сверхмассивный набор данных. Код по-прежнему будет работать с этим с некоторыми изменениями.
Просто дайте мне код:
Убедитесь, что вы зарегистрировались на numer.ai, поскольку вам нужно будет настроить ключи API для отправки материалов прямо из colab.
💡 Задача турнира Numerai
Проблема науки о данных Numerai похожа на типичную задачу контролируемого машинного обучения, когда данные имеют несколько входных функций и соответствующих меток (или цели). И наша цель - научиться отображать входные данные в цели, используя различные методы. Обычно мы разделяем данные на обучение и проверку. и большая часть времени уходит на очистку данных.
Однако данные Numerai разные. Это проблема прогнозирования фондового рынка, но уникальность его заключается в том, что данные запутаны и уже очищены! Мы не знаем, какая строка соответствует какой акции. Более того, каждая строка сгруппирована в эпохи, которые представляют разные моменты времени, но пока она имеет структуру, мы, безусловно, можем попытаться изучить и сопоставить закономерности из нее.
Numerai передает эти очищенные данные специалистам по данным и просит их предоставить более точные оценки данных. Эти прогнозы на основе краудсорсинга используются для построения метамодели и инвестирования в реальные фондовые рынки по всему миру. Поощрения зависят от качества ваших прогнозов и суммы вашей ставки ЯМР. Вы зарабатываете процент от своей ставки, если ваши прогнозы помогают получить прибыль, в противном случае ваша ставка сгорит. Эта система заработка / сжигания продолжает мотивировать к лучшим и уникальным прогнозам. Таким образом, чем точнее и / или уникальнее прогнозы, тем выше доход. Это то, что делает его интересным и сложным (сложнейшая проблема науки о данных).
Давайте займемся этой проблемой в Google Colab. Сквозной обход с использованием простой, но очень хорошей техники - CatBoost. Я буду объяснять здесь фрагменты колаба. Было бы очень полезно, если бы вы открыли ссылку записная книжка в новой вкладке параллельно с этим.
Трубопровод ➿
- Загрузить набор данных (и некоторые операции, которые вам понадобятся)
- Определить модель
- Обучить модель
- Подтвердить
4.1 Что-нибудь изменить (вернуться к шагу 1) - Прогнозирование и отправка
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.
Что дальше? 💭
Есть несколько вещей, которые вы можете сделать, чтобы улучшить свою производительность. Вам также платят за уникальность ваших прогнозов.
- Играйте с данными
- Настроить параметры модели
- Изменить архитектуру модели
- Задайте вопрос в RocketChat или Форуме
- Присоединяйтесь к еженедельным часам работы офиса - подробности на RocketChat