グリッドサーチで便利なnp.logspace関数

グリッドサーチで桁の違う小数などを使いたい場合、np.logspace関数が便利です。


np.logspace(-3, 2, num=6)
10の-3乗から10の2乗の範囲を6等分した配列
[0.001, 0.01, 0.1, 1, 10, 100] を作成します。

乳がんデータ良性、悪性判定での活用例
グリッドサーチを活用してSVCのハイパーパラメータ 「C」 の値を変更しています。
その際にnp.logspace()が活用されています。

from sklearn.model_selection import GridSearchCV
from sklearn.svm import SVC

# 乳がんのデータを読み込み
cancer = load_breast_cancer()
X_train, X_test, y_train, y_test = train_test_split(cancer.data,
                                                    cancer.target,
                                                    stratify = cancer.target,
                                                    random_state=0)
# GridSearchCVクラスに与えるパラメータを準備
param_grid = { 'C': np.logspace(-3, 2, num=6)
               ,'gamma':np.logspace(-3, 2, num=6)}
gs = GridSearchCV(estimator=SVC(),
                  param_grid=param_grid,
                  cv=5)
gs.fit(X_train,y_train)

print('Best cross validation score:{:.3f}'.format(gs.best_score_))
print('Best parameters:{}'.format(gs.best_params_))
print('Test score:{:.3f}'.format(gs.score(X_test,y_test)))

GridSearchCVのパラメータ