グリッドサーチ

次のコードで空欄になっている行に入る適切な選択肢を 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_

ホールドアウト法

以下の実行結果が得られるように、次のコードで空欄になっている行に入る適切な選択肢を 1 ~ 3 から選んでください.

ホールドアウト法に従い iris データセットをトレイニングデータとテストデータの 2 つに分割します.
まず、scikit-learn ライブラリを用いて iris データセットをロードし、データの 20% がテストデータとなように
train_test_split() 関数を用いてIris データセットを分割してください.
この時、テストに選ばれるデータセットは固定にしてください.

from sklearn import datasets
#Q1:train_test_split() 関数をインポートしてください.
##########

iris = datasets.load_iris()
X = iris.data
y = iris.target

[Q1の選択肢]
1. from sklearn_model import train_test_split
2. from sklearn.model import train_test_split
3. from sklearn.model_selection import train_test_split

#Q2:iris データセットを訓練データとテストデータに分割してください.
X_train, X_test, y_train, y_test = ##########

print(“X_train : “, X_train.shape)
print(“X_test : “, X_test.shape)
print(“y_train : “, y_train.shape)
print(“y_test : “, y_test.shape)

[Q2の選択肢]
1. train_test_split((X, y, test_size=0.2, random_state=0)
2. train_test_split((X, test_rate=0.2, random_state=0)
3. train_test_split((X, y, 0.2, random_state=0)

汎化 / 標本誤差

汎化誤差(標本誤差)の説明として正しいものを選択肢 1 ~ 3 から選んでください.

1. 訓練セットを使って訓練されたモデルを検証セットで評価したときの数値が、汎化誤差である.
2. ホールドアウト法などによって、データセットから取り分けられたテストセットでモデルを評価したときの値が汎化誤差である.
3. 訓練誤差が高く、汎化誤差が低いモデルは過学習していると言える.

汎化 / 標本誤差

汎化誤差(標本誤差)の説明として正しいものを選択肢 1 ~ 3 から選んでください.

1. データセットが小さいほど、訓練誤差は小さくなる.
2. ホールドアウト法で分割されたデータセットでは、汎化誤差を求めることは難しい.
3. 汎化誤差が小さいモデルは、過学習していない良いモデルといえる.

検証セット

あなたは訓練セット、テストセット、検証セットからなるデータセットを用いて、自作した ML モデルを訓練し、評価しようとしています.
データセットの使い方を説明している以下の文の空欄 Q1 ~ Q3 に該当する言葉を
選択肢 1 ~ 4 からそれぞれ選んでください.

(Q1 ____ ) セットを用いて、様々なモデルのハイパーパラメータを試し(Q2 ____ ) セットで最も高い性能を示すハイパーパラメータの
パターンを選ぶ.最後に、(Q3 ____ ) セットでモデルの汎化誤差を測定する.

[Q1、Q2、Q3 の選択肢]
1. 検証
2. 訓練
3. テスト
4. ランダム

検証セット

あなたは訓練セット、テストセット、検証セットからなるデータセットを用いて、自作した ML モデルを訓練し、評価しようとしています.
データセットの使い方を説明している以下の文の空欄 Q1 ~ Q3 に該当する言葉を
選択肢 1 ~ 4 からそれぞれ選んでください.

訓練セットでモデルを (Q1 ____ ) し、検証セットで (Q2 ____ ) を選ぶ.最後にテストセットでモデルの (Q3 ____ ) を測定する.

[Q1, Q2 の選択肢]
1. 訓練
2. 検証
3. ハイパーパラメータ
4. コスト関数
5. 評価
6. 自由度

[Q3 の選択肢]
1. 精度
2. 汎化誤差
3. 検証誤差

k – 分割交差検証

以下の実行結果が得られるように、次のコードで空欄になっている行に入る適切な選択肢を 1 ~ 3 から選んでください.

k – 分割交差検証を実践します.scikit-learn から SVM モデルをインポートし、
k – 分割交差検証によって SVM モデルを評価します.
この時、交差検証法の分割数を “10 分割” に指定し、モデルのスコアを出力してください.

from sklearn import svm, datasets
from sklearn.model_selection import cross_val_score

iris = datasets.load_iris()

X = iris.data
y = iris.target

svc = svm.SVC(C=1, kernel=”rbf”, gamma=0.001)

# Q1:k-分割交差検証を実装してください.また、分割数を 10 としてください.
scores = ##########

print(scores)
print(“平均スコア : “, scores.mean())

[Q1の選択肢]
1. cross_val_score(svc, X, y, cv=10)
2. svc.cross_val_score(X, y, cv=10)
3. cross_val_score(cv=10)

バッチサイズ、エポック、イテレーション

3,200 件のデータが格納されているデータセットがあります.
このデータセットを用いて、バッチサイズ 64 で ML モデルを訓練しようとしています.
以下の問いに答えてください.

Q1:イテレーション回数を求めてください.
Q2:20 エポック訓練する場合、合計で何回イテレート(学習の繰り返し)されるか.

バッチサイズ、エポック、イテレーション

48,000 件のデータが格納されているデータセットがあります.
このデータセットを用いて、バッチサイズ 32 で ML モデルを訓練しようとしています.
以下の問いに答えてください.

Q1:イテレーション回数を求めてください.
Q2:20 エポック訓練する場合、合計で何回イテレート(学習の繰り返し)されるか.

訓練セット、テストセット

Q1:選択肢 1 ~ 3 のうち文章の内容が正しいものを選んでください.

1. モデルが新しいデータに汎化できているかを確認するのが検証セットである
2. 教師あり学習では、テストセットも検証セットも必要ない
3. 分類問題では、テストセットは必要なく、検証セットだけで十分である.