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

eXtreme Gradient Boostingアルゴリズムに関連する質問。

5
GBM対XGBOOST?主な違いは?
GBMとXGBOOSTの主な違いを理解しようとしています。私はそれをグーグルで検索しようとしましたが、2つのアルゴリズムの違いとxgboostがGBMよりもほとんど常に優れている理由を説明する良い答えを見つけることができませんでした。XGBOOSTの高速化の理由は何ですか?

2
XGBoostの重要性の出力を解釈する方法は?
xgboostモデルを実行しました。の出力を解釈する方法が正確にはわかりませんxgb.importance。 ゲイン、カバー、および周波数の意味は何ですか?それらをどのように解釈しますか? また、Split、RealCover、およびRealCover%はどういう意味ですか?ここにいくつかの追加パラメーターがあります 機能の重要性についてさらに詳しく説明できる他のパラメーターはありますか? Rのドキュメントから、GainはInformation gainに似ており、Frequencyはすべてのツリーで機能が使用される回数であることがある程度理解できます。Coverが何なのかわかりません。 リンクで指定されたサンプルコードを実行しました(そして、私が取り組んでいる問題でも同じことを試みました)が、そこに指定された分割定義は、計算した数値と一致しませんでした。 importance_matrix 出力: Feature Gain Cover Frequence 1: xxx 2.276101e-01 0.0618490331 1.913283e-02 2: xxxx 2.047495e-01 0.1337406946 1.373710e-01 3: xxxx 1.239551e-01 0.1032614896 1.319798e-01 4: xxxx 6.269780e-02 0.0431682707 1.098646e-01 5: xxxxx 6.004842e-02 0.0305611830 1.709108e-02 214: xxxxxxxxxx 4.599139e-06 0.0001551098 1.147052e-05 215: xxxxxxxxxx 4.500927e-06 0.0001665320 1.147052e-05 216: xxxxxxxxxxxx …

1
xgboostがsklearn GradientBoostingClassifierよりもずっと速いのはなぜですか?
私は、100個の数値特徴を備えた50kの例で勾配ブースティングモデルをトレーニングしようとしています。XGBClassifier一方、私のマシンで43秒以内に、ハンドル500本の木、GradientBoostingClassifierハンドルのみ10樹木(!)1分2秒:(私は気にしませんでしたでは、それは時間がかかるだろうと500本の木を育てるしようとしている。私は、同じ使用していますlearning_rateし、max_depth設定を、 下記参照。 XGBoostがこれほど速くなったのはなぜですか?sklearnの人が知らない勾配ブースティングのためのいくつかの新しい実装を使用していますか?それとも、「角を切り」、より浅い木を育てるのですか? PS私はこの議論を知っています:https : //www.kaggle.com/c/higgs-boson/forums/t/10335/xgboost-post-competition-surveyが、そこに答えを得ることができませんでした... XGBClassifier(base_score=0.5, colsample_bylevel=1, colsample_bytree=1, gamma=0, learning_rate=0.05, max_delta_step=0, max_depth=10, min_child_weight=1, missing=None, n_estimators=500, nthread=-1, objective='binary:logistic', reg_alpha=0, reg_lambda=1, scale_pos_weight=1, seed=0, silent=True, subsample=1) GradientBoostingClassifier(init=None, learning_rate=0.05, loss='deviance', max_depth=10, max_features=None, max_leaf_nodes=None, min_samples_leaf=1, min_samples_split=2, min_weight_fraction_leaf=0.0, n_estimators=10, presort='auto', random_state=None, subsample=1.0, verbose=0, warm_start=False)
29 scikit-learn  xgboost  gbm  data-mining  classification  data-cleaning  machine-learning  reinforcement-learning  data-mining  bigdata  dataset  nlp  language-model  stanford-nlp  machine-learning  neural-network  deep-learning  randomized-algorithms  machine-learning  beginner  career  xgboost  loss-function  neural-network  software-recommendation  naive-bayes-classifier  classification  scikit-learn  feature-selection  r  random-forest  cross-validation  data-mining  python  scikit-learn  random-forest  churn  python  clustering  k-means  machine-learning  nlp  sentiment-analysis  machine-learning  programming  python  scikit-learn  nltk  gensim  visualization  data  csv  neural-network  deep-learning  descriptive-statistics  machine-learning  supervised-learning  text-mining  orange  data  parameter-estimation  python  pandas  scraping  r  clustering  k-means  unsupervised-learning 

3
XGBoostパラメーターのハイパーチューニング
XGBoostは、カテゴリー依存変数と連続従属変数の両方の処理に関して、素晴らしい仕事をしてきました。しかし、XGBoostの問題に対して最適化されたパラメーターを選択するにはどうすればよいですか? これは、最近のKaggleの問題に対するパラメーターの適用方法です。 param <- list( objective = "reg:linear", booster = "gbtree", eta = 0.02, # 0.06, #0.01, max_depth = 10, #changed from default of 8 subsample = 0.5, # 0.7 colsample_bytree = 0.7, # 0.7 num_parallel_tree = 5 # alpha = 0.0001, # lambda = 1 ) clf <- xgb.train( …
27 r  python  xgboost 

2
LightGBM対XGBoost
私はどちらが優れているかを理解しようとしています(より正確に、特に分類の問題で) LightGBMとXGBoostを比較する記事を検索しましたが、2つしか見つかりませんでした。 https://medium.com/implodinggradients/benchmarking-lightgbm-how-fast-is-lightgbm-vs-xgboost-15d224568031-これは速度のみであり、精度ではありません。 https://github.com/Microsoft/LightGBM/wiki/Experiments-LightGBMの著者によるものであり、LightGBMがそこに勝つことは驚きではありません。 私のテストでは、両方のアルゴリズムでほぼ同じAUCを取得していますが、LightGBMは2〜5倍高速で実行されます。 LGBMがとてもクールなら、こことKaggleであまり聞いていないのはなぜですか:)
25 xgboost 

3
なぜXGBoostとランダムフォレストが必要なのですか?
いくつかの概念については明確ではありませんでした。 XGBoostは、弱い学習者を強い学習者に変換します。これを行う利点は何ですか?多くの弱学習器を組み合わせるだけではなく単一のツリーを使用していますか? ランダムフォレストはツリーを作成するために、木から様々なサンプルを使用しています。だけではなく、単数形の木を使用して、この方法の利点は何ですか?

4
XGBoostはそれ自体で多重共線性を処理しますか?
現在、21個の機能(約150個の機能のリストから選択)を含むデータセットでXGBoostを使用しており、ワンホットコーディングして〜98個の機能を取得しています。これらの98個の機能のいくつかは、いくらか冗長です。たとえば、変数(機能)はBとしても表示されます。AAAおよびCBABA\frac{B}{A}。CACA\frac{C}{A} 私の質問は: Boosted Decision Treesは多重共線性をどのように(If?)処理しますか? 多重共線性の存在が処理されない場合、予測にどのように影響しますか? 私が理解していることから、モデルは複数のツリーを学習しており、最終的な予測は個々の予測の「加重和」のようなものに基づいています。したがって、これが正しければ、Boosted Decision Trees は変数間の相互依存関係を処理できるはずです。 また、関連するメモ-XGBoostの変数重要度オブジェクトはどのように機能しますか?


4
XGBoostを使用した不均衡なマルチクラスデータ
このディストリビューションには3つのクラスがあります。 Class 0: 0.1169 Class 1: 0.7668 Class 2: 0.1163 そして、私はxgboost分類に使用しています。というパラメータがあることを知っていますscale_pos_weight。 しかし、「マルチクラス」の場合はどのように処理され、どのように適切に設定できますか?

4
XGBoost出力は極端になる傾向があります
私は現在リスク予測にXGBoostを使用していますが、バイナリ分類部門ではうまく機能しているようですが、確率出力はかなりずれています。つまり、観測値の特徴の値を少しだけ変更すると、確率が高くなります。 0.5から0.99への出力ジャンプ。 0.6〜0.8の範囲の出力はほとんど見えません。すべての場合において、確率は0.99または1未満です。 Platt ScalingやLogistic Correctionなどのトレーニング後のキャリブレーション方法は知っていますが、XGBoostトレーニングプロセスで調整できることがあるかどうか疑問に思っていました。 私はFFIを使用してさまざまな言語からXGBoostを呼び出します。そのため、他のキャリブレーションライブラリを導入せずにこの問題を修正できると便利です。たとえば、評価メトリックをAUCからログ損失に変更します。

2
xgBoostのペアワイズランキングモデルにどのように適合しますか?
私の知る限り、モデルをランク付けするように学習をトレーニングするには、データセットに次の3つを含める必要があります。 ラベルまたは関連性 グループまたはクエリID 特徴ベクトル たとえば、Microsoft Learning to Rankデータセットはこの形式(ラベル、グループID、機能)を使用します。 1 qid:10 1:0.031310 2:0.666667 ... 0 qid:10 1:0.078682 2:0.166667 ... GBMを使用してペアワイズランキングを行うxgBoostを試しています。これらには、C ++プログラムを使用して上記のようなMicrosoftデータセットで学習するランキングタスクの例があります。 しかし、私は彼らのPythonラッパーを使用しており、グループID(qid上記)を入力できる場所が見つからないようです。機能と関連性スコアのみを使用してモデルをトレーニングできますが、何かが足りないように感じます。 これがサンプルスクリプトです。 gbm = XGBRegressor(objective="rank:pairwise") X = np.random.normal(0, 1, 1000).reshape(100, 10) y = np.random.randint(0, 5, 100) gbm.fit(X, y) ### --- no group id needed??? print gbm.predict(X) # should be in …
14 search  ranking  xgboost  gbm 

3
PandasデータフレームからDMatrix
xgboostをscikit learnで実行しようとしています。そして、私はパンダを使用してデータをデータフレームにロードします。xgboostでpandas dfを使用する方法 xgboostアルゴを実行するために必要なDMatrixルーチンに混乱しています。

1
XGBRegressorとxgboost.trainの大きな速度差は?
次のコードを使用してモデルをトレーニングする場合: import xgboost as xg params = {'max_depth':3, 'min_child_weight':10, 'learning_rate':0.3, 'subsample':0.5, 'colsample_bytree':0.6, 'obj':'reg:linear', 'n_estimators':1000, 'eta':0.3} features = df[feature_columns] target = df[target_columns] dmatrix = xg.DMatrix(features.values, target.values, feature_names=features.columns.values) clf = xg.train(params, dmatrix) 約1分で終了します。 Sci-Kit学習メソッドを使用してモデルをトレーニングする場合: import xgboost as xg max_depth = 3 min_child_weight = 10 subsample = 0.5 colsample_bytree = 0.6 objective = …

1
決定木:リーフワイズ(ベストファースト)およびレベルワイズツリートラバース
問題1: ツリーの展開方法に関するLightGBMの説明に混乱しています。 彼らは述べています: ほとんどの決定木学習アルゴリズムは、次の図のように、レベル(深さ)ごとにツリーを成長させます。 質問1:どの「ほとんどの」アルゴリズムがこの方法で実装されていますか?私が知る限り、C4.5とCARTはDFSを使用します。XGBoostはBFSを使用します。決定木にBFSを使用する他のアルゴリズムまたはパッケージはどれですか? 問題2: LightGBMの状態: LightGBMは、リーフ単位で(ベストファースト)ツリーを成長させます。最大のデルタ損失を持つリーフを選択して成長させます。同じリーフを成長させる場合、リーフワイズアルゴリズムはレベルワイズアルゴリズムよりも損失を減らすことができます。 質問2:レベルごとに成長する木は、すべての葉で同じ深さになると言うのは正しいですか? 質問3:質問2が正しくない場合、レベルワイズおよびリーフワイズの成長からのツリーは、トラバーサルの終わりに同じように見えます(剪定などは行われません)。それは正しい表現ですか? 質問4:質問3が正しい場合、「リーフワイズアルゴリズムはレベルワイズアルゴリズムよりも多くの損失を減らすことができますか?」ポストプルーニングアルゴリズムに関係していますか?

1
回帰のための高カーディナリティのカテゴリカル機能を備えた機能の重要性(数値依存変数)
私はランダムフォレストの機能の重要度を使用して、すべての機能がカテゴリカルであり、それらの多くに多くのレベル(100〜1000のオーダー)がある回帰問題の経験的な機能選択を実行しようとしました。ワンホットエンコーディングでは、各レベルにダミー変数が作成されるため、機能の重要性は各機能(列)ではなく、各レベルにあります。これらの機能の重要性を集計する良い方法は何ですか? 機能のすべてのレベルの平均の重要度を合計または取得することを考えました(おそらく、前者はより多くのレベルの機能に偏っています)。この問題に関する参考資料はありますか? 機能の数を減らすために他に何ができますか?私はグループなげなわを知っています、scikit-learnに使いやすいものを見つけることができませんでした。

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