次のコードで空欄になっている行に入る適切な選択肢を 1 ~ 3 から選び、
グリッドサーチによって SVM の最適なハイパーパラメータを探索してください.
import scipy.stats
from sklearn.datasets import load_digits
from sklearn.svm import SVC
# Q1:GridSearchCV クラスをインポートしてください.
from ########## import GridSearchCV
[Q1選択肢]
1. sklearn.ensemble
2. skleran.model_selection
3. sklearn.decomposition
from sklearn.model_selection import train_test_split
from sklearn.metrics import f1_score
data = load_digits()
train_X, test_X, train_y, test_y = train_test_split(data.data,
data.target, random_state=42)
model_param_set_grid = {SVC(): {
“kernel” : [“linear”, “poly”, “rbf”, “sigmoid”],
“C” : [10 ** i for i in range(-5, 5)],
“decision_function_shape” : [“ovr”, “ovo”],
“random_state” : [42]}}
max_score = 0
best_param = None
for model, param in model_param_set_grid.items():
# Q2:GridSearch でモデルのパラメータをサーチしてください.
clf = ##########
clf.fit(train_X, train_y)
pred_y = clf.predict(test_y)
score = f1_score(test_y, pred_y, average=”micro”)
if max_score < score:
max_score = score
[Q2の選択肢]
1. GridSearchCV(param)
2. GridSearchCV(model)
3. GridSearchCV(model, param)
# Q3:最適なパラメータを変数 best_param に代入してください.
best_param = ##########
print("パラメータ : {}".format(best_param))
print("ベストスコア : ", max_score)
svm = SVC()
svm.fit(train_X, train_y)
print()
print('調整なし')
print(svm.score(test_X, test_y))
[Q3の選択肢]
1. clf.best_params_
2. clf.coef_
3. clf.intercept_