【发布时间】:2022-10-07 02:52:48
【问题描述】:
我有以下代码: Bias-Variance Decomposition for Model Assessment
import matplotlib.pyplot as plt
import numpy as np
import tensorflow as tf
from tensorflow.keras.layers import Dense
from tensorflow.keras.models import Sequential
from mlxtend.evaluate import bias_variance_decomp
from mlxtend.data import boston_housing_data
from sklearn.tree import DecisionTreeRegressor
from sklearn.ensemble import BaggingRegressor
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error
np.random.seed(16)
tf.random.set_seed(16)
X, y = boston_housing_data()
X_train, X_test, y_train, y_test = train_test_split(X, y,
test_size=0.3,
random_state=123,
shuffle=True)
model = Sequential()
model.add(Dense(2048, activation=\'relu\'))
model.add(Dense(512, activation=\'relu\'))
model.add(Dense(32, activation=\'relu\'))
model.add(Dense(1, activation=\'linear\'))
optimizer = tf.keras.optimizers.Adam()
model.compile(loss=\'mean_squared_error\', optimizer=optimizer)
model.fit(X_train, y_train, epochs=100, batch_size=32, verbose=0)
mean_squared_error(model.predict(X_test), y_test)
avg_expected_loss, avg_bias, avg_var = bias_variance_decomp(
model, X_train, y_train, X_test, y_test,
loss=\'mse\',
num_rounds=100,
random_seed=16,
epochs=100,
batch_size=32,
verbose=0)
print(\'Average expected loss: %.3f\' % avg_expected_loss)
print(\'Average bias: %.3f\' % avg_bias)
print(\'Average variance: %.3f\' % avg_var)
守则有效。但是,它会产生一个烦人的警告:
UserWarning: 初始化器 GlorotUniform 未播种并被多次调用,每次都将返回相同的值(即使初始化器未播种)。请更新您的代码以向初始化程序提供种子,或避免多次使用相同的初始化程序实例。 警告.warn(
为了摆脱警告,需要对代码进行哪些更改?