Dewasa ini, perkembangan komputasi dengan pembelajaran mesin sangat pesat, yang berkembang salah satunya yaitu Deep Learning , mengingat perkembangan Graphics Processing Unit (GPU) yang sudah mendukung untuk melakukan pembelajaran data. Dengan menggunakan GPU proses percobaan (training) data menjadi 44 kali lebih cepat dibandingkan dengan menggunakan processor. Deep Learning sangat memungkinkan melakukan pembelajaran dengan lapisan yang lebih kompleks agar mendapatkan akurasi yang tinggi; bahkan dalam Deep Learning bisa lebih efisien karena dapat belajar dalam Jaringan Syaraf Tiruan yang lebih dalam guna menggali lebih dalam lagi apa yang tersembunyi. Dalam Deep Learning terdapat sebuah jaringan yang disebut Recurrent Neural Network (RNN) yang dapat digunakan untuk mengolah data Time Series.

Prediksi ini dilakukan untuk mempelajari harga nilai saham kedepannya dan bisa juga dijadikan alat ukur untuk mengantisipasi kerugian atau mendapatkan keuntungan meskipun ada factor lain yang lebih utama untuk investasi dimasa depan seperti prospectus perusahaan, laporan dan kondisi keuangan dan situasi ekonomi baik mikro maupun makro. Jika yang diperlukan adalah prediksi harga saham untuk para pemain saham; maka olah data ini dapat dijadikan rujukan dari data yang diperoleh dari suatu perusahaan berupa data harian sehingga akan dapat pergerakan nilai saham secara rinci.

Prediksi akan diproses dengan analisis struktur untuk mengidentifikasi fitur data harga paling tinggi, harga paling rendah, harga buka, harga tutup, rata-rata, volume dan perubahan setelah itu melalui tahap pra-proses masuk ke dalam ekstraksi fitur, ascending, normalisasi dan segmentasi. Setelah data tersebut dilakukan pra-proses dilanjutkan dengan memasukan proses Recurrent Neural Network (RNN) data tersebut yang telah terstruktur dimasukan ke dalam forget gate, input gate, output gate, dan dense layer (Signoid) untuk menentukan bobot yang dihasilkan dari metode RNN tersebut. Selanjutnya melakukan pengujian dengan menggunakan feed forward untuk mendapatkan nilai akhir, setelah mendapatkan nilai akhir maka dimasukan ke dalam kelas yang telah dikasih rentang sebanyak lima kelas.

Normalisasi merupakan tahap kedua dari pra-proses. Pada tahap ini terjadi proses penskalaan, dimana data akan diubah dalam rentang 0 hingga 1. Hal ini dilakukan dikarenakan terdapat tiga jenis data. Data pertama yaitu data harga, yaitu harga buka, harga tutup, harga tertinggi, harga terendah, dan rata-rata. Sedangkan data kedua yaitu data volume, selain perbedaan data ada kemungkinan dimana data akan menjadi terlalu besar pada volume. Data ketiga yaitu perubahan nilai dengan persenan ‘%’. Dengan demikian normalisasi dilakukan untuk menyamaratakan data. Vektor data latih digunakan untuk mengubah nilai yang awalnya berbentuk array menjadi vektor, dikarenakan struktur RNN hanya bisa menerima masukan berbentuk sekuensial.

RNN merupakan bagian dari area machine learning yang berbasis ekstraksi fitur dari sebuah data secara lebih rinci. RNN ini pengembangan dari Jaringan Syaraf Tiruan (JST) dan arsitekturnya hampir sama dengan Multi Layer Perception (MLP) Cara kerja Deep Learning meniru cara kerja dari otak manusia sehingga dapat mengirimkan informasi dari sebuah neuron menuju neuron lain . Recurrent Neural Network (RNN) memiliki variasi jenisnya seperti Long Short-Term Memory . LSTM ini digunakan untuk mengatasi masalah yang ada dalam RNN yaitu ingatan memori jangka pendek.

Long Short-Term Memory (LSTM) jaringan yang diciptakan dengan tujuan mengatasi masalah hidden layer. Kunci dalam desain LSTM adalah untuk menggabungkan kontrol non-linier, data dependent ke dalam sel RNN , yang dapat dilatih untuk memastikan bahwa gradien fungsi tujuan dengan memperhatikan sinyal (kuantitas berbanding lurus dengan pembaruan parameter yang dihitung selama pelatihan oleh Gradient Descent) tidak menghilang. LSTM digunakan untuk mengatasi vanishing gradient atau situasi dimana nilai gradient bernilai 0 atau mendekati 0 dengan mekanisme gate . LSTM merupakan cara lain untuk menghitung hidden state. LSTM menggabungkan state sebelumnya, memori saat ini, dan input. LSTM sangat efisien untuk merekam long-term dependencies terlihat. LSTM diperlakukan sebagai kotak hitam yang diberikan current input dan hidden state sebelumnya untuk menghitung hidden state selanjutnya.

Adapun metode optimasi Stochastic Gradient Descent (SGD) dan Adaptive Moment Estimation (Adam) . Metode ini merupakan suatu metode yang sering digunakan untuk model optimasi. Sementara itu, kedua model optimasi menggunakan learning rate = 0,001 dan epochs sebanyak 100 untuk mendapatkan pelatihan yang lebih detail dari kedua metode optimasi tersebut. Hasil dari pengujian menggunakan SGD dan Adam menghasilkan error yang tidak terlalu signifikan dan keduanya hampir sama baiknya.

Percobaan dilakukan dengan learning rate 0.001, Model optimasi Adam yang digunakan, decay 0.8 dan dropout 0.8 . Hal ini dilakukan untuk mengetahui pengaruh ukuran iterasi pada epoch terhadap proses pembelajaran dan juga pengujian data. Nilai akurasi tertinggi yaitu sebesar 57.89% untuk data uji dengan nilai learning rate 0.002, kemudian nilai akurasi untuk data latih tertinggi sebesar 94,86% dengan learning rate 0.050. Pada hasil learning rate 0.001 hingga 0.900 selisih perbedaan tingkat akurasi data uji dan data latih tidak terlalu signifikan. Epoch dengan nilai terbesar pada nilai epoch 150 dengan hasil nilai akurasi pada data uji sebesar 57.37%, epoch dengan nilai 100 sampai 200 tingkat akurasi menjadi lebih baik dibandingkan dengan nilai epoch 50 memiliki hasil akurasi yang signifikan

Hasil dari penelitian ini menunjukan bahwa prediksi harga saham menggunakan RNN mendapatkan hasil kurang baik. Menggunakan optimasi Adam dengan nilai learning rate 0.001 dan epoch 200 memperoleh akurasi untuk data latih sebesar 94.16% dan data uji sebesar 55.26%.

8 thoughts on “Prediksi Harga Saham dengan RNN”
  1. Metode Prediksi dengan ADAM (Adaptive Moment Estimation) lebih baik daripada prediksi menggunakan RNN (Recurrent Neural Network) ya?

    1. Secara umum tidak ada bukti yang jelas mengenai metode optimasi mana yang paling baik digunakan dalam skenario-skenario tertentu, misalnya ADAM, RNN, RMS, atau SGD, dan lain-lain. Ada beberapa analisis dalam perilaku metode ini bisa baik dalam skenario yang berbeda namun tidak ada yang konklusif. Jika anda ingin menyelami hal-hal ini maka saya sarankan untuk banyak mengambil lebih banyak referensi lain supaya lebih bijak karena khazanah pengetahuan kita. Selamat mencoba…

  2. Kalau untuk melihat grafik lebih detail bisa kah? misalnya pada saat cursor kita letakkan di garis garfik; maka akan terlihat berapa nilainya dan keterangannya.

    1. bisa aja; silahkan gunakan script python dibawah ini, jika belum bisa silahkan saja di install dulu pip install cufflinks, dan seterusnya…

      import pandas as pd
      from yahoo_fin import stock_info
      from plotly.offline import plot, init_notebook_mode
      init_notebook_mode()
      import cufflinks as cf
      cf.set_config_file(offline=True)

      data = {}
      data['DEAL.JK'] = stock_info.get_data('DEAL.JK', start_date='01-01-2020',  end_date='12-30-2020')
      print(data['DEAL.JK'].head())
      print(data["DEAL.JK"])

      Hasilnya:
      Contoh saja ya

  3. kalau menghitung correlation dalam harga saham bisa kah? untuk membandingkan mana saham yang bagus dibeli dan bagus dijual (misalnya)

    1. Insya Allah nanti akan saya tuliskan di postingan terbaru. Ditunggu saja posting tersebut tentang bagaimana cara menghitung hubungan 2 variabel atau lebih dalam jual beli saham.

Leave a Reply to Muh. Burhanuddin Cancel reply

Your email address will not be published. Required fields are marked *