【发布时间】:2025-12-03 11:35:01
【问题描述】:
我想将以下 sklearn 模型移植到 keras:
model = MLPClassifier(activation='tanh', hidden_layer_sizes=(60,50), alpha=0.001, random_state=42)
到目前为止,我所拥有的是:
from keras.models import Sequential
from keras.layers import Dense
from keras import regularizers
from tensorflow import set_random_seed
set_random_seed(42)
model = Sequential([
Dense(60, activation='tanh'),
Dense(50, activation='tanh'),
Dense(1, kernel_initializer='normal', activation='sigmoid')
])
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy', 'binary_accuracy'])
model.fit(
x_train,
y_train,
epochs=200,
batch_size=200,
validation_data=(x_test, y_test)
)
但现在我正在为正则化术语而苦苦挣扎。 sklearn 文档对此并没有太多的表现力:
alpha : 浮点数,可选,默认 0.0001 L2 惩罚(正则化项)参数。
但在 keras 中,密集层有 3 个用于正则化的属性。
kernel_regularizer:应用于核权重矩阵的正则化函数(参见正则化)。 bias_regularizer:应用于偏置向量的正则化函数(参见正则化函数)。 activity_regularizer:应用于层输出的正则化函数(它的“激活”)。
哪一个实际上相当于sklearn正则化?
【问题讨论】:
标签: keras scikit-learn