[Python 100日チャレンジ] Day 98 - プロジェクト: 株価予測システム
pandasとscikit-learnを使って、時系列データの特徴量作成から株価予測モデルの評価までを実践します。
[Python 100日チャレンジ] Day 98 - プロジェクト: 株価予測システム
今日のプロジェクト
Day 98では、株価データを題材に、機械学習の流れをまとめて練習します。実際の投資判断ではなく、時系列データと特徴量作成の学習が目的です。
データを準備する
Pandasをpdとして読み込み、少なくともdateとclose列を持つstock.csvを用意してください。rolling(5)で作るma5は最初の4行に欠損が出るため、その扱いを決めてから特徴量を作ります。予測する対象、Xとyの作成、モデルの選択、時系列に沿った分割はこの短い例には含まれていません。学習部分へ進む前に、学習期間が評価期間より前になっているかを確認しましょう。
1
2
3
df = pd.read_csv("stock.csv")
df["date"] = pd.to_datetime(df["date"])
df = df.sort_values("date")
特徴量を作る
1
2
df["ma5"] = df["close"].rolling(5).mean()
df["return"] = df["close"].pct_change()
移動平均や変化率のように、過去データから特徴量を作ります。
学習と評価
1
2
model.fit(X_train, y_train)
pred = model.predict(X_test)
時系列では、未来のデータが学習に混ざらないように分割します。
今日のゴール
株価予測プロジェクトでは、データ整理、特徴量作成、モデル学習、評価の流れを実践します。予測結果よりも、分析手順を丁寧に作ることを重視しましょう。
この投稿は投稿者によって CC BY 4.0 の下でライセンスされています。
