На прошлой неделе мы выпустили астрологический прогноз цены биткойнов по методу дизайна человека; и возникла обширная критическая дискуссия на Bitcoin.com. Что ж, мы всегда считали, что критика намного полезнее похвалы, и вот наш ответ.
Human Discovery Platform - это открытая платформа, на которой разные авторы могут внедрять собственные методы интерпретации различных знаков, а исследователи - проверять их. Например, чтобы проверить, есть ли у людей с определенным психотипом перспективы в определенных профессиях.
В случае с биткойнами данные прогноза цен были собраны очень легко, поскольку в прогнозе использовался метод дизайна человека, основанный на астрологии. Астрология основана на положении небесных тел, и они хорошо известны. Более того, поскольку планеты и звезды движутся по определенным траекториям, их положение хорошо известно даже в будущем (если вы мне не верите, спросите НАСА).
Дизайн Человека - это метод, который мы использовали для астрологического прогноза цен на биткойны, и он также будет доступен на платформе. Этот метод подразумевает, что каждый объект (человек, компания или животное) имеет дату создания, имеет свой собственный набор атрибутов, и каждый день вы можете накладывать текущее положение небесных тел на этот объект, чтобы получить знаки на сегодня. В описании это выглядит так: «На 16 ноября 2017 года Биткойн имеет активные ворота 5,11, 32, 42, 43, 54, 57, которые дают активацию канала 32–54 и соленоида в канале 10–57. ». Проблема астрологии в субъективности интерпретации. В астрологических книгах числа соответствуют некоторым описаниям, а затем астролог пытается объяснить это, учитывая ситуацию. Так возникает человеческий фактор, который нужно везде убирать.
Таким образом, Human Discovery Platform также предоставит своим участникам инструменты анализа больших данных, чтобы проверить самые невероятные на первый взгляд гипотезы со статистикой.
Чтобы убедиться, что астрологический прогноз может быть правдой, мы проверили астрологические характеристики цены Биткойна за последние три года и его фактические ценовые тенденции с помощью машинного обучения.
Так. В качестве входных данных мы имеем:
- Данные о ценах на биткойны с 18 августа 2010 г. по 16 ноября 2017 г.
- Астрологические характеристики биткойнов по методу дизайна человека за тот же период;
- Астрологический прогноз по методу дизайна человека на ближайшие три года.
Цель состоит в том, чтобы выяснить, существует ли зависимость между астрологическими данными и направлением ценовых трендов, и проверить будущий прогноз. Вызов принят! :)
Машинное обучение
Проверить зависимость двух факторов и ответить на вопрос: «Есть ли корреляция между переменными (астрологические ворота) и целевой функцией (рост цены)»; вам нужно построить модель машинного обучения, предоставить ей данные и попросить автоматически найти эти зависимости.
Помещаем исторические данные в таблицы характеристик и целевую функцию. Затем мы разделили его на 2 образца: обучение и тестирование (обычно 70% на обучение, 30% на тестирование).
Для обучения модели использовалась обучающая выборка, и мы организовали поиск зависимостей. Итак, у нас есть «модель». Можно снабдить его знаками, и получить результат в виде «рост / падение». У модели есть одно ключевое свойство - точность, она отражает количество тестовых данных, которые она правильно предсказала. Эта характеристика может быть от 0 (модель ничего не предсказала правильно) до 1 (модель правильно предсказала все тестовые данные).
Вначале исходные данные выглядят так. Есть некоторые примечания, соответствующие каждой дате - цена биткойна на эту дату, разница цены с предыдущим днем, ворота и некоторые другие данные о линиях, каналах и магнитах (мы не будем вдаваться в подробности того, что это значит, просто примите это как знак).
Но данные в таком виде не подходят для моделей машинного обучения, сначала их нужно подготовить. Разложим все каналы и ворота до колонн. Если канал 14 был активен в определенный день - в столбце будет 0, иначе будет 1. В качестве целевой функции возьмем очень простой признак «был ли рост курса в этом месяце». Мы можем сравнивать скорость последней и первой даты месяца, и если она увеличилась, то целевое значение будет 1, если нет, то 0. Логично было бы оценить скорость в течение нескольких дней, но сейчас мы проверяем астролога. прогноз, который составляет месяц, и мы не смогли построить устойчивую модель на каждый день.
Подготовленные данные выглядят так, вы можете скачать их здесь или посмотреть здесь. Это большая таблица с ›150 знаками и 2600 строками (количество дней, прошедших с момента запуска Биткойна)
Построение модели
Строя модель, нам нужно отбросить признаки, которые мы не оцениваем. Теперь удаляем месяц и число. И обучите модель. Но сначала давайте разберемся, какова будет минимальная точность этих данных.
Есть 61% дней, когда цена биткойна растет к концу месяца. Так что, просто говоря каждый раз «Биткойн в этом месяце будет расти», мы будем правы в 61% случаев :) Это довольно хороший шанс. Подбросим монетку чуть выше. Это будет минимальная вероятность, с которой следует сравнивать модель.
Мы проверяем несколько моделей классификации. Не буду вдаваться в код и все усложнять - просто покажу числа:
Точность логистической регрессии: 0,788262370541
Точность GaussianNB: 0,683544303797
Точность SVC: 0,901035673188
Точность классификатора KNeighborsClassifier: 0,940161104718
Теперь мы видим, что последняя модель самая лучшая. Итак, давайте проверим качество классификации - насколько хорошо она предсказывала рост и падение.
Достаточно хорошо. Нет разницы в классе 1 (рост) или в классе 0 (падение)
В итоге мы видим, что с помощью метода K-ближайших соседей мы получили модель, которая предсказывает данные на тестовой выборке с точностью 94% :)
Но что это значит для нас? Модель получает результат для каждого конкретного дня, а целевая функция определена на месяц… Попробуем сделать это так - запустим модель для каждого дня и получим результат. У нас будет прогноз для каждого «вырастет ли биткойн в этом месяце». Подведем итог и разделим на количество дней в этом месяце. Итак, мы получим вероятность результатов прогноза модели на этот месяц.
Если в месяце 20 дней, предсказывающих ежемесячный рост, и 10 дней, предсказывающих падение (в конце месяца, а не в день), в этом месяце биткойн вырастет с вероятностью 66%. Давайте протестируем этот алгоритм на тех месяцах, которые у нас уже есть. Ссылка на Таблицу GoogleDoc
Для каждого месяца есть цена в начале месяца, цена в конце месяца, разница между ними и вероятность повышения ставки на основе рассчитанной модели. По старым данным нет ни одного неудачного месяца, в котором модель была бы неверной.
Заключение
Итак, нам удалось построить модель машинного обучения с точностью 94% для прогнозирования роста курса биткойнов через месяц на исторических данных астрологических индикаторов. Во-первых, давайте посмотрим, что он даст в отношении данных за будущие месяцы.
Эта модель показывает падение биткойна в будущем, до июля 2019 года.
Вероятность роста в феврале-марте и июле-октябре следующего года намного ниже (особенно осенью, где она близка к 50%, и это похоже на подбрасывание монет). Я не рекомендую смотреть на вероятности ниже 75%.
Сравним это с прогнозом нашего эксперта. В марте-августе следующего года она предсказывала сильное снижение обменного курса. Наша модель действительно дает гораздо меньшую вероятность роста в феврале и марте, но в апреле-июне проблем нет.
Разница в прогнозах
- В целом прогнозы астролога и модели машинного обучения не сильно отличаются.
- В феврале-марте, когда астролог прогнозирует снижение цены биткойна - модель машинного обучения дает очень нечеткий результат, с такой вероятностью модель не подтверждает и не опровергает астрологический прогноз. Но в отличие от соседних месяцев в модели нет четкого указания на рост.
- В мае-июне негативный прогноз астролога противоречит модели ML. Единственное место во всем прогнозе - это место, где модель сильно расходится с прогнозом.
- В июле-августе негативный прогноз астролога ни подтверждает, ни противоречит модели. Также в сентябре-октябре положительная астрологическая проекция не противоречит модели.
- В другие периоды прогноз астролога либо подтверждается моделью, либо ничего не говорит о курсе (как в период с марта по октябрь 2019 г.)
Означает ли это, что вам нужно покупать биткойны прямо сейчас, а избавляться от них в феврале - конечно же, нет. Модель основана на не очень большом наборе данных, всего 2600 строк. Несмотря на то, что точность модели достаточно высока (94%), в месяц перевода и нет ошибок, это не означает, что модель будет стабильной в будущем.
Для дальнейшей проверки модели нам нужно больше данных, поэтому мы возьмем те же данные для 10 лучших монет с самой высокой рыночной капитализацией и протестируем эту модель на их ценах. Чем больше у нас данных, тем точнее будет модель и тем увереннее мы сможем сказать, работает она или нет.
Проверьте эксперимент и посмотрите вероятность роста той или иной монеты на нашей странице: hdplatform.io/coin-trends
Команда Human Discovery Platform