タグ付けされた質問 「boosting」

弱予測モデルを強予測モデルに組み合わせるアルゴリズムのファミリー。最も一般的なアプローチは勾配ブースティングと呼ばれ、最も一般的に使用される弱いモデルは分類/回帰ツリーです。

2
ニューラルネットワークの強化
つい最近、私はアダブースト、勾配ブーストなどのブースティングアルゴリズムの学習に取り組んでおり、最も一般的に使用される弱学習器はツリーであるという事実を知っています。基本学習者としてニューラルネットワークを使用するための最近の成功例(論文または記事を意味します)があることを本当に知りたいです。

4
「半教師付き学習」-これは過剰適合ですか?
私は、Kaggleコンペティション(マルウェア分類)の勝利ソリューションのレポートを読んでいました。レポートはこのフォーラムの投稿にあります。問題は、トレインセットに10000個の要素、テストセットに10000個の要素がある分類問題(9つのクラス、メトリックは対数損失)でした。 競争中、モデルはテストセットの30%に対して評価されました。もう1つの重要な要素は、モデルのパフォーマンスが非常に優れていたことです(100%に近い精度) 著者は次の手法を使用しました。 もう1つの重要なテクニックは、半教師あり学習です。最初に、最適なモデルの最大確率を選択して、テストセットの擬似ラベルを生成します。次に、トレインデータとテストデータの両方を使用して、クロス検証方式でテストセットを再度予測します。たとえば、テストデータセットは4つのパートA、B、C、Dに分割されます。トレーニングデータ全体と、疑似ラベル付きのテストデータA、B、Cを新しいトレーニングセットとして使用し、テストを予測します。 Dを設定します 同じ方法を使用してA、B、Cを予測します。Xiaozhouによって発明されたこのアプローチは驚くほどうまく機能し、ローカルクロス検証損失、パブリックLB損失、プライベートLB損失を削減します。最高の半教師あり学習モデルは、プライベートLBログ損失で0.0023を達成できます。これは、すべてのソリューションで最高のスコアです。 結果をどのように改善できるのか、本当にわかりません。それは、テストセットの30%が「漏出」し、この情報を使用する方法だったからでしょうか。 それとも、なぜ機能するのかを説明する理論的な理由はありますか?

4
新しいベクターをPCA空間に投影する方法は?
主成分分析(PCA)を実行した後、新しいベクトルをPCA空間に投影します(つまり、PCA座標系で座標を見つけます)。 を使用してR言語でPCAを計算しましたprcomp。これで、ベクトルにPCA回転行列を掛けることができるはずです。このマトリックスの主成分を行または列に配置する必要がありますか?
21 r  pca  r  variance  heteroscedasticity  misspecification  distributions  time-series  data-visualization  modeling  histogram  kolmogorov-smirnov  negative-binomial  likelihood-ratio  econometrics  panel-data  categorical-data  scales  survey  distributions  pdf  histogram  correlation  algorithms  r  gpu  parallel-computing  approximation  mean  median  references  sample-size  normality-assumption  central-limit-theorem  rule-of-thumb  confidence-interval  estimation  mixed-model  psychometrics  random-effects-model  hypothesis-testing  sample-size  dataset  large-data  regression  standard-deviation  variance  approximation  hypothesis-testing  variance  central-limit-theorem  kernel-trick  kernel-smoothing  error  sampling  hypothesis-testing  normality-assumption  philosophical  confidence-interval  modeling  model-selection  experiment-design  hypothesis-testing  statistical-significance  power  asymptotics  information-retrieval  anova  multiple-comparisons  ancova  classification  clustering  factor-analysis  psychometrics  r  sampling  expectation-maximization  markov-process  r  data-visualization  correlation  regression  statistical-significance  degrees-of-freedom  experiment-design  r  regression  curve-fitting  change-point  loess  machine-learning  classification  self-study  monte-carlo  markov-process  references  mathematical-statistics  data-visualization  python  cart  boosting  regression  classification  robust  cart  survey  binomial  psychometrics  likert  psychology  asymptotics  multinomial 

2
AdaBoostはオーバーフィッティングになりやすいですか?
私は、AdaBoost(または他のブースティングテクニック)が他の学習方法と比較して過剰適合になりやすいかどうかにかかわらず、さまざまな(一見)矛盾するステートメントを読みました。 どちらかを信じる正当な理由はありますか?依存する場合、何に依存しますか?AdaBoostがオーバーフィットしにくい/多い傾向がある理由は何ですか?

3
XGBoost対Python Sklearn勾配ブーストツリー
XGBoostの仕組みを理解しようとしています。Python sklearnで勾配ブーストされたツリーがどのように機能するかは既に理解しています。私にとって明らかではないのは、XGBoostが同じように動作するが高速であるか、またはXGBoostとpython実装との間に根本的な違いがあるかどうかです。 この論文を読んだとき http://learningsys.org/papers/LearningSys_2015_paper_32.pdf XGboostから得られる最終結果はPython実装と同じですが、主な違いはXGboostが各回帰ツリーで最適な分割を見つける方法です。 基本的に、XGBoostは同じ結果をもたらしますが、高速です。 これは正しいですか、それとも私が見逃している何かがありますか?

1
xgboostのオーバーフィットに関する議論
私のセットアップは次のとおりです。 「適用された予測モデリング」のガイドラインに従っています。したがって、私は相関する特徴をフィルタリングし、次のようになりました: トレーニングセットの4900データポイントとテストセットの1600データポイント。 26個の機能があり、ターゲットは連続変数です。 caretパッケージを使用してモデルをトレーニングするために、5倍の交差検証を適用します。MARSモデルを適用すると、トレーニングセットとテストセットで平均絶対誤差(MAE)が約4になります。 ただし、xgboost(ツリーアルゴリズムまたは線形アルゴリズム)を適用すると、トレーニングセットで0.32(!)、テストセットで2.4のようなものが得られます。 したがって、テストエラーがトレーニングエラーの8倍である場合、次のように言います。トレーニングデータをオーバーフィットしました。それでも、テストでは小さなエラーが発生します。 xgboostで次のパラメーターを使用します。 nrounds = 1000そしてeta = 0.01(nroundを増やしてイータを減らすと助けになるかもしれませんが、メモリが不足し、実行時間が長すぎます) max_depth = 16:他の投稿とデフォルトの6を比較すると、これは大きく見えますが、問題はかなり複雑です-この場合、16は大きすぎません。 colsample_bytree = 0.7、subsample = 0.8およびmin_child_weight = 5:これを行うと、オーバーフィットを減らします。 max_depthを減らすと、トレーニングとテストエラーが近づきますが、それでも大きなギャップがあり、テストエラーは大きくなります(3を少し上回る)。 線形ブースターを使用すると、最適なパラメーターでほぼ同じトレインとテストエラーが得られます。 lambda = 90 および `alpha = 0:交差検定により検出され、ラムダはオーバーフィットを防ぐはずです。 colsample_bytree = 0.8、subsample = 0.8およびmin_child_weight = 5:これを行うと、オーバーフィットを減らします。 私の感覚では、xgboostはまだオーバーフィットしますが、トレーニングエラーとリアルタイムテスト(xgboostモデルとそれらのアンサンブルを実際に4日間使用しました)で確認できる限り、問題ありません(エラーはテストエラーよりも大きくなりますが、機能やその他の変数の予測については実生活により多くの不確実性があります。 あなたはどう思いますか:(可能な場合)実生活のパフォーマンスが優れている場合、オーバーフィットを受け入れることができますか?私の設定ではxgboostはオーバーフィットする傾向がありますか?

3
意思決定の切り株は線形モデルですか?
決定切り株は、分割が1つしかない決定木です。また、区分関数として書くこともできます。 たとえば、がベクトルであり、がxの最初のコンポーネントであると仮定すると、回帰設定では、いくつかの決定スタンプがx 1 xxxxx1x1x_1バツxx f(x )= { 35バツ1≤ 2バツ1> 2f(x)={3x1≤25x1>2f(x)= \begin{cases} 3& x_1\leq 2 \\ 5 & x_1 > 2 \\ \end{cases} しかし、それは線形モデルですか?ここでf(x)= \ beta ^ T xと書くことができますf(x )= βTバツf(x)=βTxf(x)=\beta^T xか?この質問は奇妙に聞こえるかもしれません。答えとコメントで述べたように、区分的関数をプロットする場合、それは線ではないからです。この質問をする理由については、次のセクションをご覧ください。 編集: この質問をする理由は、ロジスティック回帰が(一般化された)線形モデルであり、決定境界が線であり、これも決定の切り株であるためです。この質問もあることに注意してください:ロジスティック回帰はなぜ線形モデルなのですか?。一方、意思決定の切り株が線形モデルであることは事実ではないようです。 私がこれを尋ねたもう一つの理由は、この質問のためです: ブースティングでは、ベース学習者が線形モデルである場合、最終モデルは単なる線形モデルですか? ここで、ベースモデルとして線形モデルを使用すると、線形回帰以外の何も得られません。しかし、ベースラーナーを決定の切り株として選択すると、非常に興味深いモデルが得られます。 これは、2つの特徴と1つの連続的な応答を使用した回帰での決定切り株ブースティングの1つの例です。

2
ブースティング:学習率が正則化パラメーターと呼ばれるのはなぜですか?
学習率パラメータ(収縮を直列に追加され-typically浅いのTREE-各新しいベースモデルの寄与を昇圧勾配)。テストセットの精度が劇的に向上することが示されました。これは、より小さなステップで、損失関数の最小値をより正確に達成できるためです。 ν∈ [ 0 、1 ]ν∈[0,1]\nu \in [0,1] なぜ学習率が正則化パラメーターと見なされるのかわかりませんか?統計学習の要素の引用、セクション10.12.1、p.364: 可能な正則化戦略は、木の数の制御だけではありません。リッジ回帰およびニューラルネットワークと同様に、収縮手法も使用できます。値が小さい (収縮が大きい)と、同じ反復回数トレーニングリスクが大きくなります。したがって、と両方がトレーニングデータの予測リスクを制御します。M ν Mνν\nuMMMνν\nuMMM 正則化とは「過適合を回避する方法」を意味するため、その点で反復回数が重要であることは明らかです(Mが大きすぎると過適合になります)。しかし:MMMMMM 値が小さい(収縮が大きい)と、同じ反復回数Mのトレーニングリスクが大きくなります。νν\nuMMM これは、学習率が低い場合、トレーニングセットで同じ精度を実現するにはより多くの反復が必要であることを意味します。それで、それはどのように過適合に関係しますか?

1
交差検定(CV)に基づく予測間隔
教科書やyoutubeの講義では、ブースティングなどの反復モデルについて多くのことを学びましたが、予測間隔の導出については何も見ませんでした。 クロス検証は次の目的で使用されます。 モデルの選択:さまざまなモデルを試して、最適なモデルを選択します。ブーストの場合、CVを使用してチューニングパラメーターを選択します。 モデル評価:選択したモデルのパフォーマンスを推定します モデル評価にはいくつかのパラメーターが重要です。そのうちの1つは予想される予測エラーです。クロス検証は、本「統計的学習の要素」で詳しく説明されているように、予測誤差の適切な推定値を提供します。 しかし、予測間隔を構築するために予想される予測誤差をどのように使用するのでしょうか? たとえば、家の価格を予測する場合、200.000€の家に比べて500.000€の家の予測間隔は長くなります。相互検証を使用してこれらの予測間隔を推定するにはどうすればよいですか?

1
マルチクラスブースト分類器のキャリブレーション
Alexandru Niculescu-MizilとRich Caruanaの論文「ブースティングからキャリブレーションされた確率を取得する」とこのスレッドでの議論を読みました。ただし、ロジスティックまたはPlattのスケーリングを理解して実装して、マルチクラスブースティング分類器の出力を調整するのにまだ問題があります(意思決定の切り株による穏やかなブースト)。 私は一般化線形モデルにある程度精通しており、バイナリケースでロジスティックおよびプラットのキャリブレーションメソッドがどのように機能するかを理解していると思いますが、論文で説明されているメソッドをマルチクラスケースに拡張する方法がわかりません。 私が使用している分類子は次を出力します: =得票数クラスのための分類器のキャストその jのサンプルのための私分類されていますfijfijf_{ij}jjjiii =推定クラスyiyiy_i この時点で、次の質問があります。 Q1:確率を推定するために多項ロジットを使用する必要がありますか?または、ロジスティック回帰を使用してこれを実行できますか(1対すべての方法など)。 Q2:マルチクラスの場合、中間ターゲット変数をどのように定義する必要がありますか(Plattのスケーリングなど)。 Q3:これは多くの質問があるかもしれないことを理解していますが、この問題の擬似コードをスケッチしてくれる人はいますか?(より実用的なレベルでは、Matlabのソリューションに興味があります)。

3
アンサンブル分類器を使用しない場合
一般に、目標がサンプル外のクラスメンバーシップを正確に予測することである分類問題では、アンサンブル分類器を使用しないのはいつですか? この質問は、アンサンブル学習を常に使用しないのはなぜですか?。その質問は、なぜアンサンブルを常に使用しないのかを尋ねています。アンサンブルが同等のアンサンブルよりも悪い(「良くないだけでなく時間の無駄」ではない)ことがわかっている場合があるかどうかを知りたい。 また、「アンサンブル分類器」とは、たとえば、独自にロールアップしたサポートベクターマシンとは対照的に、AdaBoostやランダムフォレストなどの分類器を指します。

1
ツリーのブーストとバギング(XGBoost、LightGBM)
ツリーのバギング や ブースティングのアイデアに関する多くのブログ記事、YouTubeビデオなどがあります。私の一般的な理解では、それぞれの擬似コードは次のとおりです。 バギング: サンプルのx%および特徴のy%のN個のランダムサンプルを取得します Nのそれぞれにモデル(決定木など)を適合させる 各Nで予測 予測を平均して最終予測を取得する ブースティング: モデル(意思決定ツリーなど)をデータに適合させる 残差を取得する モデルを残差に適合させる N回のブースティングラウンドで2に進む 最終予測は、順次予測子の加重合計です。 上記の私の理解を明確にするために説明しますが、私の意図する質問は次のとおりです。 XGBoostとLightGBMの両方には、バギングを許可するパラメーターがあります。このアプリケーションは、バギングまたはブースティング(すべてのブログ投稿で述べられていること)ではなく、バギングとブースティングです。バギングとブースティングの組み合わせが行われる場所とタイミングの擬似コードは何ですか? 「Bagged Boosted Trees」になると思っていましたが、「Boosted Bagged Trees」のようです。違いは大きいようです。 バギングブーストツリー: サンプルのx%および特徴のy%のN個のランダムサンプルを取得します N個のサンプルのそれぞれにブーストされたツリーをフィット 各Nで予測 予測を平均して最終予測を取得する これが最善の方法のようです。結局、ブーストのリスクは過剰適合であり、バギングの主な利点は過剰適合を減らすことです。ブーストされたモデルの束をまとめることは素晴らしいアイデアのようです。 ただし、たとえば、scikit-learn gradient_boosting.py(サンプルのバギングを行いますが、ランダムな特徴選択は行いません)を調べ、LightGBMとXGBoostに関する投稿全体のいくつかの小さなナゲットを組み合わせると、XGBoostとLightGBMは次のように機能します。 ブーストバギングツリー: 決定木をデータに適合させる Nブーストラウンドのiの場合: 残差を取得する bag_frequency == 0の場合(つまり、5ラウンドごとにバッグする): サンプルのx%と特徴のy%の単一のランダムサンプルを取得します。今後このランダムなサンプルを使用してください 木を残差に適合させる 最終予測は、順次予測子の加重合計です。 ここで私の理解を修正し、詳細を入力してください。Boosted Bagged Tree(bag_frequencyごとにランダムツリーが1つだけ)は、Bagged Boosted Treeほど強力ではないようです。

2
勾配ブースティングによる分類:[0,1]で予測を維持する方法
質問 Gradient Boostingを使用してバイナリ分類を行うときに、予測が間隔内にどのように保持されるかを理解するのに苦労しています。[ 0 、1 ][0、1][0,1] バイナリ分類問題に取り組んでおり、目的関数は対数損失であり、はターゲット変数、は現在のモデルです。− ∑ y私ログ(Hm(x私))+ (1 − y私)ログ(1 − Hm(x私))−∑y私ログ⁡(Hm(バツ私))+(1−y私)ログ⁡(1−Hm(バツ私))-\sum y_i \log(H_m(x_i)) + (1-y_i) \log(1-H_m(x_i))yyy∈ { 0 、1 }∈{0、1}\in \{0,1\}HHH 新しいモデルがになるように次の弱学習トレーニングする場合、を維持するはずのメカニズムは何ですか?または、より関連性の高い質問かもしれませんが、そのようなメカニズムはありますか?hihih_iHi=Hi−1+hiHi=Hi−1+hiH_i = H_{i-1} + h_iHi∈ [ 0,1]Hi∈[0,1]H_i \in [0,1] 私がやっていることの詳細 回帰ツリーを使用して、勾配ブースティングを実装しようとしています。それを避けるために、H + c _ {\ text {max}} hがゼロ以下にならないように、h私h私h_iに係数c \ in [0、c _ {\ text {max}}]を掛けます 1つ、および損失関数を最小化するこの範囲でcを選択します。C …


2
GBM分類は、クラスサイズの不均衡に悩まされますか?
監視対象のバイナリ分類の問題を扱っています。GBMパッケージを使用して、個人を未感染/感染として分類したいと思います。私は、感染した個人の15倍も感染していない。 クラスサイズが不均衡な場合にGBMモデルが影響を受けるかどうか疑問に思っていましたか?この質問に答える参考文献は見つかりませんでした。 感染していない人に1の重みを、感染した人に15の重みを割り当てることで重みを調整しようとしましたが、結果は良くありませんでした。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.