線形基本学習器はブースティングでどのように機能しますか?そして、それはxgboostライブラリでどのように機能しますか?


9

XGBoostで線形目的関数と線形ブーストを実装する方法を知っています。私の具体的な質問は、アルゴリズムが残差(または負の勾配)に適合する場合、各ステップで1つの特徴(つまり、単変量モデル)またはすべての特徴(多変量モデル)を使用することですか?

XGBoostのリニアブーストに関するドキュメントへの参照はすべて高く評価されます。

編集: 'booster'パラメーターを 'gblinear'に設定することにより、XGBoostで線形ブーストを実装できます。リニアブースティングに関する有用な情報については、http//www.ncbi.nlm.nih.gov/pmc/articles/PMC3885826/を参照してください。私は目的関数(線形であることもあります)についてではなく、それら自体のブーストについて話していることに注意してください。

ありがとう!


1
私は、それが実装されていますかわからないが、私はそれは一度に一つの特徴を考慮すべきでない理由を見ない
アレクセイGrigorev

@AlexeyGrigorevはおそらく一度に多くの機能を必要としますが、これらの機能はどのように選択されますか?線形ブースティングの特定のプロセスに関するドキュメントは、非常に明確になります。
Escachator 2016

回答:


17

あなたの質問への短い答え:

アルゴリズムが残差(または負の勾配)に適合する場合、各ステップで1つの特徴(つまり、単変量モデル)を使用するか、すべての特徴(多変量モデル)を使用するか?

アルゴリズムは1つの機能を使用しているか、すべての機能が設定によって異なります。以下にリストする私の長い答えでは、意思決定の切り株と線形学習者の両方の例で、すべての機能を使用していますが、必要に応じて、機能のサブセットを適合させることもできます。サンプリング列(フィーチャー)は、特にフィーチャーの数が多い場合、モデルの分散を減らすか、モデルの「ロバスト性」を高めると見なされます。

ではxgboost、ツリーベース学習器の場合colsample_bytree、各反復に適合するようにサンプルフィーチャを設定できます。線形ベース学習者の場合、そのようなオプションはないため、すべての機能に適合するはずです。さらに、一般的にxgboostまたは勾配ブースティングで線形学習を使用する人はあまり多くありません。


ブースティングの弱学習器としての線形の長い答え:

ほとんどの場合、線形学習者を基本学習者として使用しない場合があります。その理由は単純です。複数の線形モデルを一緒に追加しても、線形モデルのままです。

モデルを後押しするのは、基本学習者の合計です。

f(x)=m=1Mbm(x)

ここで、はブースティングの反復回数、は回反復のモデルです。b m m t hMbmmth

たとえば、基本学習者が線形の場合、回の反復を実行し、 およびとします。、B 1 = β 0 + β 1 X B 2 = θ 0 + θ 1 X2b1=β0+β1xb2=θ0+θ1x

f(x)=m=12bm(x)=β0+β1x+θ0+θ1x=(β0+θ0)+(β1+θ1)x

これは単純な線形モデルです!つまり、アンサンブルモデルは、基本学習者と「同じパワー」を持っています。

さらに重要なことは、線形モデルを基本学習器として使用する場合、ブースティングで複数の反復を行う代わりに、線形システム解くことにより、1つのステップでそれを実行できます。XTXβ=XTy


したがって、線形学習者以外のモデルを基本学習者として使用したいと考えています。2つのツリーを追加することは1つのツリーと同じではないため、ツリーは適切なオプションです。私はそれを簡単なケースでデモします:意思決定の切り株は、1つの分割のみを持つツリーです。

私は関数フィッティングを行っています。ここで、データは単純な2次関数によって生成されます。これは、塗りつぶされた等高線グラウンドトゥルース(左)と最終決定株のブースティングフィッティング(右)です。f(x,y)=x2+y2

ここに画像の説明を入力してください

ここで、最初の4つの反復を確認します。

ここに画像の説明を入力してください

線形学習器とは異なり、4番目の反復のモデルは、他のパラメーターを使用した1回の反復(1つの単一の断端)では達成できません。


これまでのところ、なぜ人々が線形学習者を基本学習者として使用していないのかを説明しました。しかし、人々がそうすることを妨げるものは何もありません。線形モデルを基本学習器として使用し、反復数を制限する場合、線形システムを解くことと同じですが、解法プロセス中の反復数を制限します。

同じ例ですが、3Dプロットでは、赤い曲線がデータで、緑の平面が最終的な適合です。ご覧のとおり、最終的なモデルは線形モデルでありz=mean(data$label)、x、y平面に平行です。(なぜだと思いますか?これは、データが「対称」であるため、平面を傾けると損失が増えるためです)。ここで、最初の4回の反復で何が起こったかを確認します。フィットされたモデルは、最適値(平均)までゆっくりと上昇しています。

ここに画像の説明を入力してください


最終的な結論として、線形学習者は広く使用されていませんが、人々がそれを使用したり、Rライブラリに実装したりすることを妨げるものはありません。さらに、これを使用して反復数を制限し、モデルを正規化できます。

関連記事:

線形回帰の勾配ブースティング-なぜ機能しないのですか?

決定は線形モデルですか?


1
nの木の組み合わせは、nの大きさに関係なく、1つのツリーと言えます。
Metariat

@Metariat NO !、組み合わせツリーはツリーではありません!。ツリーの場合、分割すると「T」字形が表示されます。しかし、ブーストされた切り株には「#」の形が表示されます。つまり、分割は他の分割と交差します!
Haitao Du

n本の木の例を挙げていただけますか?同等の木を差し上げます!
Metariat 2017年

@メタリア申し訳ありませんが、今のところ時間はありません。しかし、決定木の切り株を後押しすることは、決定木では簡単に生成できないと確信しています。時間があるときにこの質問に戻ってきます。
Haitao Du

1
n本の木の組み合わせはまだ木であることに同意しますが、この木は大幅に大きくなります。最悪の場合、葉の数はすべての入力ツリーの葉の数の積に等しいため、そのようなツリーの複雑さは実用的ではありません。一方、線形関数の場合、複雑度はまったく同じです。
Tomek Tarczynski
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.