前提・実現したいこと
こちらの記事の「損失関数を利用した学習アプローチ」の図にある、yp(予測値)を出力したいのですが、やり方が分からず質問をさせていただきます。
お手数をおかけしますがどなたかご教示いただけないでしょうか。
下記のソースコードにyp(予測値)を出力するコードを追記できればと思っております。
現在、XGBOOSTを使って回帰モデルを作成しています。
使っているデータは韓国の1月~6月までの新型コロナ感染者に関するもので、年齢や性別や居住地といった特徴量を入力し、韓国の地域ごとの将来の感染者数の予測を出力するということをやっています。
モデルの精度をより上げるために、予測値と正解値を使ってオリジナルの目的関数を作りたいと思っており、質問をさせていただいた次第です。
【追記】
こちらの記事の「7.13 学習と検証」でやられているように、学習データに対してpredict関数を適用すればいいのでしょうか?
該当のソースコード
Python
1import pandas as pd 2import numpy as np 3import xgboost as xgb 4from sklearn.metrics import mean_squared_error 5import matplotlib.pyplot as plt 6 7df = pd.read_csv("Corona Korean data_by day_as of 0630.csv") 8#print(df.head) 9 10# データを特徴量と目的変数に分ける 11df_x = df 12df_y = df[['Province No. 1']] 13#print(df_x.head()) 14#print(df_y.head()) 15 16# カウンター初期化 17counter = 1 18 19# 学習データの開始行番号 20train_x_start = 0 21train_y_start = 20 22 23# 学習データの終了行番号 24train_x_end = 20# train_end = 24 25train_y_end = 40 26 27# スライドするデータ件数 28slide_rows = 1 29 30# xgboostモデルの作成 31reg = xgb.XGBRegressor() 32 33reg = xgb.XGBRegressor(verbose=1, 34 objective='reg:squarederror', 35 tree_method='auto', 36 gamma=1, 37 reg_alpha=0, 38 min_child_weight=1, 39 max_depth=2, 40 n_estimators=5000, 41 early_stopping_rounds=10) 42 ) 43 44while True: 45 46 # 行番号を指定して、元データから学習データを抽出 47 train_x = df_x[train_x_start : train_x_end] 48 train_y = df_y[train_y_start : train_y_end] 49 50 reg.fit(train_x, train_y) 51 filename = 'Province_1_model_train{}'.format(train_x_start) 52 reg.save_model(filename) 53 54 # データをスライドさせる 55 train_x_start += slide_rows 56 train_y_start += slide_rows 57 train_x_end += slide_rows 58 train_y_end += slide_rows 59 60 # カウンター加算 61 counter += 1 62 63 if train_x_start > 83: 64 break 65 66 reg.load_model(filename) # load data 67 68# Feature Importance の情報を持つ辞書を出力 69#print(reg.get_fscore()) 70 71# 性能向上に寄与する度合いで重要度をプロットする 72_, ax = plt.subplots(figsize=(12, 4)) 73xgb.plot_importance(reg, ax=ax) 74plt.show()
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。