چه کسی در مورد مشهورترین پول دیجیتال جهان ، رمزنگاری این دهه نشنیده است؟درست است ، من در مورد بیت کوین صحبت می کنم. همه در مورد بیت کوین صحبت می کنند و چه اتفاقی برای رکورد بالا آن خواهد افتاد ، از جمله مارک های مالی مشهور مانند JPMorgan و Morgan Stanley. در سال جاری ، بیت کوین به گزارش Coindesk 20 ، قیمت بالای تمام وقت خود را در مارس 2021 61. 556. 59 دلار گزارش داد.
بزرگترین سؤال این است که البته چه اتفاقی در قیمت این پول جادویی خواهد افتاد. این سوالی است که هیچ کس پاسخ خاصی به آن ندارد زیرا پیش بینی قیمت دقیق بیت کوین یا در واقع هر ابزار مالی دیگر ، تقریباً غیرممکن است. با این حال ، کاری که ما می توانیم انجام دهیم استفاده از تکنیک های علوم داده برای پیش بینی قیمت بیت کوین با دقت بالا است و این دقیقاً همان کاری است که ما در این مقاله می خواهیم انجام دهیم. ما یک مدل یادگیری عمیق ایجاد خواهیم کرد که از داده های تاریخی بیت کوین برای پیش بینی قیمت آن استفاده می کند.
در پایان این مقاله در مورد:
- یادگیری عمیق (RNNS ، LSTMS)
- پیش پردازش داده ها
- ارزیابی مدل پیش بینی قیمت بیت کوین
درباره بیت کوین
بیت کوین از طریق اینترنت یک پول کارآمد را ارائه می دهد و توسط یک شبکه غیرمتمرکز با مجموعه ای شفاف از قوانین کنترل می شود و به عنوان جایگزینی برای پول فیات کنترل شده بانک مرکزی کار می کند. فناوری اصلی این رمزنگاری ، پدیده blockchain است که لیستی در حال رشد از سوابق (بلوک ها) با استفاده از رمزنگاری است که در آن هر بلوک حاوی هش رمزنگاری شده از بلوک قبلی ، یک زمان سنج و داده های معامله است.
با طراحی ، یک blockchain نمی تواند اصلاح شود زیرا پس از ضبط ، داده های موجود در هر بلوک مشخص نمی توانند پس از آن بدون تغییر در همه بلوک های بعدی تغییر کنند. از این رو ، هرگونه تغییر در یک بلوک واحد باعث می شود که همه بلوک های زیر در یک blockchain نامعتبر باشند و این امر آشکار شود که داده های اصلی دستکاری شده است.
داده های قیمت تاریخی بیت کوین
برای آموزش مدل قیمت گذاری خود ، ما از داده های قیمت عمومی بیت کوین گزارش شده در دوره 2016-2020 ، 5 سال داده های مالی بارگیری شده از Finance Yahoo استفاده می کنیم. برای ارزیابی مدل خود از داده های قیمت بیت کوین در دوره ژانویه 2021-MARSHER 2021 استفاده می کنیم. ما از مدل برای پیش بینی قیمت بیت کوین برای این دوره استفاده می کنیم و آن را با قیمت های واقعی مقایسه می کنیم تا درک کنیم که مدل چگونه می تواند پیش بینی کندقیمت ها.
پیش پردازش داده ها
مرحله 1: عادی سازی مدل ما مبتنی بر RNN با لایه های LSTM است که از عملکرد فعال سازی سیگموئید برای تبدیل بردارهای ورودی به بردارهای دارای مدخل هایی که دارای ارزش در طیف وسیعی از [0،1] هستند ، است. بنابراین ، ما از عادی سازی برای ویژگی های مدل مقیاس استفاده می کنیم با توجه به اینکه مخرج همیشه از نامزد بزرگتر خواهد بود ، مقدار خروجی همیشه یک عدد بین 0 تا 1 خواهد بود.
از Sklea. Preprocessing واردات minmaxscalerSC = minmaxScaler (feature_range = (0،1))training_set_scaled = sc. fit_transform (training_set)
مرحله 2: تحول داده ها برای RNN فرضیه ای راجع به تعداد دوره های زمانی که مدل برای یادگیری در مورد دوره زمانی فعلی باید به موقع برگردد ، فرض می کنیم. با توجه به اینکه به طور کلی 30 روز در یک ماه ، 3 ماه وجود دارد ، یعنی 90 روز ، مدت زمان به نظر می رسد یک فرض معقول برای مدل RNN ما در گذشته از قیمت بیت کوین در گذشته یاد بگیرد. از این رو ، به هر قیمت ، X_Train شامل قیمت بیت کوین 60 روز گذشته خواهد بود و Y_Train قیمت بیت کوین آن روز خواهد بود و این برای تمام دوره های زمانی برگزار می شود.
وارد کردن numpy به عنوان npx_train = []y_train = []x_test = []برای من در محدوده (90 ، training_set_scaled. size):x_train. append (training_set_scaled [i-90: i ، 0])y_train. append (training_set_scaled [i ، 0])x_train ، y_train = np. array (x_train) ، np. array (y_train)برای من در محدوده (90 ، ورودی. اندازه):x_test. append (ورودی ها [I-90: I ، 0])x_test = np. array (x_test)
مرحله 3: شکل دادن به داده های اضافه کردن ابعاد اضافی به مدل که امکان استفاده از شاخص های اضافی به پیش بینی قیمت را فراهم می کند (به عنوان مثال رویدادهای خارجی که باعث اضطراب عمومی می شود). در این روش داده ها را از 2D به 3D تبدیل می کنیم.
x_train = np. reshape (x_train ، [x_train. shape [0] ، x_train. shape [1] ، 1])x_test = np. reshape (x_test ، [x_test. shape [0] ، x_test. shape [1] ، 1])
یادآوری عمیق
کل ایده در مورد یادگیری عمیق تقلید از قابلیت های عملکردی مغز انسان است. اگر شبکه های عصبی مصنوعی (ANNS) مسئول حافظه بلند مدت هستند ، مانند لوب تمپورال مغز ما ، و اگر شبکه های عصبی حلقوی (CNN) مسئول تشخیص تصویر و تفسیر بصری هستند ، مانند لوب اکسیپیتال مغز ما ،شبکه های عصبی مکرر (RNN) مانند لوب فرونتال مغز ما مسئول حافظه کوتاه مدت هستند.
شبکه های عصبی مکرر (RNN)
از یک طرف اطلاعات از لایه های ورودی به لایه خروجی جریان می یابد و از طرف دیگر ، EERROR محاسبه شده از طریق شبکه پخش می شود تا وزن ها را به روز کند. بر خلاف ANN و CNN ، در صورت RNN ، لایه های پنهان نه تنها خروجی می دهند بلکه خود را نیز تغذیه می کنند.
کاری که RNN انجام می دهد این است که ویژگی های ورودی ارائه شده را به بردارهای قابل خواندن دستگاه ترجمه می کند. سپس سیستم هر یک از این دنباله بردارها را یک به یک پردازش می کند و از وکتور اول به یک ترتیب پی در پی حرکت می کند. در حین پردازش ، سیستم اطلاعات را از طریق حالت پنهان (حالت حافظه) به مرحله بعدی این دنباله منتقل می کند.
هنگامی که حالت پنهان تمام اطلاعات موجود موجود در سیستم را از مراحل قبلی جمع آوری کرده است ، آماده است تا به سمت مرحله بعدی حرکت کند و این اطلاعات را با ورودی این مرحله فعلی (XT) ترکیب کند تا یک بردار اطلاعات جدید تشکیل شود.
خاطرات کوتاه مدت طولانی (LSTM)
هنگام آموزش یک مدل RNN ، در طی فرآیند بهینه سازی ، در دوره بسیار اولیه ، وزنها به طور تصادفی مقادیر انتخاب می شوند و در صورتی که این مقادیر انتخاب شده بسیار اندک باشند ، آنها را با همان وزن مکرر برای بسیاری اوقات ضرب می کنند ، شیب کمتر و کمتر می شودو در بعضی مواقع شیب ناپدید می شود. سپس هرچه شیب پایین تر باشد ، به روزرسانی وزن سخت تر است و این بدان معنی است که روند بهینه سازی کندتر خواهد بود.
علاوه بر این ، یک اثر دومینو وجود دارد و یک وزن به روز شده به روز شده ، محاسبه وزن باقیمانده را تأثیر می گذارد و با توجه به اینکه همه وزن ها مرتبط هستند ، آنها را نیز نادرست می کند. این مسئله در RNN به عنوان مشکل شیب ناپدید شده است و خاطرات کوتاه مدت طولانی (LSTM) در حال حل این مشکل RNN ها هستند. تفاوت بین RNN معمول و LSTM ، مجموعه ای از عملیاتی است که بر روی اطلاعات عبور و مقدار ورودی در آن مرحله خاص انجام می شود. اطلاعات موجود در LSTMS از طریق دروازه های آن جریان می یابد:
- دروازه را فراموش کنید: دروازه ای که تصمیم می گیرد چه اطلاعاتی را باید دور ریخت یا نگهداری کرد
- دروازه ورودی: دروازه ای برای به روزرسانی حالت سلول
- حالت سلولی: دروازه ای برای به روزرسانی حالت سلول به مقادیر جدیدی که شبکه مربوط می یابد
- دروازه خروجی: دروازه ای برای تصمیم گیری در مورد وضعیت پنهان بعدی باید باشد
ساخت مدل قیمت گذاری بیت کوین
هدف پیش بینی قیمت سهام است که یک مقدار خروجی مداوم است ، از این رو ما به جای مشکل طبقه بندی ، رگرسیون داریم. ما این رگرسیون را به عنوان یک شی با لایه های متوالی آغاز می کنیم که برای آن از ماژول متوالی از کروها استفاده می کنیم که امکان ایجاد یک شیء شبکه عصبی با لایه های پی در پی را فراهم می کند. سپس ، ما لایه های LSTM را اضافه می کنیم و با توجه به اینکه پیش بینی قیمت یک محصول مالی یک کار کاملاً پیچیده است ، ما دوست داریم مدلی با ابعاد بالا داشته باشیم که می تواند روندهای رو به بالا و رو به پایین را در قیمت سهام ضبط کند ، از این رو ما از تعداد زیادی LSTM استفاده می کنیمواحدها در هر لایه LSTM و ما از چندین لایه LSTM استفاده می کنیم. علاوه بر این ، ما یک لایه ترک تحصیل اضافه می کنیم ، تا تنظیم شود تا بخشی از نورون ها را در لایه های LSTM نادیده بگیریم. سرانجام ، ما از ماژول متراکم برای اضافه کردن یک لایه خروجی استفاده می کنیم
از keras. models واردات متوالی استاز keras. layers متراکم وارد می شوداز keras. layers واردات lstmاز Keras. Layers Dropout Importregrgeor = پی در پی ()# لایه LSTM 1regrgeor. add (LSTM (واحدها = 50 ، Retu_ownces = true ، input_shape = (x_train. shape [1] ، 1))regor. add (ترک تحصیل (0. 2))# لایه LSTM 2،3،4regrgeor. add (LSTM (واحدها = 50 ، Retu_wequences = true))regor. add (ترک تحصیل (0. 2))regrgeor. add (LSTM (واحدها = 50 ، Retu_wequences = true))regor. add (ترک تحصیل (0. 2))regrgeor. add (LSTM (واحدها = 50 ، Retu_wequences = true))regor. add (ترک تحصیل (0. 2))regrgeor. add (LSTM (واحدها = 50 ، Retu_wequences = true))regor. add (ترک تحصیل (0. 2))# لایه LSTM 5regrgeor. add (LSTM (واحدها = 50))regor. add (ترک تحصیل (0. 2))# لایه کاملاً متصلregrgeor. add (متراکم (واحدها = 1))# گردآوری RNNregrengor. compile (بهینه ساز = 'آدم' ، از دست دادن = 'year_squared_error')#استفاده از مدل RNNregrgeor. fit (x_train ، y_train ، epochs = 120 ، batch_size = 32)
پیش بینی مدل قیمت گذاری بیت کوین
پس از آموزش مدل قیمت گذاری ، ما از آن در ترکیب با داده های آزمایشی برای تولید پیش بینی قیمت بیت کوین برای دوره آزمایش ، ژانویه 2021-مارس 2021 استفاده می کنیم که سپس با قیمت های واقعی بیت کوین گزارش شده در دوره زمانی مشابه مقایسه می کنیم.
همانطور که می توانیم مدل RNN ما را بر اساس لایه های LSTM متعدد ببینیم ، توانستند روندهای رو به بالا و رو به پایین را به درستی پیش بینی کنیم ، زیرا می بینیم که خط آبی مربوط به قیمت بیت کوین پیش بینی شده از همان الگوی زرد رنگ است که مطابق با قیمت واقعی بیت کوین است.
وارد کردن matplotlib. pyplot به عنوان pltPREPTICK_STOCK_PRICE = regrengor. predict (x_test)PREPTICK_STOCK_PRICE = SC. INVERSE_TRANSFORM (PREPICTIOND_STOCK_PRICE)plt. plot (real_stock_price ، color = '#ffd700' ، label = "قیمت واقعی ژانویه - مارس 2021")plt. plot (preducted_stock_price ، color = '#4782b4' ، label = "قیمت پیش بینی شده ژانویه - مارس 2021")plt. title ("پیش بینی قیمت بیت کوین")plt. xlabel ("زمان")plt. ylabel ("قیمت بیت کوین")plt. legend ()plt. show () تجارت با گزینههای باینری...
ما را در سایت تجارت با گزینههای باینری دنبال می کنید
برچسب :
نویسنده : حمیدرضا پگاه
بازدید : 23
تاريخ : يکشنبه
22 مرداد
1402 ساعت: 12:15