skrub.Expr.skb.get_randomized_search#
- Expr.skb.get_randomized_search(*, fitted=False, **kwargs)[source]#
Find the best parameters with randomized search.
This function returns a
ParamSearch
, an object similar to scikit-learn’sRandomizedSearchCV
. The main difference is that methods such asfit()
andpredict()
accept a dictionary of inputs rather thanX
andy
. Please refer to the examples gallery for an in-depth explanation.- Parameters:
- Returns:
- ParamSearch
An object implementing the hyperparameter search. Besides the usual
fit
,predict
, attributes of interest areresults_
andplot_results()
.
See also
skrub.Expr.skb.get_grid_search
Find the best parameters with grid search.
Examples
>>> import skrub >>> from sklearn.datasets import make_classification >>> from sklearn.linear_model import LogisticRegression >>> from sklearn.feature_selection import SelectKBest >>> from sklearn.ensemble import RandomForestClassifier >>> from sklearn.dummy import DummyClassifier
>>> X_a, y_a = make_classification(random_state=0) >>> X, y = skrub.X(X_a), skrub.y(y_a) >>> selector = SelectKBest(k=skrub.choose_int(4, 20, log=True, name='k')) >>> logistic = LogisticRegression(C=skrub.choose_float(0.1, 10.0, log=True, name="C")) >>> rf = RandomForestClassifier( ... n_estimators=skrub.choose_int(3, 30, log=True, name="N 🌴"), ... random_state=0, ... ) >>> classifier = skrub.choose_from( ... {"logistic": logistic, "rf": rf, "dummy": DummyClassifier()}, name="classifier" ... ) >>> pred = X.skb.apply(selector, y=y).skb.apply(classifier, y=y) >>> print(pred.skb.describe_param_grid()) - k: choose_int(4, 20, log=True, name='k') classifier: 'logistic' C: choose_float(0.1, 10.0, log=True, name='C') - k: choose_int(4, 20, log=True, name='k') classifier: 'rf' N 🌴: choose_int(3, 30, log=True, name='N 🌴') - k: choose_int(4, 20, log=True, name='k') classifier: 'dummy'
>>> search = pred.skb.get_randomized_search(fitted=True, random_state=0) >>> search.results_ mean_test_score k C N 🌴 classifier 0 0.92 4 4.626363 NaN logistic 1 0.89 10 NaN 7.0 rf 2 0.87 7 3.832217 NaN logistic 3 0.86 15 NaN 6.0 rf 4 0.85 10 4.881255 NaN logistic 5 0.80 19 3.965675 NaN logistic 6 0.77 14 NaN 3.0 rf 7 0.50 4 NaN NaN dummy 8 0.50 9 NaN NaN dummy 9 0.50 5 NaN NaN dummy