Python pembelajaran mesin seri waktu

Unicorn Investors ingin berinvestasi dalam bentuk transportasi baru – JetRail. JetRail menggunakan teknologi propulsi Jet untuk menjalankan rel dan memindahkan orang dengan kecepatan tinggi. Investasi hanya masuk akal jika mereka bisa mendapatkan lebih dari 1 Juta pengguna bulanan dalam 18 bulan ke depan. Untuk membantu Unicorn Ventures dalam mengambil keputusan, Anda perlu memperkirakan lalu lintas di JetRail untuk 7 bulan ke depan. Anda diberi data lalu lintas JetRail sejak awal dalam file uji

Anda bisa mendapatkan datasetnya di sini

Disarankan untuk melihat dataset setelah menyelesaikan bagian pembuatan hipotesis

Yuk Pahami, Apa Itu Data Time Series?

Time Series umumnya adalah data yang dikumpulkan dari waktu ke waktu dan bergantung padanya. Di sini kita melihat bahwa hitungan mobil tidak bergantung pada waktu, jadi ini bukan deret waktu. Sementara tingkat CO2 meningkat sehubungan dengan waktu, maka itu adalah deret waktu

Mari kita lihat definisi formal Time Series

Serangkaian poin data yang dikumpulkan dalam urutan waktu dikenal sebagai deret waktu. Sebagian besar rumah bisnis mengerjakan data deret waktu untuk menganalisis angka penjualan untuk tahun depan, lalu lintas situs web, jumlah lalu lintas, jumlah panggilan yang diterima, dll. Data deret waktu dapat digunakan untuk peramalan

Tidak setiap data yang dikumpulkan sehubungan dengan waktu mewakili deret waktu. Beberapa contoh prediksi deret waktu Python adalah

Harga saham

Jumlah Penumpang Maskapai

Suhu Dari Waktu ke Waktu

Sejumlah Pengunjung di Hotel

Sekarang kita dapat membedakan antara data Time Series dan non-Time Series. mari kita jelajahi Time Series lebih jauh

Sekarang setelah kita memiliki pemahaman tentang apa itu time series dan perbedaan antara time series dan non-time series, sekarang mari kita lihat komponen time series

Komponen Peramalan Deret Waktu dengan Python

1. Kecenderungan. Tren adalah arah umum di mana sesuatu berkembang atau berubah. Jadi kami melihat tren yang meningkat dalam deret waktu ini. Kita dapat melihat bahwa jumlah penumpang meningkat seiring dengan bertambahnya tahun. Mari kita memvisualisasikan tren deret waktu

Contoh

Di sini garis merah mewakili tren peningkatan deret waktu

2. Musiman. –  Pola lain yang jelas juga dapat dilihat pada deret waktu di atas, yaitu. e. , pola tersebut berulang pada interval waktu yang teratur yang dikenal sebagai musiman. Setiap perubahan atau pola yang dapat diprediksi dalam rangkaian waktu yang berulang atau berulang selama periode waktu tertentu dapat dikatakan musiman. Mari kita bayangkan musiman dari deret waktu

Contoh

Kita dapat melihat bahwa deret waktu mengulangi polanya setiap 12 bulan i. e ada puncak setiap tahun selama bulan Januari dan palung setiap tahun di bulan September, maka rangkaian waktu ini memiliki musiman 12 bulan

Perbedaan Antara Seri Waktu dan Masalah Regresi

Di sini Anda mungkin berpikir bahwa karena variabel target bersifat numerik, ia dapat diprediksi menggunakan teknik regresi, tetapi masalah deret waktu berbeda dari masalah regresi dengan cara berikut

  • Perbedaan utamanya adalah deret waktu bergantung pada waktu. Jadi asumsi dasar model regresi linier bahwa pengamatannya independen tidak berlaku dalam kasus ini
  • Seiring dengan tren naik atau turun, sebagian besar Time Series memiliki beberapa bentuk tren musiman, yaitu. e. variasi khusus untuk kerangka waktu tertentu
  • Jadi, memprediksi deret waktu menggunakan teknik regresi bukanlah pendekatan yang baik

    Analisis deret waktu terdiri dari metode untuk menganalisis data deret waktu untuk mengekstraksi statistik yang bermakna dan karakteristik data lainnya. Peramalan deret waktu adalah penggunaan model untuk memprediksi nilai masa depan berdasarkan nilai yang diamati sebelumnya

    Memahami Data

    Kita akan mulai dengan langkah pertama, i. e Pembangkitan Hipotesis. Pembuatan Hipotesis adalah proses membuat daftar semua faktor yang mungkin dapat mempengaruhi hasil

    Pembuatan hipotesis dilakukan sebelum melihat data untuk menghindari bias yang mungkin timbul setelah observasi

    1) Pembangkitan Hipotesis

    Akan ada peningkatan lalu lintas seiring berlalunya waktu

    • Penjelasan – Populasi memiliki tren umum yang meningkat seiring berjalannya waktu, jadi saya berharap lebih banyak orang bepergian dengan JetRail. Juga, secara umum, perusahaan memperluas bisnis mereka dari waktu ke waktu yang mengarah ke lebih banyak pelanggan yang bepergian melalui JetRail

    Lalu Lintas akan Tinggi dari Mei hingga Oktober

    • Penjelasan – Kunjungan wisatawan pada umumnya meningkat pada periode ini

    Lalu lintas pada Hari Kerja akan Lebih Banyak Dibandingkan dengan Akhir Pekan / Hari Libur

    • Penjelasan – Orang akan pergi ke kantor pada hari kerja sehingga lalu lintas akan lebih padat

    Lalu lintas selama Jam Puncak akan Tinggi

    • Penjelasan – Orang akan melakukan perjalanan untuk bekerja dan kuliah

    Kami akan mencoba memvalidasi masing-masing hipotesis ini berdasarkan dataset. Sekarang mari kita lihat datasetnya

    Setelah membuat hipotesis kami, kami akan mencoba untuk memvalidasi mereka. Sebelum itu, kami akan mengimpor semua paket yang diperlukan

    2) Menyiapkan Sistem dan Memuat Data

    Versi

    • Piton = 3. 7
    • Panda = 0. 20. 3
    • sklearn = 0. 19. 1

    Sekarang kita akan mengimpor semua paket yang akan digunakan di seluruh notebook

    import pandas as pd 
    import numpy as np          # For mathematical calculations 
    import matplotlib.pyplot as plt  # For plotting graphs 
    from datetime import datetime    # To access datetime 
    from pandas import Series        # To work on series 
    %matplotlib inline 
    import warnings                   # To ignore the warnings
    warnings.filterwarnings("ignore")

    Sekarang mari kita baca data kereta dan uji

    Kode Piton

    Mari kita buat salinan data latih dan uji sehingga meskipun kita melakukan perubahan pada dataset ini, kita tidak kehilangan dataset aslinya

    train_original=train.copy()
    test_original=test.copy()
    _

    Setelah memuat data, mari kita lihat sekilas dataset untuk mengetahui data kita dengan lebih baik

    3) Struktur dan Konten Kumpulan Data

    Mari selami lebih dalam dan lihat kumpulan datanya. Pertama-tama, mari kita lihat fitur-fitur di dataset train dan test

    train.columns, test.columns

    Python pembelajaran mesin seri waktu

    Kami memiliki ID, Datetime, dan jumlah penumpang yang sesuai di file pelatihan. Untuk file pengujian kami hanya memiliki ID dan Datetime sehingga kami harus memprediksi Hitungan untuk file pengujian

    Mari kita pahami setiap fitur terlebih dahulu

    • ID adalah nomor unik yang diberikan pada setiap titik pengamatan
    • Datetime adalah waktu dari setiap pengamatan
    • Hitungannya adalah jumlah penumpang yang sesuai dengan setiap Datetime

    Mari kita lihat tipe data dari setiap fitur

    train.dtypes, test.dtypes

    Python pembelajaran mesin seri waktu

    • ID dan Hitung dalam format integer sedangkan Datetime dalam format objek untuk file pelatihan
    • ID dalam bilangan bulat dan Datetime dalam format objek untuk file uji

    Sekarang kita akan melihat bentuk dataset

    train.shape, test.shape
    _

    Python pembelajaran mesin seri waktu

    Kami memiliki 18288 catatan berbeda untuk Jumlah penumpang di set kereta dan 5112 di set uji

    Sekarang kami akan mengekstrak lebih banyak fitur untuk memvalidasi hipotesis kami

    4) Ekstraksi Fitur

    Kami akan mengekstrak waktu dan tanggal dari Datetime. Kita telah melihat sebelumnya bahwa tipe data Datetime adalah objek. Jadi pertama-tama kita harus mengubah tipe data ke format DateTime jika tidak, kita tidak dapat mengekstraksi fitur darinya

    train['Datetime'] = pd.to_datetime(train.Datetime,format='%d-%m-%Y %H:%M') 
    test['Datetime'] = pd.to_datetime(test.Datetime,format='%d-%m-%Y %H:%M') 
    test_original['Datetime'] = pd.to_datetime(test_original.Datetime,format='%d-%m-%Y %H:%M') 
    train_original['Datetime'] = pd.to_datetime(train_original.Datetime,format='%d-%m-%Y %H:%M')

    Kami membuat beberapa hipotesis tentang pengaruh jam, hari, bulan, dan tahun terhadap jumlah penumpang. Jadi, mari ekstrak tahun, bulan, hari, dan jam dari Datetime untuk memvalidasi hipotesis kita

    for i in (train, test, test_original, train_original):
        i['year']=i.Datetime.dt.year 
        i['month']=i.Datetime.dt.month 
        i['day']=i.Datetime.dt.day    
        i['Hour']=i.Datetime.dt.hour
    _

    Kami membuat hipotesis untuk pola lalu lintas pada hari kerja dan juga akhir pekan. Jadi, mari buat variabel akhir pekan untuk memvisualisasikan dampak akhir pekan terhadap lalu lintas

    • Kami pertama-tama akan mengekstrak hari dalam seminggu dari Datetime dan kemudian berdasarkan nilai yang akan kami tetapkan apakah hari itu akhir pekan atau tidak
    • Nilai 5 dan 6 menunjukkan bahwa hari-hari tersebut adalah akhir pekan
    • train['day of week']=train['Datetime']. dt. hari dalam seminggu
    • temp = kereta['Tanggal waktu']

    Mari kita tetapkan 1 jika hari dalam seminggu adalah akhir pekan dan 0 jika hari dalam seminggu bukan akhir pekan

    def applyer(row):
        if row.dayofweek == 5 or row.dayofweek == 6:
            return 1
        else:
    train_original=train.copy()
    test_original=test.copy()
    0
    train_original=train.copy()
    test_original=test.copy()
    1

    Mari kita lihat deret waktu

    train_original=train.copy()
    test_original=test.copy()
    _2

    Python pembelajaran mesin seri waktu

    Di sini kita dapat menyimpulkan bahwa ada tren yang meningkat dalam rangkaian tersebut, yaitu. e. , jumlah hitungan meningkat terhadap waktu. Kita juga bisa melihat bahwa pada titik-titik tertentu terjadi peningkatan jumlah hitungan secara tiba-tiba. Alasan yang mungkin di balik ini bisa jadi pada hari tertentu, karena beberapa peristiwa lalu lintasnya tinggi

    Kami akan mengerjakan file pelatihan untuk semua analisis dan akan menggunakan file pengujian untuk peramalan

    Mari kita mengingat kembali hipotesis yang kita buat sebelumnya

    • Lalu lintas akan meningkat seiring berlalunya waktu
    • Lalu lintas akan tinggi dari Mei hingga Oktober
    • Lalu lintas pada hari kerja akan lebih banyak
    • Lalu lintas selama jam sibuk akan tinggi

    Setelah melihat kumpulan data, sekarang kita akan mencoba memvalidasi hipotesis kita dan membuat kesimpulan lain dari kumpulan data tersebut

    5) Analisis Eksplorasi

    Mari kita coba memverifikasi hipotesis kita menggunakan data aktual

    Hipotesis pertama kami adalah lalu lintas akan meningkat seiring berlalunya waktu. Jadi mari kita lihat jumlah penumpang tahunan

    train_original=train.copy()
    test_original=test.copy()
    _3

    Hipotesis kedua kami adalah tentang peningkatan lalu lintas dari Mei hingga Oktober. Jadi, mari kita lihat hubungan antara hitungan dan bulan

    train_original=train.copy()
    test_original=test.copy()
    _4

    Python pembelajaran mesin seri waktu

    Di sini terlihat penurunan rata-rata jumlah penumpang dalam tiga bulan terakhir. Ini tidak terlihat benar. Mari kita lihat rata-rata bulanan setiap tahun secara terpisah

    train_original=train.copy()
    test_original=test.copy()
    _5

    Python pembelajaran mesin seri waktu

    • Kami melihat bahwa bulan 10, 11, dan 12 tidak ada untuk tahun 2014 dan nilai rata-rata bulan-bulan ini di tahun 2012 jauh lebih sedikit
    • Karena ada tren yang meningkat dalam deret waktu kami, nilai rata-rata untuk bulan-bulan lainnya akan lebih banyak karena jumlah penumpang yang lebih besar di tahun 2014 dan kami akan mendapatkan nilai yang lebih kecil untuk 3 bulan ini

    Mari kita lihat rata-rata harian jumlah penumpang

    train_original=train.copy()
    test_original=test.copy()
    _6

    Python pembelajaran mesin seri waktu

    Kami tidak mendapatkan banyak wawasan dari hitungan harian penumpang. Kami juga membuat hipotesis bahwa lalu lintas akan lebih banyak pada jam sibuk. Jadi mari kita lihat rata-rata jumlah penumpang per jam

    train_original=train.copy()
    test_original=test.copy()
    _7

    Python pembelajaran mesin seri waktu

    • Dapat disimpulkan bahwa lalu lintas puncak adalah pada jam 7 malam dan kemudian kita melihat tren penurunan hingga jam 5 pagi

    Mari kita coba memvalidasi hipotesis kami di mana kami berasumsi bahwa lalu lintas akan lebih banyak pada hari kerja

    Python pembelajaran mesin seri waktu

    Dapat disimpulkan dari plot di atas bahwa lalu lintas lebih banyak pada hari kerja dibandingkan dengan akhir pekan yang memvalidasi hipotesis kami

    Sekarang kita akan mencoba melihat jumlah penumpang harian

    Catatan. -  0 adalah awal minggu, i. e. , 0 adalah hari Senin dan 6 adalah hari Minggu

    train_original=train.copy()
    test_original=test.copy()
    _8

    Python pembelajaran mesin seri waktu

    Dari diagram batang di atas, kita dapat menyimpulkan bahwa jumlah penumpang pada hari Sabtu dan Minggu lebih sedikit dibandingkan dengan hari-hari lain dalam seminggu. Sekarang kita akan melihat teknik pemodelan dasar. Sebelum itu, kami akan menghapus variabel ID karena tidak ada hubungannya dengan jumlah penumpang

    kereta api = kereta api. jatuhkan('ID',1)

    Seperti yang telah kita lihat bahwa ada banyak noise dalam deret waktu per jam, kami akan menggabungkan deret waktu per jam menjadi deret waktu harian, mingguan, dan bulanan untuk mengurangi kebisingan dan membuatnya lebih stabil dan karenanya akan lebih mudah untuk sebuah model.

    train_original=train.copy()
    test_original=test.copy()
    _9

    Mari kita lihat deret waktu per jam, harian, mingguan, dan bulanan

    train.columns, test.columns
    0

    Python pembelajaran mesin seri waktu

    Kita dapat melihat bahwa deret waktu menjadi semakin stabil ketika kita menggabungkannya setiap hari, setiap minggu, dan setiap bulan.

    Tetapi akan sulit untuk mengubah prediksi bulanan dan mingguan menjadi prediksi per jam, karena pertama-tama kita harus mengubah prediksi bulanan menjadi mingguan, mingguan menjadi harian, dan prediksi harian menjadi per jam, yang akan menjadi proses yang sangat luas. Jadi, kami akan mengerjakan deret waktu harian

    train.columns, test.columns
    1

    Teknik Pemodelan dan Evaluasi

    Karena kami telah memvalidasi semua hipotesis kami, mari lanjutkan dan buat model untuk Time Series Forecasting. Tetapi sebelum kita melakukan itu, kita memerlukan dataset (validasi) untuk memeriksa kinerja dan kemampuan generalisasi model kita. Di bawah ini adalah beberapa properti dari kumpulan data yang diperlukan untuk tujuan dalam artikel ini untuk (Peramalan Deret Waktu)

    • Kumpulan data harus memiliki nilai sebenarnya dari variabel dependen yang prediksinya dapat diperiksa. Oleh karena itu, kumpulan data uji tidak dapat digunakan untuk tujuan ini
    • Model tidak boleh dilatih pada dataset validasi. Oleh karena itu, kami tidak dapat melatih model pada dataset pelatihan dan juga memvalidasinya

    Jadi, karena dua alasan di atas, kami biasanya membagi kumpulan data kereta menjadi dua bagian. Satu bagian digunakan untuk melatih model dan bagian lainnya digunakan sebagai dataset validasi. Sekarang ada beberapa cara untuk membagi dataset pelatihan seperti Divisi Acak dll

    1) Memisahkan data menjadi bagian pelatihan dan validasi

    Sekarang kita akan membagi data kita menjadi pelatihan dan validasi. Kita akan membuat model pada bagian train dan memprediksi pada bagian validasi untuk mengecek keakuratan prediksi kita

    CATATAN. -  Selalu merupakan praktik yang baik untuk membuat kumpulan validasi yang dapat digunakan untuk menilai model kita secara lokal. Jika metrik validasi(rmse) berubah sebanding dengan skor papan peringkat publik, ini menyiratkan bahwa kami telah memilih teknik validasi yang stabil

    Untuk membagi data menjadi set pelatihan dan validasi, kami akan mengambil 3 bulan terakhir sebagai data validasi dan sisanya sebagai data pelatihan. Kami hanya akan mengambil 3 bulan karena tren akan menjadi yang paling banyak di dalamnya. Jika kami mengambil lebih dari 3 bulan untuk set validasi, set pelatihan kami akan memiliki lebih sedikit poin data karena total durasinya adalah 25 bulan. Jadi, akan menjadi pilihan yang baik untuk mengambil 3 bulan untuk set validasi

    Tanggal mulai dari dataset adalah 25-08-2012 seperti yang telah kita lihat di bagian eksplorasi dan tanggal berakhirnya adalah 25-09-2014

    train.columns, test.columns
    2
    • Kami telah melakukan validasi berbasis waktu di sini dengan memilih 3 bulan terakhir untuk data validasi dan sisanya di data kereta. Jika kita melakukannya secara acak, ini mungkin bekerja dengan baik untuk dataset pelatihan tetapi tidak akan bekerja secara efektif pada dataset validasi
    • Mari kita pahami dengan cara ini. Jika kita memilih pembagian secara acak akan mengambil beberapa nilai dari awal dan beberapa dari tahun-tahun terakhir juga. Ini mirip dengan memprediksi nilai lama berdasarkan nilai masa depan yang tidak terjadi dalam skenario nyata. Jadi, pemisahan semacam ini digunakan saat bekerja dengan masalah yang berhubungan dengan waktu

    Sekarang kita akan melihat bagaimana bagian pelatihan dan validasi telah dibagi

    train.columns, test.columns
    _3

    Python pembelajaran mesin seri waktu

    Di sini bagian biru mewakili data kereta dan bagian oranye mewakili data validasi

    Kami akan memprediksi lalu lintas untuk bagian validasi dan kemudian memvisualisasikan seberapa akurat prediksi kami. Terakhir, kami akan membuat prediksi untuk dataset uji

    Kami akan melihat berbagai model untuk Time Series Forecasting. Metode yang akan kita bahas untuk peramalan adalah

    1. Pendekatan Naif
    2. Rata-Rata Bergerak
    3. Smoothing Eksponensial Sederhana
    4. Model Tren Linear Holt

    Kami akan membahas masing-masing metode ini secara rinci sekarang

    i) Pendekatan Naif

    Dalam teknik peramalan ini, kami mengasumsikan bahwa titik yang diharapkan berikutnya sama dengan titik yang diamati terakhir. Jadi kita bisa mengharapkan garis horizontal lurus sebagai prediksi. Mari kita pahami dengan contoh dan gambar

    Misalkan kita memiliki jumlah penumpang selama 5 hari seperti yang ditunjukkan di bawah ini

    Python pembelajaran mesin seri waktu

    Dan kita harus memprediksi jumlah penumpang untuk 2 hari ke depan. Pendekatan naif akan menetapkan jumlah penumpang hari ke-5 ke hari ke-6 dan ke-7, i. e. , 15 akan ditugaskan pada hari ke-6 dan ke-7

    Python pembelajaran mesin seri waktu

    Sekarang mari kita pahami dengan sebuah contoh

    Python pembelajaran mesin seri waktu

    Contoh. -

    Garis biru adalah prediksi di sini. Semua prediksi sama dengan titik pengamatan terakhir

    Mari membuat prediksi menggunakan pendekatan naif untuk set validasi

    train.columns, test.columns
    _4

    Python pembelajaran mesin seri waktu

    • Kami dapat menghitung seberapa akurat prediksi kami menggunakan rmse(Root Mean Square Error)
    • rmse adalah standar deviasi dari residual
    • Residu adalah ukuran seberapa jauh dari titik data garis regresi
    • Rumus untuk rmse adalah

    rmse=sqrt∑i=1N1N(p−a)2

    Kami sekarang akan menghitung RMSE untuk memeriksa keakuratan model kami pada kumpulan data validasi

    train.columns, test.columns
    5

    Kami dapat menyimpulkan bahwa metode ini tidak cocok untuk kumpulan data dengan variabilitas tinggi. Kita dapat mengurangi nilai rmse dengan mengadopsi teknik yang berbeda

    2) Rata-Rata Bergerak

    • Dalam teknik ini, kami akan mengambil rata-rata jumlah penumpang untuk beberapa periode waktu terakhir saja

    Mari kita ambil contoh untuk memahaminya

    Python pembelajaran mesin seri waktu

    Contoh

    Di sini prediksi dibuat berdasarkan rata-rata dari beberapa poin terakhir alih-alih mengambil semua nilai yang diketahui sebelumnya

    Mari coba rolling mean selama 10, 20, dan 50 hari terakhir dan visualisasikan hasilnya

    train.columns, test.columns
    6
    train.columns, test.columns
    7

    Python pembelajaran mesin seri waktu

    train.columns, test.columns
    _8

    Python pembelajaran mesin seri waktu

    train.columns, test.columns
    _9

    Python pembelajaran mesin seri waktu

    Kami mengambil rata-rata dari 10, 20, dan 50 pengamatan terakhir dan memprediksi berdasarkan itu. Nilai ini dapat diubah dalam kode di atas. bergulir(). mean() bagian. Kita dapat melihat bahwa prediksi semakin lemah seiring bertambahnya jumlah pengamatan

    train.dtypes, test.dtypes
    0

    3) Pemulusan Eksponensial Sederhana

    Dalam teknik ini, kami menetapkan bobot yang lebih besar untuk pengamatan yang lebih baru daripada pengamatan dari masa lalu yang jauh

    Bobot menurun secara eksponensial karena pengamatan berasal lebih jauh di masa lalu, bobot terkecil dikaitkan dengan pengamatan tertua

    CATATAN. - – Jika kita memberikan seluruh bobot hanya pada nilai yang diamati terakhir, metode ini akan mirip dengan pendekatan naif. Jadi, kita dapat mengatakan bahwa pendekatan naif juga merupakan teknik pemulusan eksponensial sederhana di mana seluruh bobot diberikan pada nilai pengamatan terakhir.

    Mari kita lihat contoh pemulusan eksponensial sederhana

    Python pembelajaran mesin seri waktu

    Contoh

    Di sini prediksi dibuat dengan memberikan bobot yang lebih besar pada nilai-nilai terkini dan bobot yang lebih kecil pada nilai-nilai lama

    train.dtypes, test.dtypes
    1
    train.dtypes, test.dtypes
    2

    Python pembelajaran mesin seri waktu

    train.dtypes, test.dtypes
    _3

    113. 43708111884514

    Kita dapat menyimpulkan bahwa kecocokan model telah meningkat seiring dengan berkurangnya nilai rmse

    4) Model Tren Linear Holt

    • Ini adalah perpanjangan dari pemulusan eksponensial sederhana untuk memungkinkan peramalan data dengan tren
    • Metode ini memperhitungkan tren dataset. Fungsi ramalan dalam metode ini merupakan fungsi dari level dan trend

    Pertama-tama mari kita memvisualisasikan tren, musiman, dan kesalahan dalam rangkaian tersebut

    Kita dapat menguraikan deret waktu menjadi empat bagian

    • Teramati, yang merupakan deret waktu asli
    • Trend, yaitu menunjukkan trend pada time series, i. e. , meningkatkan atau menurunkan perilaku deret waktu
    • Musiman, yang memberi tahu kita tentang musiman dalam deret waktu
    • Residu, yang diperoleh dengan menghilangkan tren atau musim apa pun dalam deret waktu

    Mari kita visualisasikan semua bagian ini

    train.dtypes, test.dtypes
    _4

    Python pembelajaran mesin seri waktu

    Tren yang meningkat dapat dilihat pada dataset, jadi sekarang kita akan membuat model berdasarkan tren tersebut

    train.dtypes, test.dtypes
    5
    train.dtypes, test.dtypes
    6

    Python pembelajaran mesin seri waktu

    Kita dapat melihat garis miring di sini karena model telah mempertimbangkan tren deret waktu

    Mari kita hitung nilai modelnya

    train.dtypes, test.dtypes
    _7

    112. 94278345314041

    Dapat disimpulkan bahwa nilai rmse mengalami penurunan

    Sekarang kita akan memprediksi jumlah penumpang untuk dataset uji menggunakan berbagai model

    Media yang ditampilkan dalam artikel ini bukan milik Analytics Vidhya dan digunakan atas kebijaksanaan Penulis

    Apakah deret waktu adalah pembelajaran mesin?

    Deret waktu adalah teknik pembelajaran mesin yang memperkirakan nilai target hanya berdasarkan riwayat nilai target yang diketahui. Ini adalah bentuk regresi khusus, yang dikenal dalam literatur sebagai pemodelan regresi otomatis. Input untuk analisis deret waktu adalah urutan nilai target.

    Apakah Python bagus untuk deret waktu?

    Python menyediakan banyak pustaka dan alat yang mudah digunakan untuk melakukan peramalan deret waktu dengan Python . Secara khusus, pustaka statistik di Python memiliki alat untuk membuat model ARMA, model ARIMA, dan model SARIMA hanya dengan beberapa baris kode.

    Model pembelajaran mesin mana yang terbaik untuk data deret waktu?

    Model machine learning terbaik untuk perkiraan deret waktu .
    Model naif. .
    Model pemulusan eksponensial. .
    ARIMA/SARIMA. .
    Metode regresi linier. .
    Multi-Lapisan Perceptron (MLP).
    Jaringan Syaraf Berulang (RNN).
    Memori Jangka Pendek Panjang (LSTM).
    Kaggle

    Apa yang lebih baik dari LSTM untuk deret waktu?

    Model ARIMA menghasilkan nilai error yang lebih rendah daripada model LSTM dalam rangkaian bulanan dan mingguan yang menunjukkan bahwa ARIMA lebih berhasil daripada LSTM untuk peramalan bulanan dan mingguan. Sedangkan nilai error yang dihasilkan oleh LSTM lebih rendah dibandingkan dengan ARIMA untuk peramalan harian pada model rolling forecasting.