Разбираем с небольшой проект для сбора и анализа данных из социальных сетей с целью предсказать поведение цены биткоина в реальном времени.
Код, о котором пойдет речь продолжает Youtube-видео об автоматическом прогнозировании цены на биткоин.
Проект позволяет предсказать цену криптовалюты и использует данные социальных сетей Reddit и Twitter для машинного обучения. Мы собираемся использовать технику, называемую анализом настроений, чтобы найти эмоции, стоящие за пользователями, и попытаться выяснить, коррелирует ли цена с тем, как люди относятся к популярной криптовалюте. Мы будем использовать API CoinDesk для извлечения данных о ценах биткоина и python для программирования приложения.
По словам автора, данная сборка готова к работе на платформе Google Cloud.
Сбор данных для оценки биткоина
Чтобы собирать данные для аналитики в фоновом режиме, необходимо запустить программы Continuous_Stream_Data.py и Continuous_Stream_Sentiment.py. Эти скрипты позволят осуществлять сбор и предварительную обработку входных данных, а после сохранять все в файлы live_tweet.csv и live_bitcoin.csv.
Ядро движка
Основой для обработки данных будет нейросеть, построенная по модели LSTM (Long short-term memory). Основные параметры (подключаемые модули, данные для соединения с базой данных и аккаунтом в Twilio) устанавливаются в файле engine.py.
Подключаемые пакеты, в том числе для создания и тренеровки модели нейросети:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
frommathimportsqrt
fromnumpy importconcatenate
frommatplotlib importpyplot
importpandas aspd
fromdatetimeimportdatetime
fromsklearn.preprocessing importMinMaxScaler
fromsklearn.preprocessing importLabelEncoder
fromsklearn.metrics importmean_squared_error
fromkeras.models importSequential
fromkeras.layers importDense
fromkeras.layers importLSTM
importnumpy asnp
importdatetime
frompytz importtimezone
est=timezone('US/Eastern')
Подключение аккаунта Twilio:
1
2
3
4
5
6
7
8
fromtwilio.rest importClient
# ID аккаунта из twilio.com/console
account_sid="*******"
# Токен из панели управления Twilio
auth_token="*******"
client=Client(account_sid,auth_token)
Сервис Twillio предоставляет различные API, например, для обработки смс и голосовых сообщений. В данном случае он используется для аутентификации и отправки сообщений.
Дальше ядро загружает данные для тренеровки сети и передает их экземпляру библиотеки Keras, на основе которой строится модель:
Нейросеть выдает значение будущей цены биткоина с временной меткой. Вычисления делаются на основе порогового значения, установленного в коде движка. Полученная информация о времени, предсказанной и текущей цене, а также рекомендуемом действии (покупка/продажа) записывается в MySQL базу данных.
Автор отмечает, что поскольку модель вышла перегруженной (она хорошо работает с обучающей выборкой, но не очень – с тестовыми данными), не стоит рассматривать ее как инструмент для помощи в торговле. Однако этот код остается хорошим пособием по применению нейросетей и может помочь в изучении их работы.
Вас также могут заинтересовать другие статьи по теме: