kerasClassfier+gridcv

出错:


场景:神经网络二分类预测


 

def run_model(n1 = 20, n2 = 10, n3 = 4, init = "normal", act = 'relu', a = 0.001, b1 = 0.9, b2 = 0.999):
    model = Sequential()
    model.add(Dense(units = n1, input_dim = 8, kernel_initializer = init, activation= act))
    model.add(Dense(units = n2, activation= act, kernel_initializer=init))
    model.add(Dense(units = n3, activation= act, kernel_initializer=init))
    model.add(Dense(units = 1, activation="sigmoid"))
    model.compile(loss='binary_crossentropy', metrics=['accuracy'], 
                   optimizer = optimizers.Adam(learning_rate=a, beta_1=b1, beta_2=b2, amsgrad=False))
    return model

model = KerasClassifier(build_fn = run_model, verbose = 0)

param_grid = {}
param_grid['n1'] = [20, 12]
param_grid['n2'] = [12, 8]
param_grid['n3'] = [8, 6]
#param_grid['init'] = ['uniform', 'normal']
param_grid['act'] = ['tanh', 'relu']
param_grid['epochs'] = [200, 300]
param_grid['batch_size'] = [10, 20]

x_train, x_test, y_train, y_test = train_test_split(x, Y, test_size = 0.30, random_state = seed)
grid = GridSearchCV(estimator = model, param_grid = param_grid, cv = 2,scoring='accuracy')

为何会出现这种情款呢?另外尝试删除scoring='accuracy'可以正常运行

scoring='accuracy'意思是使用准确率为结果的度量指标,删除与否不影响运行,这个貌似没出错,像是一个写法的改变警告