ホームページ  >  記事  >  バックエンド開発  >  Python での時系列予測のヒント

Python での時系列予測のヒント

PHPz
PHPzオリジナル
2023-06-10 08:10:441673ブラウズ

データ時代の到来により、ますます多くのデータが収集され、分析や予測に使用されます。時系列データは、時間に基づく一連のデータを含む一般的なデータ タイプです。このタイプのデータを予測するために使用される方法は、時系列予測手法と呼ばれます。 Python は、強力なデータ サイエンスと機械学習のサポートを備えた非常に人気のあるプログラミング言語であるため、時系列予測にも非常に適したツールです。

この記事では、Python で一般的に使用される時系列予測手法をいくつか紹介し、実際のプロジェクトでの使用例をいくつか示します。

  1. 定常時系列と差分手法

定常時系列とは、統計的特性が時間の経過とともに変動し、時間の経過とともに変化しない時系列を指します。多くの場合、時系列データは静止していません。つまり、時間傾向と季節成分が含まれています。このデータを定常時系列に変換するには、連続する 2 つの時点の差を計算する差分手法を使用できます。 Python の pandas ライブラリは、この操作を実行するために使用できる関数を提供します。

次は、差分手法を使用して非定常時系列を定常時系列に変換する例です:

import pandas as pd

# 读取时间序列数据
data = pd.read_csv("time_series_data.csv", header=None)

# 对数据进行一阶差分
data_diff = data.diff().dropna()
  1. 移動平均

移動平均とは 元データの同じ期間の値を、一定期間のデータの平均値に置き換える方法を指します。これは、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)
  1. 自己回帰移動平均 (ARIMA)
# #自動回帰移動平均 (ARIMA) は、一般的に使用される時系列予測モデルです。これは、自己回帰プロセスと移動平均プロセスで構成される線形モデルであり、Python の statamod ライブラリの ARIMA() 関数を使用して実装でき、時系列データの定常性と移動平均のパラメーターを指定できます。 。

これは、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)

概要

Python には、時系列分析と予測のための強力なツールがあります。その中でも、定常時系列と差分技術は、非定常時系列を定常時系列に変換できます。移動平均は、ノイズを低減し、時系列を滑らかにするために広く使用されている平滑化手法です。自己回帰移動平均 (ARIMA) は、自己回帰平均と移動平均を使用する一般的に使用される時系列予測モデルです。

これらのテクノロジを使用すると、株価予測や天気予報などのアプリケーション シナリオを使用して、独立した反復可能な時系列分析および予測コードを Python で作成できます。

以上がPython での時系列予測のヒントの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。