Book Image

Machine Learning for Finance

By : Jannes Klaas
Book Image

Machine Learning for Finance

By: Jannes Klaas

Overview of this book

Machine Learning for Finance explores new advances in machine learning and shows how they can be applied across the financial sector, including insurance, transactions, and lending. This book explains the concepts and algorithms behind the main machine learning techniques and provides example Python code for implementing the models yourself. The book is based on Jannes Klaas’ experience of running machine learning training courses for financial professionals. Rather than providing ready-made financial algorithms, the book focuses on advanced machine learning concepts and ideas that can be applied in a wide variety of ways. The book systematically explains how machine learning works on structured data, text, images, and time series. You'll cover generative adversarial learning, reinforcement learning, debugging, and launching machine learning products. Later chapters will discuss how to fight bias in machine learning. The book ends with an exploration of Bayesian inference and probabilistic programming.
Table of Contents (15 chapters)
Machine Learning for Finance
Contributors
Preface
Other Books You May Enjoy
Index

SGANs for fraud detection


As the final applied project of this chapter, let's consider the credit card problem again. In this section, we will create an SGAN as follows:

SGAN scheme

We will train this model on fewer than 1,000 transactions and still get a decent fraud detector.

Note

Note: You can find the code for the SGAN on Kaggle under this link: https://www.kaggle.com/jannesklaas/semi-supervised-gan-for-fraud-detection/code.

In this case, our data has 29 dimensions. We set our latent vectors to have 10 dimensions:

latent_dim=10
data_dim=29

The generator model is constructed as a fully connected network with LeakyReLU activations and batch normalization. The output activation is a tanh activation:

model = Sequential()
model.add(Dense(16, input_dim=latent_dim))
model.add(LeakyReLU(alpha=0.2))
model.add(BatchNormalization(momentum=0.8))
model.add(Dense(32, input_dim=latent_dim))
model.add(LeakyReLU(alpha=0.2))
model.add(BatchNormalization(momentum=0.8))
model.add(Dense(data_dim,activation='tanh...