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

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

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

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

機械学習

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

Python

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

Q&A

解決済

1回答

25876閲覧

機械学習 訓練データ、検証データ、 テストデータ の割合について

aws

総合スコア48

XGBoost

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

機械学習

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

Python

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

0グッド

0クリップ

投稿2020/10/20 15:39

#XGBoostの各データの割合はどの程度にするのが一般的になりますか?
先日運用パラメータの選定でtrain/validation/test用いて検証すると良いとのアドバイスを頂きまして試そうと考えています。

現状は以下の様な割合で考えています。

  • train 80%
  • validation 10%
  • test 10%

##併せて学習した結果の受け取り方としてはvalidationとtestデータの正解率をどの様に考えると良いでしょうか?

結果例 1
validation 正解率60%
test 正解率60%

結果例 2
validation 正解率70%
test 正解率50%

結果例 3
validation 正解率50%
test 正解率70%

上記の様な結果例の場合、正解率の差が小さい方(結果例1)が良いと考えているのですがあっていますか?
validationとtestの差が大きい場合はどの様に調整すると良いでしょうか?


▼環境など
Windows 10
python 3.7
機械学習 XGBoost
パラメータの調整にoptunaを利用しています。

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

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

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

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

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

meg_

2020/10/20 22:43

まず、trainとvalidationの正解率の差が少ないものが良いと思います。
guest

回答1

0

ベストアンサー

XGBoostの各データの割合はどの程度にするのが一般的になりますか?

特に一般的というものはなく、データや目的に照らして調整するものと思います。
学習データが多いほどよい学習が出来ますが、検証、テストデータが少なければ過学習になりがちです。
強いて挙げると学習データは50%~80%くらいかなと思います。
また、単に学習/検証と分けるのではなく、クロスバリデーションなどの手法もあります。
交差検証(cross validation/クロスバリデーション)の種類を整理してみた

併せて学習した結果の受け取り方としてはvalidationとtestデータの正解率をどの様に考えると良いでしょうか?

上記の様な結果例の場合、正解率の差が小さい方(結果例1)が良いと考えているのですがあっていますか?

validationとtestの差が大きい場合はどの様に調整すると良いでしょうか?

正しいと思います。が、どちらかというと学習と検証/テストの正解率を比較するものだと思います。

差が開く場合は、
学習、検証、テスト間でのデータの分布を確認して偏っていればばらけさせる。

加えて、

結果例2(というか学習での正解率が高くて検証/テストでの正解率が低いとき)
過学習の可能性が大なので、
アルゴリズムのハイパーパラメータで過学習を抑える調整をする
学習データの比率を増やす
などが考えられます

結果例3(というか学習での正解率が低くて検証/テストでの正解率が高いとき)
ちょっと考えにくい状況ですが、各データの分布の偏りを確認する等でしょうか。

投稿2020/10/21 03:55

aokikenichi

総合スコア2235

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

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

aws

2020/10/21 20:54

ご回答ありがとうございます。 クロスバリデーションなどの手法のご案内もありがとうございます。 交差検証にも色々な種類がある様なので一通り試してみたいと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.37%

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

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

質問する

関連した質問