问题标签 [dimensionality-reduction]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
360 浏览

r - 当同时存在数值和分类数据时,如何在 LSH 中进行随机投影?

注意:使用 LSH 进行最近邻查询

假设数据集有 5 个特征 (f1,f2,..,f5),其中前 2 个是数字,3 个是分类。这些类别中的一个或多个可能是用户名或主题之类的,编码起来会非常大。

如果我们使用混合距离作为距离度量并在哈希函数中使用它应该是什么或如何为函数选择随机投影?

如果我必须更改 HashFunction 就可以了。

样本数据

0 投票
1 回答
287 浏览

tags - Lastfm 数据库中的标签聚类

我有一个 last.fm 数据集,由用户给出的歌曲及其标签组成。我想在数据集上应用聚类,以便根据标签查找歌曲聚类。

该数据集有 200k 首歌曲和 119k 个不同的标签。我之前在考虑做一个矩阵 NxM,其中 N 是歌曲的数量,M 是属性的数量,每个位置都是 0 或 1,表示歌曲中是否存在标签。然而,矩阵的巨大维度阻止了我这样做。在应用聚类之前,我有一些关于应用 SVD 来降低维度的想法,但我不知道它是否是最好的方法。

因此,是否有人知道文献中试图进行这种聚类的一些工作?或者我的问题中的任何其他想法?

非常感谢您提前

0 投票
1 回答
1016 浏览

pandas - 使用包含 NaN 值的数据框在 Python Pandas 中进行随机投影

我有一个data包含实际值和一些 NaN 值的数据框。我正在尝试使用随机投影执行局部敏感散列,以将维度减少到 25 个组件,特别是sklearn.random_projection.GaussianRandomProjection类。但是,当我运行时:

tx = random_projection.GaussianRandomProjection(n_components = 25) data25 = tx.fit_transform(data)

我明白了Input contains NaN, infinity or a value too large for dtype('float64')。有解决方法吗?我尝试将所有 NaN 值更改为我的数据集中从未存在的值,例如 -1。在这种情况下,我的输出有多有效?我不是局部敏感散列/随机投影理论背后的专家,因此任何见解也会有所帮助。谢谢。

0 投票
2 回答
236 浏览

python - 使用曲线拟合降低数据维度

我是机器学习的新手,之前没有使用过 scikit-learn。我正在做一个项目。作为项目的一部分,我需要训练一种机器学习算法来将一些观察结果分类到不同的类中。我已经处理了传感器的观察结果以产生一些数据。但处理后的数据的问题在于,它是针对不同观察的不同长度的向量。

在此处输入图像描述

这张图片显示了一些数据。绿线是应用高斯滤波器后的原始数据,红线表示对数据的 16 度多项式拟合。第 1 行包含 3 个峰的数据,第 2 行包含 4 个峰的数据,第 3 行包含 5 个峰的数据。我希望能够将数据分类为单独的类。

我目前计划使用多项式的系数作为我的特征向量。第一行很好,但在峰值数量较多的情况下,多项式的拟合效果不佳,可能无法正确分类。我曾尝试使用更高次的多项式,但它会导致峰值数量较少的情况出现异常。仅仅计算峰的数量不能用于分类,因为这只是几个类别的一个子集,分类也将取决于观察到的峰的相对大小和分离,但是在多项式拟合中这个信息不是很清楚更多的峰值。

我想知道有没有

  • 其他一些方法而不是尝试拟合多项式,它可以帮助我生成特征向量来对数据进行分类。
  • 一种在python中可视化高维数据的方法

编辑:

我现在正在使用样条而不是多项式来拟合数据,scipy.interpolate.UnivariateSpline并且它正在生成更好的拟合。我现在可以使用结的位置和样条的系数。但是这些向量的长度不是恒定的,即使重复两次相同的观察也是不同的。有人可以建议一种将其映射到恒定长度向量的方法。

在此处输入图像描述

0 投票
1 回答
590 浏览

parsing - 将句子作为神经网络的输入时如何处理不同大小的句子?

我将一个句子作为树形结构神经网络的输入,其中叶节点将是句子中单词的词向量。

该树将是二元化选区(请参阅二元与 n 元分支部分)解析树。

我正在尝试开发句子的语义表示。

问题是,由于每个句子都有不同的解析树和不同的长度,每个句子都有不同的神经网络。由于神经网络的这种不断变化的结构,我无法训练它。

但是本文使用基于选区和依赖的解析树开发了一个树结构的神经网络——

1) Kai Sheng Tai、Richard Socher 和 Christopher Manning从树形结构的长短期记忆网络改进语义表示

本文使用 CNN 来提取语义表示。

2) Nal Kalchbrenner 和 Phil Blunsom 的循环连续翻译模型。这张照片给出了一个粗略的想法。CSM

可能的解决方案-
我可以将句子向量映射到固定数量的神经元,然后使用这些神经元创建树结构。例如,如果句子长度为 10,最大句子长度为 20,我可以创建一个 20 个神经元的固定维度层,然后(在这种特殊情况下)第一个词到前 2 个神经元,第二个词到第三个和第四个神经元等等。可以根据句子长度进行动态映射。

句子层到固定维数层的权重矩阵是固定的(权重应该保持为1)。没有偏见。

但我认为这种表示会有一些问题——例如——如果这句话“我有一个可爱的冰淇淋和一个糕点当甜点”。映射到固定维度层,它将变为“我有一个可爱的冰淇淋冰淇淋和一个用于甜点甜点的糕点……”。这意味着与较长的句子相比,较短的句子将对神经网络产生更深远的影响。这种对较短句子的偏见也应该在(序列生成器的)输出中产生重复的单词。如果我错了,有人可以纠正我吗?

我会欢迎更多的解决方案,尤其是那些不会消除句子中单词之间关系的解决方案。

我将使用 theano 和 python 来实现它。我正在考虑一种基于层的方法,并使用 theano.scan 迭代层以最终形成句子表示。

0 投票
2 回答
1052 浏览

artificial-intelligence - 降维是可逆的吗?

我已经使用 ENCOG 实现了一种降维算法,它采用具有多个特征的数据集(称为 A)并将其简化为只有一个特征的数据集(B)(我需要时间序列分析)。

现在我的问题是,我有一个来自 B 的值 - 由时间序列分析预测,我可以将它转换回 A 数据集中的二维吗?

0 投票
2 回答
1126 浏览

python - scikit KernelPCA unstable results

I'm trying to use KernelPCA for reducing the dimensionality of a dataset to 2D (both for visualization purposes and for further data analysis).

I experimented computing KernelPCA using a RBF kernel at various values of Gamma, but the result is unstable:

anim

(each frame is a slightly different value of Gamma, where Gamma is varying continuously from 0 to 1)

Looks like it is not deterministic.

Is there a way to stabilize it/make it deterministic?

Code used to generate transformed data:

0 投票
1 回答
456 浏览

r - R-降维LSA

我正在关注一个svd的例子,但我仍然不知道如何减少最终矩阵的维度:

recon仍然具有相同的维度。我需要将其用于语义分析。

0 投票
1 回答
485 浏览

pca - Principal Component Analysis being too slow (MLPY Python)

I am using the PCAFast method from the MLPY API in python (http://mlpy.sourceforge.net/docs/3.2/dim_red.html)

The method is executed pretty fast when it learns a feature matrix generated as follows:

Sample output of this command is:

However when the feature matrix x consists of data such as the following:

Sample output:

The method becomes very very slow... Why does this happen ? Does this have something to do with the type of the data stored in the x feature matrix ?

Any ideas on how to solve this ?

0 投票
2 回答
464 浏览

python - 使用 sklearn 或 gensim 的监督降维/主题模型

我有 BOW 向量,我想知道 sklearn 或 gensim 中是否有监督降维算法能够获取高维、监督数据并将其投影到较低维空间中,从而保留这些类之间的差异。

实际上,我正在尝试为分类/回归找到一个合适的指标,我相信使用维度可以帮助我。我知道有无监督的方法,但我想保留标签信息。