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