Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 降低深度学习模型的输入维度_Python 3.x_Machine Learning_Deep Learning_Keras_Dimensionality Reduction - Fatal编程技术网

Python 3.x 降低深度学习模型的输入维度

Python 3.x 降低深度学习模型的输入维度,python-3.x,machine-learning,deep-learning,keras,dimensionality-reduction,Python 3.x,Machine Learning,Deep Learning,Keras,Dimensionality Reduction,我正在学习一门关于深度学习的课程,我有一个用keras构建的模型。经过数据预处理和分类数据编码,我得到一个shape(12500,)数组作为模型的输入。这种输入使模型训练过程变得缓慢和滞后。是否有一种最小化输入维度的方法 输入是分类地理坐标、天气信息、时间、距离,我试图预测两个地理坐标之间的旅行时间 原始数据集有8个特征,其中5个是分类的。我使用onehot编码对上述分类数据进行编码。地理坐标有6000个类别,天气15个类别时间有96个类别。同样,在使用onehot编码后,我得到了一个形状数组(

我正在学习一门关于深度学习的课程,我有一个用keras构建的模型。经过数据预处理和分类数据编码,我得到一个shape
(12500,)
数组作为模型的输入。这种输入使模型训练过程变得缓慢和滞后。是否有一种最小化输入维度的方法

输入是分类地理坐标、天气信息、时间、距离,我试图预测两个地理坐标之间的旅行时间


原始数据集有8个特征,其中5个是分类的。我使用onehot编码对上述分类数据进行编码。地理坐标有6000个类别,天气15个类别时间有96个类别。同样,在使用onehot编码后,我得到了一个形状数组
(12500,)
,作为模型的输入。

您可以使用PCA进行降维。 它删除相关变量并确保数据中存在高方差


当类别的数量很大时,一个热编码的效率太低。这方面的一个极端例子是用自然语言处理句子:在这个任务中,词汇通常有10万个甚至更多的单词。显然,将一个10个单词的句子翻译成一个
[10100000]
矩阵(几乎所有矩阵都为零)会浪费内存

研究人员使用的是嵌入层,它学习类别特征的密集表示。如果是单词,则称为单词嵌入,例如。这种表示法更小,大约是100维的,使网络的其余部分能够有效地处理100维输入向量,而不是100000维向量


在keras中,它是由一个层实现的,我认为这个层非常适合您的
geo
time
特性,而其他层可能可以使用一个热编码。这意味着您的模型不再是连续的,而是有多个输入,其中一些通过嵌入层。主模型将采用学习表示的串联并进行回归推断。

输入表示什么?您需要输入中的所有内容吗?你想输出什么?您需要提供更多信息才能得到任何有意义的答案。关于输入的更多信息被添加。这需要12500的数组吗?我数了五个特征!原始数据集有8个特征,其中5个是分类的。我使用onehot编码对上述分类数据进行编码。地理坐标有6000个类别,天气15个类别时间有96个类别。同样,在使用onehot编码后,我得到一个形状数组(12500,)作为模型的输入。在使用一个hot编码器编码后,PCA可以应用于数据集吗?。未编码的原始数据集包含8个特征,编码后输入的形状为(15000,)我认为编码前应用PCA不会有任何区别,因为编码后会再次导致(15000,)。因此,仅在编码后进行。