前提・実現したいこと
2020/1/20~2020/6/30までのデータを,「過去20日分のデータを入力し,将来20日分のデータを出力する」ような形で読み込むにはどうしたらいいかアドバイスをいただけますと幸いです.
(例:2020/1/20~2020/2/8までのデータを入力し,2020/2/9~2020/2/28までのデータを出力する)
データの詳細:2020/1/20~2020/6/30までの韓国における新型コロナ感染者のデータです.
感染日,性別,年齢,居住地などの情報が含まれています.
これらの情報をXGBOOSTの回帰モデルに入力し,予測感染者数を出力させたいと考えております.
該当のソースコード
データの前処理部分は割愛させていただきます.
Python
1import pandas as pd 2import numpy as np 3import xgboost as xgb 4from sklearn.model_selection import GridSearchCV 5from sklearn.metrics import mean_squared_error 6import matplotlib.pyplot as plt 7from sklearn.externals import joblib 8 9df = pd.read_csv("data.csv") 10#print(df.head) 11 12# データを特徴量と目的変数に分ける 13df_x = df 14df_y = df[['感染者数']] 15 16#print(df_x.head()) 17#print(df_y.head()) 18 19# xgboostモデルの作成 20reg = xgb.XGBRegressor() 21 22# ハイパーパラメータ探索 23reg_cv = GridSearchCV(reg, {'learning_rate':[0.01,0.03,0.05,0.1,0.3],'min_child_weight': [1,2,3,4,5], 'max_depth': [2,4,6,8,10], 'n_estimators': [50,100,200,300,400,500]}, verbose=1) 24 25train_x = df_x[5:29]# この部分をどう修正したらよいか分かりません 26train_y = df_y[29:53]# この部分をどう修正したらよいか分かりません 27 28reg_cv.fit(train_x, train_y) 29print(reg_cv.best_params_, reg_cv.best_score_) 30 31# 改めて最適パラメータで学習 32reg = xgb.XGBRegressor(**reg_cv.best_params_) 33reg.fit(train_x, train_y) 34
試したこと
こちらのサイトを参考に,データの前処理を試みたのですが,うまく今回のケースに適用することができませんでした.
回答2件
あなたの回答
tips
プレビュー