我试图从去SKLearn到Keras才能做出具体改进,我的模型.但是,我无法获得与SKLearn模型相同的性能:
mlp = MLPClassifier(
solver='adam', activation='relu',
beta_1=0.9, beta_2=0.999, learning_rate='constant',
alpha=0, hidden_layer_sizes=(238,),
max_iter=300
)
dev_score(mlp)
Run Code Online (Sandbox Code Playgroud)
每次给出~0.65分
这是我相应的Keras代码:
def build_model(alpha):
level_moreargs = {'kernel_regularizer':l2(alpha), 'kernel_initializer': 'glorot_uniform'}
model = Sequential()
model.add(Dense(units=238, input_dim=X.shape[1], **level_moreargs))
model.add(Activation('relu'))
model.add(Dense(units=class_names.shape[0], **level_moreargs)) # output
model.add(Activation('softmax'))
model.compile(loss=keras.losses.categorical_crossentropy, # like sklearn
optimizer=keras.optimizers.Adam(lr=0.001, beta_1=0.9, beta_2=0.999, epsilon=1e-08, decay=0.0),
metrics=['accuracy'])
return model
k_dnn = KerasClassifier(build_fn=build_model, epochs=300, batch_size=200, validation_data=None, shuffle=True, alpha=0.5, verbose=0)
dev_score(k_dnn)
Run Code Online (Sandbox Code Playgroud)
从查看文档(并深入研究SKLearn代码),这应该完全符合相同的事情.
但是,当我运行这个模型时,我得到了~0.5的准确度,这非常糟糕.
如果我将alpha设置为0,则SKLearn的得分几乎没有变化(0.63),而Keras则从0.2变为0.4.
这些型号有什么区别?为什么Keras虽然应该比SKLearn更好,但到目前为止表现优于目前?我的错是什么?
谢谢,
| 归档时间: |
|
| 查看次数: |
819 次 |
| 最近记录: |