Cryptocurrency price prediction by using social media data
- Global styles
- Apa
- Bibtex
- Chicago Fullnote
- Help
Abstract
Bu çalışma, bitcoin cryptocurrency fiyatı ile ilgili tweetler veya google arama yüzdesi gibi sosyal medya girişleri arasındaki ilişkiyi analiz etmek ve tanımlamak amacıyla yapılmıştır. İki konu arasındaki ilişkiyi bulmak için makine öğrenme algoritmaları uygulanmıştır.Bu döküman, her biri tezin farklı yönlerini temsil eden dört bölümden oluşmaktadır.Bölüm 1, literatür taramasıdır. Bu bölümde önceki araştırmalar gözden geçirilmiştir ve bu tezde de başarılı ve faydalı yöntemler kabul edilerek uygulanmıştır. Google arama yüzdesi verilerinin etkisi diğer çalışmalarda da belirtildiği için google arama sonuçları analizimize dahil edilmeye karar verilmiştir. Ayrıca, twitter metinlerinde daha önceki çalışmalarda, duygu analizinde en iyi sonucu veren method olan Text Blob bu çalışmada da kullanılmıştır. Önceki çalışmalara baktığımızda ortak sorunun verilerin yeterli hacimde ve zaman diliminde toplanamadığı önemle vurgulanmıştı. Bu durumu göze alarak bu çalışmada verilerin hacim ve süre olarak yeterli olgunlukta olmasına dikkat edildi. Önceki çalışmalarda ki diğer bir eksiklik ise makine öğrenmesi methodlarının kullanılmayıp yogunluklu olarak çapraz doğrulama tekniğinin kullanılmış oldugudur. Bu çalışmada, önceki çalışmalardan esinlenip daha iyi sonuçlar vermesi için diğer çalışmaların güçlü yönlerini harmanlayıp eksik kalan yönlerini de gidermeye yönelik çalışılmıştır.Bölüm 2, makine öğrenmeye giriş niteliğindedir. Makine öğrenmesi nedir ve yöntemlerin ardındaki mantık nedir? Makine öğrenmesi türleri ve aralarındaki farklar. Bu bölüm, gelecek bölümler ve izlenen yaklaşımlar için açıklama niteliğindedir. Makine öğrenmesi çok daha fazla yöntem içeren bir konu olmasına rağmen bu çalışmada kullanılan regresyon ve sınıflandırma yöntemleri üzerinde durulmuştur. Bunun başlıca nedeni toplanmış olan verilerin etiketli oluşu. Etiketli veriler gözetimli öğrenme sınıfları için uygundur bu da bizi regresyon ve sınıflandırma öntemlerini kullanmamız için yönlendirmektedir. Regresyon yönteminde kullanılan methodlar: Linear Regresyon, Rasso, Ridge, SVR, Doğrusal SVR, K en Yakın Komşu, Karar Ağacı. Sınıflandırma yöntemleri seçilirken de mümkün oldugunca aynı metodlar kullanılmaya gayret edilmiştir. Sınıflandırma yönteminde kullanılar methodlar: Rassal Orman, K en Yakın Komşu, Karar Ağacı, SVM (Destek Vektör Makinesi), Doğrusal SVM, Lojistik Regresyon, Gaussian Naif Bayes, Bernoulli Naif Bayes ve MLP Sınıflandırıcı.Bölüm üçte takip edilen yöntemler tezde takip edilen sırayla açıklanmaktadır. Veri toplama, makine öğrenmesi için başlangıç ve en önemli kısımdır. Üç farklı kaynaktan veriler toplanmıştır bunlar; Twitter, Google ve Cryptocurrency verileridir. Twitter ve google arama yüzdesi araştırmadaki sosyal medya verilerini temsil etmektedir. Twitter verileri Twitter API üzerinden kripto para ile ilgili olanlar filtrelenerek gerçek zamanlı olarak çekilmiştir. Google arama yüzdesi verileri Google Trend API üzerinden elde edilmiştir. Google Trend arama yüzdesi google üzerinde yapılan aramaların tarihi ve coğrafi bazda gruplanarak tüm aramalara oranına bağlı olarak 0 ve 100 arasında ölçeklendirilmesiyle elde edilir. Bitcoin ve Ethereum ile arama sonuçları yüzdesi bu platform üzerinden elde edilmiştir. Kripto para verileri CoinMarketCap API üzerinden toplanmıştır. İnternet üzerinde kripto para değerlerine erişebileceğimiz birçok farklı site olmasına ragmen CoinMarketCap tercih edilmesinin nedeni güvenilir olması ve sağladığı verilerin çeşitliliği. En populer 100 kripto para verisine ait hacim, değer, pazar hacmi, değişim yüzdesi gibi birçok veri elde edilmiştir. On ay boyunca sürekli toplanan veriler, ITU veri labaratuvarında bulunan 1 terabaytlik Mac os bilgisayarında depolanmıştır. Bu bilgisayar ortak kullanımda olduğu için elektrik kesintisi, bilgisayar açılıp kapanması yada veri toplama işinin yanlışlıkla sonlandırılması durumunlarıyla başa çıkmak için otomatik görevler yaratılmıştır. Bu görevin ana olarak veri toplama işini gerçekleştiren görevin çalışıp çalışmadıgını her 15 dakika aralıklarla kontrol edip çalışmadığı durumda otomatik başlatmaya yaramaktadır. Bu sayede veri toplamada maksimum verim sağlanmıştır.Toplanan veriler yine aynı bilgisayarda bulunan ve sadece bu çalışma için kurulan Mongo veritabanında saklanmıştır. Mongo veritabanı özellikleriyle bu çalışma için diğer veritabanlarının önüne geçmiştir. Örnek olarak mongo veritabanı içerisinde regex sorgu atma özelliğine sahiptir. Bu özellik tweet metinleri içinde belirtilen kripto para birimine göre arama kolaylıgı sağlamıştır. Diğer bir özelliği ise açık kaynak olması ve üyelik veya ödeme gerektirmeden kullanılabilmesi.Python yazılım dili araştırmamızda tercih ediliştir. Başlıca sebepleri arasında twitter ve google'ın sağladığı açık kaynak API lerinin bulunması. Makine öğrenmesi ve veri toplama ve manipule etmede çok basarılı ve kullanım kolaylığı sağlayan kütüphanelerinin olması son olarakta problem çözme ve bilgi edinme konusunda faydalanılabilecek birçok platform ve mevcut topluluklarının olmasıdır. Ayrıca scikit-learn makine öğrenmesi kütüphanesinin python dilini destekliyor oluşuda python dilini tercih etmemizin başlıca nedenleri arasında gelmektedir. Toplanan verilerin bir kısmının daha doğru ve kesin sonuç için makine öğrenmesi sürecinden önce ön işleme tabi tutulması gerekmektedir. Bu ön işleme fazında tweetler içerisindeki özel karakterler, URL, etiketlerden arındırılmıştır. Özel karakterler duyarlılık analizi yaparken yanlış sonuçlara yol açtıgı için temizlenmesi ve salt metnin analizinin yapılması elde edilen sonuçların doğruluğu için önemlidir. Daha sonraki adımda ise elimizdeki üç ayrı verinin zamana göre birleştirilip makine öğrenmesi için gereken tek bir veri setinin oluşturulması işlemi vardır. En fazla dikkat gerektiren ve hata yapılması durumunda çalışmanın sonuçlarını direk olarak etkileyebilecek bir adımdır. Üç ayrı veri tarih sütunu üzerinden birleştirildi ve eksik olan zaman dilimine ait veriler veri enterpolasyonu yöntemiyle dolduruldu.Regresyon modeli nümerik bir tahmin çıktısı verirken sııflandırmayöntemi ise bir gruplandıma sonucu tahminide bulunmaktadır. Bu nedenle 2 yöntem için de kullanılacak veri seti çıktısı sütunu farklı değerlendiriliştir. Regresyon yöntemince bitcoin fiyat değeri çıktı tahmini sonuç verisi olarak değerlendirilirken, sınıflandırmada ise artış azalış sonucu tahmin verisi değerlendirilmiştir. Tahmin verileri farklı zaman dilimleri için tahmin yapması için düzenlenmiştir. Tahmin verileri 5 dakika, 15 dakika, 30 dakika, 45 dakika, 1 saat ve 1 gün tahmin verileri olarak ele alınmıştır. En kısa süreli tahminde 5 dakika sonraki durum tahmin edilirken. 1 günlük zaman diliminde ise 1 gün sonrasının değer veya artış azalış tahmini hesaplanmıştır. Ayrıca farklı zaman dilimlerini gözlemleyebilmek için örneğin 10 dakika sonraki tahmin verisi hesaplamak için kaydırma yöntemi uygulanmıştır. Kaydırma yöntemiyle 5 dakikalık datayı 2 kere kaydırarak 5*2 dakika soraki yani 10 dakika sonraki tahmin değerlendirimiş olmaktadır. Kaydırma yöntemi herbir zaman dilimi için 4 kere uygulanmıştır.Önceki adımlarla hazır hale gelen veri setimiz makine öğrenmesine geçmeden önce makine öğrenmesi yöntemlerinin olumsuz sonucu olan aşırı öğrenme durumunu engellemek için çapraz gerçelleme yöntemiyle en iyi hiper parametre değerleri herbir model için ayrıca hesaplandı. Hesaplanan en iyi hiper parametreler makine öğrenmesinde kullanıldı.Makine öğrenmesinin sonucu olarak, regresyon methodlarından lineer regrasyon yöntemleri; Linear Regresyon, Lasso ve Ridge modelleri en iyi sonuçları vermiştir. K en Yakın Komşu ve Karar ağacı yöntemleri ise kısa süreli zaman tahminlerinde iyi sonuç verirken tahmin süresi arttığında hızla düşüş sağlamıştır. Yine de linear regrasyon yöntemlerini kısa süreli tahminlerde de geçememiştir. Sınıflandırma yönteminde ise regrasyon yönteminden farklı olarak uzan zaman dilimlerdeki tahmin değerlerinin iyileştiği gözlemlenmiştir. Yani sınıflandırma yöntemiyle daha uzun süreli daha doğru tahmin yapılabilmektedir. Sınıflandırma yönteminde farkedilen diğer bir durum ise 2 kere kaydırma sonuçları gözle görünür şekilde artış göstermiştir.Özetle, regresyon ve sınıflandırma tahmin sonuçları, bitcoin fiyatının sosyal medyadan etkilendiğini göstermektedir. Daha kesin sonuçlar için daha iyi makine öğrenme modellemesi ve daha fazla veri gereklidir. This study aimed to analyze and identify the relation between bitcoin cryptocurrency prices and social media mentions like related tweets or search percentages. Machine learning algorithms implemented to find out the relation between two topics.The graduation thesis is composed of four chapters, each of them represents different aspects of the thesis.Chapter one is the literature review. In that chapter, previous studies are searched, and successful and useful methods are combined followed and upgraded in this thesis. Google trend data has an influence on the prediction scores mentioned in other studies so google search results are decided to include in our analyze. Also most successful sentiment analyzes on tweet's text method influenced by previous studies. Time interval selection and shifting methods also inspired by previous studies. But this study surpassing the other studies by data volume and time duration. Other studies are mentioned that at least 9 months of data needed for better estimation results. Another improvement in this study is machine learning methods. Previous studies analyze the relationship between bitcoin price and social media methods by cross-correlation but in this study, relationship analyzed by machine learning methods.Chapter two is an introduction to machine learning. What is machine learning and what is the logic behind the methods. Types of machine learning and differences between them introduced. This chapter gives better insights into the following chapters and approaches. Also, this chapter gives information about which kind of data collected from which platform.In chapter 3, followed methods in the study are described in chronological order. Data collection is the beginning and most important part of the machine learning process. Data collected in three different sources. These are twitter, google, and cryptocurrency data. Twitter and google search percentage is representing the social media data. Twitter data streamed from Twitter API. Google search percentage gathered from Google Trend API. Cryptocurrency data captured from CoinarketCap API which is trusted and free cryptocurrency listing coins, tokens, exchanges platform. CoinMarketCap presents the top 100 cryptocurrency volume, trend, market cap, price, etc. information.Data collected for 10 months, data collection codes written on python and open source python API of twitter and google trend used. Python also has own library for data manipulation and machine learning which is scikit-learn. Another reason to select python is the available community and platforms for support and problem-solving. Collected data stored on ITU data laboratory Mac Os computer. Twitter data streamed daily bases in a .json file than import to the MongoDB database. Cryptocurrency and google search percentage data directly imported to MongoDB. MongoDB also an open-source and well documented tool and easy to use. It is recommended to use in big data projects, because it kept the data in file format and not allocate so much memory. It also allows regex search on the data. This feature is very helpful to search the desired keyword on the tweets.Some of the collected data needs to preprocess before machine learning for more accurate and explicit results. Tweet's text cleaning and then sentiment analysis performed on the data and new column which is sentiment analyze score column added to machine learning features. The critical step is merging all data to have one well-structured and suitable feature. Merging operation is critical because if there is an error in this phase it will directly affect the prediction scores. Lastly, data interpolation done on the features to overcome with the missing data.Features are selected individually by human experience and observations. Merging made on time index column. All the features are numerical, expect tweet text column so while merging the data, text column's count considered as feature. Other numerical columns merged and mean of the values considered as features. Data grouped by the time interval to have different data set and able to predict different time periods. Data grouped on 5 minutes, 15 minutes, 30 minutes, 45 minutes, 60 minutes and 1-day time intervals. Features are ready for machine learning but there is another concern that overfitting. Overfitting is the problem that train data gives more accurate results than the test results. To avoid that grid search and cross-validation implemented to machine learning features. According to the output of the grid search and cross-validation machine learning model prepared with best hyperparameters. Supervised machine learning methods selected for this study because our features have labeled data. Two machine learning methods analyzed first one is regression and the other is classification. The classification method gives us about increase or decrease in the bitcoin price. The regression method predicts the bitcoin price value.If we check the results of 2 methods we can see that the regression methods give better estimation scores than the classification methods in sort time interval and when the time interval increases r2 score decrease rapidly. And best estimation scores belong to linear regression models which are; Linear Regression, Lasso and Rinde. Sort time intervals can assume like 5 minutes, 15 minutes and 30 minutes. For longer time intervals like 45 minutes, 60 minutes a 1-day classification model surpass the regression models. Other significant observations on classification models are given better accuracy scores on 2nd shift. As a result best regression model score is 0.997 belongs to Lasso model in 3 minutes time interval. And best classification model score is 0.979 belongs to Decision Tree model for the 1-day time interval.
Collections