伶仃信息门户网>旅游 >「银河娱乐首页」自编码器数据降维实践

「银河娱乐首页」自编码器数据降维实践

2020-01-11 19:26:58

「银河娱乐首页」自编码器数据降维实践

银河娱乐首页,数据降维是一件困难的事情,而难点通常集中在主成分分析上。此前,我介绍过一种基于自动编码器的降维方法。然而,在那一段时间里,我专注于如何使用自动编码作为预测器,而现在我想把它们看作是一种降维技术。

这篇文章的目的是解释一下自动编码器是如何工作的。它是从将原始数据压缩成一个忽略噪声的短代码开始的。然后,该算法对该代码进行解压缩,以生成尽可能接近原始输入的图像。

自动编码的过程

实际案例

我们来谈谈金融界的一个热门话题:利率模型。我们已经尝试了主成分分析技术,发现总结起来,利率信息主要有三个因素,这三个因素代表零息曲线的等级、斜率和曲率,它们保留了大约 95% 的信息。

我想知道自动编码器是否能够通过只使用「编码过程」来捕获与 pca 相同的信息,因为这部分是关于数据压缩的。那么,让我们来演示如何得到一个降维的自动编码器。

进入主题

首先,你应该导入一些库:

from keras.models import model

from keras.layers import input, dense

from keras import regularizers

from sklearn.preprocessing import minmaxscaler

import pandas as pd

下载完数据后,你就可以开始了。所以,让我们看看要使用什么样的数据。记住,这里的想法是使用自动编码器来减少利率数据的维数。所以,数据集是:1995 年至 2018 年美国的零息曲线。

# normalise

scaler = minmaxscaler

data_scaled = scaler.fit_transform(data)

现在,创建一个自动编码器模型来降低利率的维度只需几秒钟的时间。此时,你应该确定在「编码过程」中需要多少层。由于目标是得到三个成分,以建立与 pca 的关系,因此需要分别创建 8(原始序列数量)、6、4 和 3(我们正在寻找的成分数量)个神经元。

# fixed dimensions

input_dim = data.shape[1] # 8

encoding_dim = 3

# number of neurons in each layer [8, 6, 4, 3, ...] of encoders

input_layer = input(shape=(input_dim, ))

encoder_layer_1 = dense(6, activation="tanh", activity_regularizer=regularizers.l1(10e-5))(input_layer)

encoder_layer_2 = dense(4, activation="tanh")(encoder_layer_1)

encoder_layer_3 = dense(encoding_dim, activation="tanh")(encoder_layer_2)

在下一步中,你将创建模型并使用它来预测压缩数据。该数据应包含原始数据的所有相关信息,且忽略噪声。

# crear encoder model

encoder = model(inputs=input_layer, outputs=encoder_layer_3)

# use the model to predict the factors which sum up the information of interest rates.

encoded_data = pd.dataframe(encoder.predict(data_scaled))

encoded_data.columns = ['factor_1', 'factor_2', 'factor_3']

现在,我留下一些问题:自动编码器捕获的信息比主成分分析多吗?这种创建自动编码器的方法是降低维度的最佳方法吗?

降维和自动编码还能干什么?

这种技术可以用来降低任何机器学习问题的维数。只要使用它,你就可以处理高维问题,降低训练和测试集的维度。这样,你就可以减少问题的维数,更重要的是,你可以将数据集中的噪声去除。

via:https://quantdare.com/dimensionality-reduction-method-through-autoencoders/

雷锋网雷锋网雷锋网

© Copyright 2018-2019 xduxdvu.cn 伶仃信息门户网 Inc. All Rights Reserved.