Автоэнкодер Keras для Fraud Metrics - это странно - PullRequest
0 голосов
/ 07 октября 2018

Я вот уже некоторое время разбираю этот простой набросок и до сих пор не могу обернуть голову вокруг происходящего.Я начинаю подозревать, что ошибка заключается в наборе данных, но в любом случае мне нужны некоторые рекомендации.

В основном я пытаюсь использовать свой собственный набор данных с этим руководством:

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

Ссылка Github для моего ноутбука и csv: https://github.com/mortenhaga/autoencoderfraudkerastests

Основные проблемы: AUC = 0, потери начинаются с высокого уровня и остаются неизменными после 1 эпохи (хоккейная клюшка), не сходятся должным образом.

Я начинаю с этого набора данных (изображение): набор данных перед предварительной обработкой

Выполните кодирование в горячем режиме, minmaxscaler + PCA, чтобы подготовить данные для модели (изображение): Набор данных PCA

Моя модель:

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 эпохи график тренировок Изображение: ROC равно ~ 0 ROC Визуализация ошибки деконструкции для различных классов с порогом Ошибка деконструкции

Что я здесь не так делаю?

Комментарии высоко ценятся, пожалуйста, найдите код и набор данных в репозитории.

...