データ時代の到来により、ますます多くのデータが収集され、分析や予測に使用されます。時系列データは、時間に基づく一連のデータを含む一般的なデータ タイプです。このタイプのデータを予測するために使用される方法は、時系列予測手法と呼ばれます。 Python は、強力なデータ サイエンスと機械学習のサポートを備えた非常に人気のあるプログラミング言語であるため、時系列予測にも非常に適したツールです。
この記事では、Python で一般的に使用される時系列予測手法をいくつか紹介し、実際のプロジェクトでの使用例をいくつか示します。
定常時系列とは、統計的特性が時間の経過とともに変動し、時間の経過とともに変化しない時系列を指します。多くの場合、時系列データは静止していません。つまり、時間傾向と季節成分が含まれています。このデータを定常時系列に変換するには、連続する 2 つの時点の差を計算する差分手法を使用できます。 Python の pandas ライブラリは、この操作を実行するために使用できる関数を提供します。
次は、差分手法を使用して非定常時系列を定常時系列に変換する例です:
import pandas as pd # 读取时间序列数据 data = pd.read_csv("time_series_data.csv", header=None) # 对数据进行一阶差分 data_diff = data.diff().dropna()
移動平均とは 元データの同じ期間の値を、一定期間のデータの平均値に置き換える方法を指します。これは、rolling() 関数で実装された pandas ライブラリを使用して実装できます。移動平均は、ノイズの除去、時系列の平滑化、傾向や周期的 (季節性など) 要素の発見に役立ちます。
移動平均を使用して次の時系列値を予測する方法のコード例を次に示します:
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)
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)
以上がPython での時系列予測のヒントの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。