グリッドサーチで桁の違う小数などを使いたい場合、np.logspace関数が便利です。
例
np.logspace(-3, 2, num=6)
10の-3乗から10の2乗の範囲を6等分した配列
[0.001, 0.01, 0.1, 1, 10, 100] を作成します。
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)))

