首页 体育 教育 财经 社会 娱乐 军事 国内 科技 互联网 房产 国际 女人 汽车 游戏

自编码器数据降维实践

2020-01-19

数据降维是一件困难的作业,而难点一般会集在主成分剖析上。此前,我介绍过 一种根据主动编码器的降维办法 。但是,在那一段时刻里,我专心于怎么运用主动编码作为猜测器,而现在我想把它们看作是一种降维技能。

这篇文章的意图是解释一下主动编码器是怎么作业的。它是从将原始数据紧缩成一个疏忽噪声的短代码开端的。然后,该算法对该代码进行解紧缩,以生成尽可能挨近原始输入的图画。

主动编码的进程

实践事例

咱们来谈谈的一个热门话题:利率模型。咱们现已尝试了主成分剖析技能,发现总结起来,利率信息主要有三个要素,这三个要素代表零息曲线的等级、斜率和曲率,它们保留了大约 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

现在,创立一个主动编码器模型来下降利率的维度只需几秒钟的时刻。此刻,你应该确定在「编码进程」中需求多少层。因为方针是得到三个成分,以树立与 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) encoder_layer_1 = Dense) encoder_layer_2 = Dense encoder_layer_3 = Dense

鄙人一步中,你将创立模型并运用它来猜测紧缩数据。该数据应包括原始数据的一切相关信息,且疏忽噪声。

# Crear encoder model encoder = Model # Use the model to predict the factors which sum up the information of interest rates. encoded_data = pd.DataFrame) encoded_data.columns = ['factor_1', 'factor_2', 'factor_3']

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

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

这种技能能够用来下降任何机器学习问题的维数。只需运用它,你就能够处理高维问题,下降练习和测验集的维度。这样,你就能够削减问题的维数,更重要的是,你能够将数据会集的噪声去除。

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

雷锋网雷锋网雷锋网

雷锋网版权文章,未经授权制止转载。概况见 转载须知 。

热门文章

随机推荐

推荐文章