質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
XGBoost

XGBoostは、アンサンブル学習と決定木を組み合わせた手法です。弱学習器の構築時に、以前構築された弱学習器の結果を用いて弱学習器を構築。高度な汎化能力を持ち、勾配ブースティングとも呼ばれています。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

2633閲覧

Python 予測値の出力方法が分かりません

SuzuAya

総合スコア71

XGBoost

XGBoostは、アンサンブル学習と決定木を組み合わせた手法です。弱学習器の構築時に、以前構築された弱学習器の結果を用いて弱学習器を構築。高度な汎化能力を持ち、勾配ブースティングとも呼ばれています。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2020/08/30 08:48

編集2020/08/30 11:46

前提・実現したいこと

こちらの記事の「損失関数を利用した学習アプローチ」の図にある、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()

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

sklearn.linear_model の記事を参照されていますが、概ねモデル、予測などの関数は同じものの、アルゴリズムによって関数や引数が異なる場合があるので、公式、あるいはそのアルゴリズム自体の解説記事を参照した方がよろしいです。

XGBRegressor predict
あたりで検索されましたでしょうか。
検索しますと公式ドキュメントや分かりやすい記事が多数あります。

xgboost:Python API Reference
Basic prediction with XGBoost(XGBRegressor)
xgboost: テーブルデータに有効な機械学習モデル

投稿2020/08/31 03:44

aokikenichi

総合スコア2240

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問