Cara Memprediksi Harga Saham Menggunakan SVM

Cara Memprediksi Harga Saham Menggunakan SVM

Pembelajaran Mesin adalah aplikasi Kecerdasan Buatan yang meningkatkan cara dunia bekerja di setiap domain. Pada intinya, ini adalah algoritma atau model yang mengamati pola dalam kumpulan data yang diberikan dan kemudian memprediksi pola yang dipelajari pada data umum. Dalam istilah awam, ini adalah gagasan bahwa engine mempelajari suatu pola dan beradaptasi melalui pengalaman untuk membuat keputusan yang akurat dan berulang. Support Vector Machine adalah algoritma ML populer yang akan kita gunakan hari ini untuk memprediksi harga saham. Ada beberapa keuntungan dari model ini, yang akan kita bahas dan telusuri implementasi pendekatannya.

Apa itu Hyperplane?

Sebuah hyperplane dalam ruang n-dimensi adalah (n-1)-dimensi subruang; jika ruang adalah 3 dimensi, maka hyperplanenya adalah bidang 2 dimensi. Sebuah ruang n-dimensi selalu direntang oleh himpunan n vektor bebas linier, dan selalu mungkin untuk menemukan n vektor ortogonal yang merentang ruang tersebut. Itu mungkin atau mungkin tidak dalam definisi ruang vektor berdimensi hingga, tetapi itu adalah fakta yang buktinya dapat ditemukan di hampir semua buku teks aljabar linier sarjana.

Akibatnya, sebuah hyperplane di ruang-n direntang oleh n-1 vektor bebas linier dan memiliki vektor ke-n (tidak dalam bidang) ortogonal terhadapnya.

Apa itu Mesin Vektor Pendukung?

Support Vector Machine (SVM) adalah algoritma klasifikasi biner pembelajaran engine yang diawasi. Diberikan satu set dua jenis titik dalam dimensi N, SVM menghasilkan hyperplane dimensi (N-1) untuk membagi titik-titik tersebut menjadi dua kelompok seperti yang ditunjukkan di bawah ini:

Pada gambar di atas, SVM akan memilih garis merah sebagai hyperplane terbaik yang memisahkan kelas biru dan hijau.

Misalkan Anda memiliki dua jenis titik pada bidang yang dapat dipisahkan secara linier. SVM akan menemukan garis lurus yang membagi titik-titik tersebut menjadi dua jenis dan berjarak sejauh mungkin dari semuanya. Garis ini dikenal sebagai hyperplane, dan dipilih agar outlier tidak diabaikan, dan titik-titik dari kelas yang berbeda terpisah sejauh mungkin. Jika titik tidak dapat dipisahkan, SVM menggunakan transformasi kernel untuk meningkatkan dimensi titik.

Kasus yang dibahas di atas cukup mudah karena datanya dapat dipisahkan secara linier — seperti yang kita lihat, kita dapat menggambar garis lurus untuk memisahkan jenis titik merah dan biru.

Bagaimana jika data tidak dapat dipisahkan secara linier? Kami tidak akan dapat memisahkan kelas dengan menggambar hyperplane lurus. Untuk mengatasi tantangan ini, kita akan menambahkan dimensi ketiga ke dataset. Kami memiliki dua dimensi sampai sekarang: x dan y. Kami menciptakan dimensi dan mandat baru yang dihitung dengan cara yang nyaman bagi kami:z = x2 + y2.

Ini akan membuat ruang tiga dimensi dari titik sebelumnya. Kita dapat menyimpulkan dari gambar di bawah ini bahwa pada awalnya, titik-titik tidak dapat dipisahkan secara linier, tetapi setelah menerapkan fungsi kernel, kita dengan mudah memisahkan titik-titik data. Ada banyak fungsi kernel yang tersedia yang dapat Anda pilih sesuai dengan kasus useran Anda.

Keuntungan dari SVM

  1. Baik untuk data yang jumlah dimensinya lebih banyak daripada jumlah titik datanya.
  2. Baik untuk klasifikasi dan regresi.
  3. Ini adalah ruang yang dioptimalkan.
  4. Ini menangani outlier.

Kekurangan SVM

  1. Sulit untuk memilih fungsi kernel yang “baik”.
  2. Kumpulan data yang besar membutuhkan waktu pelatihan yang lama.
  3. Model terakhir sulit untuk dipahami dan diinterpretasikan, dengan bobot variabel dan dampak individu.
  4. Kami tidak dapat melakukan kalibrasi kecil pada model karena model akhir tidak mudah terlihat, sehingga sulit untuk menggabungkan logika bisnis kami.

Prediksi Arah Harga Saham Menggunakan SVM

Prediksi pasar saham dibuat dengan memprediksi nilai masa depan dari saham perusahaan atau instrumen keuangan lain yang diperdagangkan di bursa menggunakan analisis fundamental atau teknikal.

Manfaat dari prediksi pasar saham adalah memungkinkan Anda untuk berinvestasi dengan bijak dan menguntungkan.

Tugas pertama untuk implementasi ini adalah mengimpor semua pustaka dan modul dalam skrip kita. sklearn akan digunakan untuk membangun model, pandas akan digunakan untuk menangani bingkai data, dan numpy untuk aljabar linier. Di bawah ini adalah kebutuhan impor yang kami lakukan:

from sklearn.svm import SVC

from sklearn.metrics import accuracy_score

import pandas as pd

import numpy as np

Tugas selanjutnya adalah membaca dataset dari file tersebut. File akan berada di penyimpanan eksternal, dan Anda dapat mengdownload kumpulan data dari sini.

# Reading the CSV file from external storage

df = pd.read_csv('RELIANCE.csv')

Tetapkan tanggal waktu sebagai indeks bingkai data dan jatuhkan kolom “tanggal”

# Making date as index column

df.index = pd.to_datetime(df['Date'])

# drop the column named “Date”

df = df.drop(['Date'], axis='columns')

Tetapkan fitur input ke variabel

# Create predictor variables

df['Open-Close'] = df.Open - df.Close

df['High-Low'] = df.High - df.Low

# Store all predictor variables in a variable X

X = df[['Open-Close', 'High-Low']]

print(X.head())

Tetapkan kolom target ke variabel lain

# Target variables

y = np.where(df['Close'].shift(-1) > df['Close'], 1, 0)

print(y)

Pisahkan dataset menjadi sampel latih dan uji. Sampel kereta akan membangun model, sedangkan sampel uji akan mengidentifikasi akurasi model.

split = int(0.9*len(df))

# Train data set

X_train = X[:split]

y_train = y[:split]

# Test data set

X_test = X[split:]

y_test = y[split:]

Buat model SVM sekarang

# Support vector classifier

model = SVC().fit(X_train, y_train)

Anda dapat menemukan keakuratan model ini menggunakan berbagai metrik.

Untuk memprediksi sinyal saham, gunakan metode di bawah ini.

df['sig'] = model.predict(X)

Kesimpulan

Artikel ini membahas pembahasan, keuntungan, dan kasus useran Support Vector Machines. Ini adalah algoritma yang populer dan hemat ruang untuk tugas klasifikasi dan regresi, dan menggunakan prinsip geometris untuk memecahkan masalah kita. Kemudian, kami juga mengimplementasikan prediksi arah harga saham menggunakan algoritma SVM. Prediksi harga saham sangat membantu dalam dunia bisnis, dan ketika kita menggunakan otomatisasi untuk ini, itu menciptakan lebih banyak sensasi untuk masalah ini.

Related Posts