最初に行くべきこと:自動XGBoostモデルParamsチューニング(HyperOpt)または機能選択(Boruta) -- python-3.x フィールド と xgboost フィールド と feature-selection フィールド と hyperparameters フィールド と hyperopt フィールド 関連 問題

What should go first: automated xgboost model params tuning (Hyperopt) or features selection (boruta)












1
vote

問題

日本語

データセットのさまざまな部分から作成された多くの小さなXGBoostモデルでクライアントを分類します。 手動で多くのモデルをサポートするのは難しいので、私はHyperoptを介してhyperparametersチューニングを自動化することにしました。

あなたは私にお願いします、何が最初に行くべきですか:hyperparametersチューニングや選択の選択?その一方で、それは関係ありません。 機能の選択の後、フィーチャ数は2500から100まで減少します(実際には、50個の真の機能があり、5つのカテゴリカリコンを介して2 400になった)。

いくつかのコードが必要な場合は、お願いします。ありがとうございました。

英語

I classify clients by many little xgboost models created from different parts of dataset. Since it is hard to support many models manually, I decided to automate hyperparameters tuning via Hyperopt and features selection via Boruta.

Would you advise me please, what should go first: hyperparameters tuning or features selection? On the other hand, it does not matter. After features selection, the number of features decreases from 2500 to 100 (actually, I have 50 true features and 5 categorical features turned to 2 400 via OneHotEncoding).

If some code is needed, please, let me know. Thank you very much.

</div
              

回答リスト

1
 
vote
vote
ベストアンサー
 

特徴選択(FS)は前処理活動と見なすことができ、その目的は低いバイアスおよび低分散を有する特徴を特定することである[1]

ハイパーパラメータ最適化(HPO)の主な目的は、ハイパーパラメータチューニングプロセスを自動化し、ユーザが機械学習(ML)モデルを実用的に実用的に適用することを可能にすることを可能にすることである[2]。 MLモデルにHPO技術を適用するためのいくつかの重要な理由は以下のとおりです[3]:

  1. 多くのML開発者は、特に多数のハイパーパラメータまたは複雑なMLアルゴリズムが多数のHyper-Parametersまたは多数のHyper-Parametersを持つ複雑なMLアルゴリズムをかなりの時間調整するかなりの時間を費やすため、必要な人間の努力を軽減します。

  2. MLモデルの性能を向上させます。多くのMLのハイパーパラメータは、さまざまなデータセットや問題で最適なパフォーマンスを達成するための最適値が異なります。

  3. モデルと研究をより再現性のあるものにします。同じレベルのハイパーパラメータチューニングプロセスが実装されている場合にのみ、異なるMLアルゴリズムをかなり比較することができます。したがって、異なるMLアルゴリズムで同じHPO法を使用することはまた、特定の問題について最も適切なMLモデルを決定するのを助ける。

  4. 2つの間の上記の違いを考えると、私は最初にFSが最初に適用されるべきであると、与えられたアルゴリズムのためにHPOが最初に適用されるべきだと思います。

    参考文献

    [1] Tsai、C.F.、Eberle、W.およびChu、Chu、C。、2013年。特徴とインスタンス選択の遺伝的アルゴリズム知識ベースのシステム、39、PP.240-247。

    [2] M. Kuhn、K.ジョンソン適用予測モデリングスプリングー(2013)ISBN:9781461468493。

    [3] F. Hutter、L. Kotthoff、J. Vanschoren(EDS)、自動機械学習:方法、システム、課題、9783030053185、Springer(2019)

 

Feature selection (FS) can be considered as a preprocessing activity, wherein, the aim is to identify features having low bias and low variance [1].

Meanwhile, the primary aim of hyperparameter optimization (HPO) is to automate hyper-parameter tuning process and make it possible for users to apply Machine Learning (ML) models to practical problems effectively [2]. Some important reasons for applying HPO techniques to ML models are as follows [3]:

  1. It reduces the human effort required, since many ML developers spend considerable time tuning the hyper-parameters, especially for large datasets or complex ML algorithms with a large number of hyper-parameters.

  2. It improves the performance of ML models. Many ML hyper-parameters have different optimums to achieve best performance in different datasets or problems.

  3. It makes the models and research more reproducible. Only when the same level of hyper-parameter tuning process is implemented can different ML algorithms be compared fairly; hence, using a same HPO method on different ML algorithms also helps to determine the most suitable ML model for a specific problem.

Given the above difference between the two, I think FS should be first applied followed by HPO for a given algorithm.

References

[1] Tsai, C.F., Eberle, W. and Chu, C.Y., 2013. Genetic algorithms in feature and instance selection. Knowledge-Based Systems, 39, pp.240-247.

[2] M. Kuhn, K. Johnson Applied Predictive Modeling Springer (2013) ISBN: 9781461468493.

[3] F. Hutter, L. Kotthoff, J. Vanschoren (Eds.), Automatic Machine Learning: Methods, Systems, Challenges, 9783030053185, Springer (2019)

</div
 
 

関連する質問

2  hypetoptとstatus_failのエラー "ValueError:空のシーケンスのargminを取得しようとしました"  ( Hypetopt and status fail usage with error valueerror attempt to get argmin of ) 
私はHyperOptとScikit-Learnを試しています。私が知っている限りでは、コンバージェンスがない場合の辞書<コード> {'status':STATUS_FAIL} を提供する必要がありますが、私はエラーメッセージに直面しています。私が何らかのデータ...

3  Pandas_UDF内のMLFlowでHyperOptを使用できますか?  ( How can i use hyperopt with mlflow within a pandas udf ) 
各モデルがモデルを駆動し、結果をMLFLOWで保存するPandas_UDF関数に渡される複数の預言モデルを構築しています。 <事前> <コード> con4 それから私はこのUDFを呼び出し、それは各KPIのモデルを列車に列車を呼び出します。 <事前> <コー...

1  Hyperasを使用してKERASモデルのパラメータを見つけるときの復号問題は、「HyperOpt」の「TRIALL`関数」による  ( Decoding problem when using hyperas to find parameters of keras model maybe due ) 
hyperas モジュールを使用してMy Keras モデルを調整し、エラーを返します。 <事前> <コード> UnicodeDecodeError: 'ascii' codec can't decode byte 0xe8 in position 47...

1  PythonでHyperOptで最寄りの隣人を調整しようとしている間エラー  ( Error while trying to tune nearest neighbors with hyperopt in python ) 
HyperoptでKneighborsパラメータを調整するために初めて試みていますが、私はWeridエラーを得ています。問題があるが修正を期待しているのかわからない。この問題について詳しく説明します。 コード: <事前> <コード> from sklearn...

1  HyperOptsearchとray.tune  ( Hyperoptsearch and ray tune ) 
HyperOptsearchとray.tuneを使用してパラメータ最適化をしようとしています。このコードはHyperOpt(Tune)で動作しますが、私はそれが速くなることを望み、したがって調整を使用しました。残念ながら私は多くの例を見つけることができなかっ...

1  HyperOpt分類タスクはエラー "TypeError:__init __()を発生させて予期しないキーワード引数 'n_iter'」を得た  ( Hyperopt classification task raises error typeerror init got an unexpect ) 
Google Colabを使用してデータセットで分類タスクを最適化するためにHyperOptを使用しようとしています。ただし、そのユーティリティの1つであるクロス検証は機能しなくなり、このエラーが発生しません。 TypeError: init ()は予期しな...

7  HyperOptにおける条件付き検索スペースの設定  ( Problems setting up conditional search space in hyperopt ) 
ここでは条件付きスペースを間違って設定できることを完全に認めますが、何らかの理由で、まったく機能することができません。私はHyperOptを使用してロジスティック回帰モデルを調整し、ソルバーに応じて、探求する必要がある他のいくつかのパラメータがあります。 Li...

0  ValueError:Learning_Rateは0より大きくなければなりませんが0でした  ( Valueerror learning rate must be greater than 0 but was 0 ) 
HyperOptオプティマイザを使ってSCIKIT GradientBoostingRegressorモデルの誇張を調整しようとしました。私は多くの方法で[0.01,1]の範囲でLearning_Rateパラメータの検索スペースを設定します(例: <事前> ...

1  最初に行くべきこと:自動XGBoostモデルParamsチューニング(HyperOpt)または機能選択(Boruta)  ( What should go first automated xgboost model params tuning hyperopt or featur ) 
データセットのさまざまな部分から作成された多くの小さなXGBoostモデルでクライアントを分類します。 手動で多くのモデルをサポートするのは難しいので、私はHyperoptを介してhyperparametersチューニングを自動化することにしました。 あなたは...

0  HyperOpt fmin関数を実行するときのエラー(TypeError:辞書更新シーケンス要素#0をシーケンスに変換できません)  ( Error when running hyperopt fmin function typeerror cannot convert dictionary ) 
SO IはHyperOptを使用しています.FMIN関数は、ハイパーパラメータを最適化します。しかし、何らかの理由で私はこのエラーを得ています: <事前> <コード> ;(function($){ // $ will refer to jQuery with...




© 2022 cndgn.com All Rights Reserved. Q&Aハウス 全著作権所有