早期打ち切り

次のコードで空欄になっている行を埋め、SGD モデルを早期打ち切りによって最適化してください.

# Q1:train_test_split クラスをインポートしてください.
from ########## import train_test_split
# Q2:Pipeline クラスをインポートしてください.
from ########## import Pipeline
# Q3:StandardScalerクラスをインポートしてください.
from ########## import StandardScaler
# Q4:mean_squared_error クラスをインポートしてください.
from ########## import mean_squared_error
# Q5:clone クラスをインポートしてください.
from ########## import clone

[Q1 — 5 の選択肢]
1. sklearn.base
2. sklearn.model_selection
3. sklearn.preprocessing
4. sklearn.pipeline
5. sklearn.metrics

np.random.seed(0)
m = 100
X = 6 * np.random.rand(m, 1) – 3
y = 2 + X + 0.5 * X**2 + np.random.randn(m, 1)

X_train, X_test, y_train, y_test = train_test_split(X[:50], y[:50].ravel(),
test_size=0.5, random_state=0)

poly_scaler = Pipeline([
(“poly_features”, PolynomialFeatures(degree=90, include_bias=False)),
(“std_scaler”, StandardScaler()),
])

X_train_poly_scaled = poly_scaler.fit_transform(X_train)
X_test_poly_scaled = poly_scaler.transform(X_test)

sgd_reg = SGDRegressor(max_iter=1, tol=-np.infty, warm_start=True, penalty=None,
learning_rate=”constant”, eta0=0.0005, random_state=0)

minimum_test_error = float(“inf”)
best_epoch = None
best_model = None
for epoch in range(1000):
sgd_reg.fit(X_train_poly_scaled, y_train)
y_test_predict = sgd_reg.predict(X_test_poly_scaled)
test_error = mean_squared_error(y_test, y_test_predict)

# Q6:現状の最良モデルを cloen するための if 文を定義してください.
if ########## :
minimum_test_error = test_error
best_epoch = epoch
best_model = clone(sgd_reg)

print(“best_epoch : “, best_epoch)
print(“best_model : “, best_model)

[Q1の選択肢]
1. test_error == minimum_test_error
2. test_error < minimum_test_error 3. test_error > minimum_test_error

Leave a comment

Your email address will not be published. Required fields are marked *