2017-07-18 15 views
-2

私は13,000の特徴を持つ約15,000の小さなデータセットを持っています。 すべての入力は非常に大きな数字のない整数です。SVR、SVM、グラジエントブーストとXGBoostは永遠に実行します

これらのデータを使用して、SVR、SVM、XGboostなどの分類器をGridsearchでトレーニングします。

しかし、各トレーニング・プロセスは永遠にかかります。(60分以上)

私はすでに私の入力データXを拡大しているが、それはまだ時間がかかります。 また、同様の問題を抱えていた他のポストからは、SVC(cache_size = 7000)のようなcatch_sizeの分類子がモデルを訓練するために追加されましたが、計算を高速化するのは無力です。

データ自体は非常に小さいので、私はこれについて非常に奇妙な感じです。

ここに私のコードの例があります。誰かが私に非常に感謝してくれる提案があれば。

from xgboost.sklearn import XGBRegressor 

one_to_left = st.beta(10, 1)  
from_zero_positive = st.expon(0, 50) 

params = { 
    "n_estimators": [100, 110, 120, 130, 140, 150, 160, 170, 180, 190,  200], 
    "max_depth": [2, 3, 4, 5, 6, 7, 8, 9, 10], 
    "learning_rate": [0.05, 0.4, 1, 1.5, 2, 2.5, 3, 4], 
    "colsample_bytree": [0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0], 
    "subsample":[0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0], 
         } 

xgbreg = XGBRegressor() 
gs = GridSearchCV(xgbreg, params) 
gs.fit(X_train, y_train) 
y_gs = gs.predict(X_test) 

ターゲット変数yは、回帰問題の間のパーセンテージです。分類問題のために バイナリデータ0と1。

+0

XGBoostについては言えませんが、svmベースの見積もりはスケーリングされたデータ(主に標準化の平均)でうまく機能します。 [こちら](http://scikit-learn.org/stable/modules/preprocessing.html#standardization-or-mean-removal-and-variance-scaling)をご覧ください。また、他の人がマシン上の実行時間を確認できるように、データとコードを記入してください。 –

答えて

0

使用しているグリッドを見てとることができます:グリッドの

params = { 
    "n_estimators": [100, 110, 120, 130, 140, 150, 160, 170, 180, 190,  200], 
    "max_depth": [2, 3, 4, 5, 6, 7, 8, 9, 10], 
    "learning_rate": [0.05, 0.4, 1, 1.5, 2, 2.5, 3, 4], 
    "colsample_bytree": [0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0], 
    "subsample":[0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0], 
         } 

合計サイズは、次のとおりです。

from numpy import prod 

grid_size_per_parameter = [len(i) for i in params.values()] 
### [8, 11, 9, 8, 8] 

prod(grid_size_per_parameter) 
50688 # this is how many models you need to train, not counting cv folds 

あなたは大きなグリッドを持っています。訓練するたくさんのモデル。 これはあなたのすべては、まだ1000年モデル分のトレーニング:)

あなたは、マルチCPUマシンを持っている場合は、すべての利用可能な並列コアを使用するようにn_jobs= -1を設定することができます時間がかかる場合、私は意味。しかし、私はグリッドとよりスマートになるでしょう。より小さなスペースを検索する。

関連する問題