Keras欺诈指标自动编码器很奇怪

时间:2018-10-07 13:46:52

标签: python tensorflow machine-learning keras autoencoder

一段时间以来,我一直在锤击这个简单的草图,但我仍然无法回避正在发生的事情。我开始怀疑错误在于数据集中,但是无论如何,我需要一些指导。

基本上,我正在使用本教程尝试自己的数据集:

https://medium.com/@curiousily/credit-card-fraud-detection-using-autoencoders-in-keras-tensorflow-for-hackers-part-vii-20e0c85301bd

我自己的笔记本和csv的Github链接: https://github.com/mortenhaga/autoencoderfraudkerastests

主要问题是:AUC = 0,损失开始时很高,并在1个历时(曲棍球)后保持平稳,而未正确收敛。

我从这个数据集(图像)开始:dataset before preproc

进行一次热编码,minmaxscaler + PCA,为模型(图像)准备数据:PCA dataset

我的模特:

input_dim = X_train.shape[1]
encoding_dim = 100

input_layer = Input(shape=(input_dim, ))

encoder = Dense(encoding_dim, activation="relu",activity_regularizer=regularizers.l1(0.0001))(input_layer)


encoder = Dense(int(encoding_dim / 2), activation="relu", activity_regularizer=regularizers.l1(0.0001))(encoder)

decoder = Dense(int(encoding_dim / 2), activation='relu',activity_regularizer=regularizers.l1(0.0001))(encoder)
decoder = Dense(input_dim, activation='relu')(decoder)

autoencoder = Model(inputs=input_layer, outputs=decoder)

更多参数:

nb_epoch = 10
batch_size = 50

autoencoder.compile(optimizer=adam, 
                    loss='mean_squared_error', 
                    metrics=['accuracy'])

checkpointer = ModelCheckpoint(filepath="mode35l.h5",
                               verbose=0,
                               save_best_only=True)
tensorboard = TensorBoard(log_dir='./logs',
                          histogram_freq=0,
                          write_graph=True,
                          write_images=True)

history = autoencoder.fit(X_train, X_train,
                    epochs=nb_epoch,
                    batch_size=batch_size,
                    shuffle=True,
                    validation_data=(X_test, X_test),
                    verbose=1,
                    callbacks=[checkpointer, tensorboard]).history

1个纪元后训练损失下降 training graph 图片:ROC为〜0 ROC 带有阈值的不同类别的解构错误的可视化 deconstruction error

我在这里做什么错了?

评论受到高度赞赏,请在存储库中找到代码和数据集。

0 个答案:

没有答案