Dengan kemunculan era data, semakin banyak data dikumpul dan digunakan untuk analisis dan ramalan. Data siri masa ialah jenis data biasa yang mengandungi siri data berdasarkan masa. Kaedah yang digunakan untuk meramal jenis data ini dipanggil teknik ramalan siri masa. Python ialah bahasa pengaturcaraan yang sangat popular dengan sains data yang kukuh dan sokongan pembelajaran mesin, jadi ia juga merupakan alat yang sangat sesuai untuk ramalan siri masa.
Artikel ini akan memperkenalkan beberapa teknik ramalan siri masa yang biasa digunakan dalam Python dan memberikan beberapa contoh penggunaannya dalam projek sebenar.
Siri masa pegun merujuk kepada siri masa yang ciri statistiknya berubah-ubah mengikut peredaran masa dan tidak berubah mengikut peredaran masa. Dalam kebanyakan kes, data siri masa tidak pegun, bermakna ia mempunyai arah aliran masa dan komponen bermusim. Untuk menukar data ini kepada siri masa pegun, kita boleh menggunakan teknik pembezaan, yang mengira perbezaan antara dua titik masa berturut-turut. Pustaka panda dalam Python menyediakan fungsi yang boleh digunakan untuk melaksanakan operasi ini.
Berikut ialah contoh menukar siri masa tidak pegun kepada siri masa pegun menggunakan teknik pembezaan:
import pandas as pd # 读取时间序列数据 data = pd.read_csv("time_series_data.csv", header=None) # 对数据进行一阶差分 data_diff = data.diff().dropna()
purata bergerak ialah Merujuk kepada kaedah menggantikan nilai tempoh masa yang sama dalam data asal dengan nilai min data dalam tempoh masa tertentu. Ia boleh dilaksanakan menggunakan perpustakaan panda yang dilaksanakan dengan fungsi rolling(). Purata bergerak berguna untuk mengalih keluar hingar, melicinkan siri masa dan menemui arah aliran dan komponen kitaran (seperti kemusim).
Berikut ialah contoh kod tentang cara menggunakan purata bergerak untuk meramalkan nilai siri masa seterusnya:
import pandas as pd import numpy as np # 读取时间序列数据 data = pd.read_csv("time_series_data.csv", header=None) # 使用5个数据点进行移动平均 rolling_mean = data.rolling(window=5).mean()[5:] # 预测下一个时间步的值 last_value = data.values[-1][0] prediction = np.mean(rolling_mean) + last_value print(prediction)
Purata pergerakan Regresi Auto (ARIMA) ialah model ramalan siri masa yang biasa digunakan. Ia ialah model linear yang terdiri daripada proses autoregresif dan proses purata bergerak, yang boleh dilaksanakan menggunakan fungsi ARIMA() dalam perpustakaan statamod dalam Python, yang membolehkan kami menentukan parameter pegun dan purata bergerak data siri masa .
Berikut ialah kod sampel untuk ramalan siri masa menggunakan model ARIMA:
from statsmodels.tsa.arima_model import ARIMA # 读取时间序列数据 data = pd.read_csv("time_series_data.csv", header=None).values.flatten() # 训练ARIMA模型 model = ARIMA(data, order=(2, 1, 0)) model_fit = model.fit(disp=0) # 预测未来 n 个时间点的值 future_prediction = model_fit.predict(start=len(data), end=len(data)+n-1)
Ringkasan
Python mempunyai alatan berkuasa untuk analisis dan ramalan siri masa. Antaranya, siri masa pegun dan teknik perbezaan boleh menukar siri masa tidak pegun kepada siri masa pegun. Purata bergerak ialah teknik pelicinan yang digunakan secara meluas untuk mengurangkan bunyi bising dan siri masa yang lancar. Autoregressive moving average (ARIMA) ialah model ramalan siri masa yang biasa digunakan yang menggunakan autoregressive dan purata bergerak.
Dengan menggunakan teknologi ini, anda boleh menulis analisis siri masa dan kod ramalan bebas dan boleh ulang dalam Python, dengan senario aplikasi termasuk ramalan stok, ramalan cuaca, dsb.
Atas ialah kandungan terperinci Petua Ramalan Siri Masa dalam Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!