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

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

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

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

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Q&A

0回答

1762閲覧

XGBRegressorのobjective='reg:pseudohubererror'で上手く学習できない

tm1242

総合スコア1

XGBoost

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

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

0グッド

0クリップ

投稿2022/01/03 05:24

前提・実現したいこと

XGBRegressor(評価指標 MAE)で回帰モデルを作って予測を実行しましたが、予測値が全て0.5になってしまいます。
MAEの代替として使用しているobjective='reg:pseudohubererror'が上手く機能していないようで、他の指標だと学習できている状態です。

以下のmodel.predict(X)の結果が全て0.5になってしまいます。

該当のソースコード

from xgboost import XGBRegressor
from sklearn.datasets import load_boston

boston = load_boston()
df = pd.DataFrame(boston.data,columns=boston.feature_names)
df["MEDV"] = boston.target

X =df.loc[:,["CRIM","RM","LSTAT"]].values
y =df.loc[:,"MEDV"].values

model = XGBRegressor(booster='gbtree',
objective='reg:pseudohubererror', #'reg:pseudohubererror'
n_estimators=10 # チューニング前のモデル
)

model.fit(X,y)
model.predict(X)

試したこと

objective='reg:squarederror'に変更すると、予測値が"MEDV"に近しい値で出力されます。

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

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

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

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

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

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問