keras的逻辑回归分类器

时间:2018-09-20 21:14:08

标签: python keras logistic-regression

我正在尝试编写keras的逻辑回归模型。但是我发现了一些问题:

我使用的数据来自Coursera机器学习课程(由Andrew NG教授)ex2。

我的代码如下:

def model():
input_layer = Input(shape=(2,))
dense1 = Dense(1,activation='sigmoid',kernel_initializer=RandomNormal(seed=42),bias_initializer='zeros')(input_layer)
model = Model(input_layer,dense1)

return model
model.compile(loss=keras.losses.binary_crossentropy,optimizer=Adam(),metrics=['accuracy']) 
model.fit(x=X,y=y,batch_size=10,epochs=10,verbose=1)   

这是我得到的结果: 100/100 [=============================]-0s 120us / step-损耗:0.6335-acc:0.6000 时代10/10 100/100 [=============================]-0s 130us / step-损耗:0.6326-acc:0.6000

但是,如果我使用matlab fminunc函数来查找结果,则会得到: 火车精度:89.000000

为什么结果会有所不同?

谢谢

1 个答案:

答案 0 :(得分:0)

首先请确保您已标准化输入数据。尝试像这样标准化它:

X = X.astype('float32')
X_mean = X.mean(axis=0)
X -= X_mean
X_std = X.std(axis=0)
X /= X_std + 1e-8

进一步,在这种情况下,提高学习率也可能会有所帮助:optimizer=Adam(lr=1e-2),它有助于培训以更少的时间收敛到解决方案。