标签: dimensionality-reduction

如何使用减少的数据 - 主成分分析的输出

我发现很难将理论与实施联系起来.我很感激帮助知道我的理解错误.

符号 - 粗体大写的矩阵和粗体字母小写字母的向量

**X** 是一个数据集 <代码>名词</代码> 观察,每个 <代码> d </代码>变量.所以,鉴于这些观察<代码> d </代码>- 维数据向量, <代码>米</代码>- 维主轴是 ****瓦特<子>Ĵ</子>,为 Ĵ{1,...,M} 哪里 <代码>米</代码> 是目标维度.

<代码>米</代码> 观测数据矩阵的主要组成部分是 **Y = XW** 矩阵 ****<sup> nx m </ sup>中的Y**,矩阵 ****<sup> nx d </ sup>中的X**和矩阵 ****<sup> dx m </ sup>中的W**.

****w ^ 形成一个正交的基础 <代码>米</代码> 功能和输出 ****Ÿ<子>名词</子> 是最小化平方重建误差的主成分投影:

Σ<sub> n </ sub> ||**x**<sub> n </ sub>  - **x**<sub> n </ sub> || <sup> 2 </ sup>
和最优重建 **X**<子>名词</子> 是(谁)给的 **x**<sub> n </ sub> =**W*y**<sub> n </ sub>.

数据模型是

X(i,j) = A(i,:)*S(:,j) + noise
Run Code Online (Sandbox Code Playgroud)

其中PCA应在X上完成以获得输出S. S必须等于Y.

问题1:减少的数据Y不等于模型中使用的S. 我的理解在哪里错了? …

matlab image-processing pca dimensionality-reduction

7
推荐指数
1
解决办法
729
查看次数

圆形维数减少?

我希望减少维数,使得它返回的维度是循环的.

ex)如果我将12d数据减少到2d,在0和1之间归一化,那么我希望(0,0)与(.9,.1)同等地接近(.9,.9).

我的算法是什么?(python实现的奖励积分)

PCA给了我2d数据平面,而我想要数据的球面.

合理?简单?固有的问题?谢谢.

python machine-learning dimensionality-reduction

6
推荐指数
1
解决办法
258
查看次数

在自然语言处理(NLP)中,如何有效降低尺寸?

在NLP中,特征的维度总是很大.例如,对于一个项目,特征的维度几乎是20万(p = 20,000),每个特征是0-1整数,以显示特定单词或二元组是否在纸上呈现(一篇论文)是R ^ {p} $)中的数据点$ x \.

我知道功能之间的冗余是巨大的,因此减小尺寸是必要的.我有三个问题:

1)我有10万个数据点(n = 10,000),每个数据点有10万个特征(p = 10,000).进行降维的有效方法是什么?R ^ {n\times p} $中的矩阵$ X \是如此巨大,以至于PCA(或SVD,截断的SVD都可以,但我不认为SVD是减少二进制特征尺寸的好方法)和Bag单词(或K-means)很难直接在$ X $上进行(当然,它很稀疏).我没有服务器,我只是用我的电脑:-(.

2)如何判断两个数据点之间的相似性或距离?我认为欧几里德距离可能不适用于二进制特征.L0规范怎么样?你用什么?

3)如果我想使用SVM机器(或其他内核方法)进行分类,我应该使用哪个内核?

非常感谢!

text nlp machine-learning dimension-reduction dimensionality-reduction

6
推荐指数
1
解决办法
780
查看次数

PCA在随机森林之前减少维数

我正在使用大约4500个变量的二进制类随机森林.这些变量中的许多变量高度相关,其中一些变量只是原始变量的分位数.我不太确定将PCA用于减少维数是否明智.这会增加模型性能吗?

我希望能够知道哪些变量对我的模型更重要,但如果我使用PCA,我只能说出哪些PC更重要.

提前谢谢了.

pca dimensionality-reduction random-forest

6
推荐指数
1
解决办法
5922
查看次数

奇怪的迭代结果"错误是南"和运行警告使用t-SNE

我正在使用t-SNE python实现来降低维度,X其中包含100个实例,每个实例由cnn可视化的1024个参数描述.

X.shape = [100,1024]

X.dtype = float32

当我跑:

Y = tsne.tsne(X)
Run Code Online (Sandbox Code Playgroud)

在第23行的tsne.py中弹出第一个警告:

RuntimeWarning:在log H = Math.log(sumP)+ beta*Math.sum(D*P)/ sumP中遇到的除以零

然后在以下几行中会出现更多类似警告的警告:

RuntimeWarning:在divide中遇到无效值

最后,我在处理过程中的每次迭代后得到这个结果:

迭代xyz:错误是nan

代码以"错误"结束,最后得到一个空的散点图.

编辑:

- >我用不同的数据集尝试过它,它运行得很好.但是我也需要它来处理我的第一组(似乎导致问题的那个)

题 :

有谁知道这可能导致什么?有解决方法吗?

nan python-2.7 dimensionality-reduction

6
推荐指数
1
解决办法
969
查看次数

scikit-learn因子分析的轮换参数

因子分析的一个标志是它允许非正交潜在变量.

例如,在R中,可以通过rotation参数来访问此功能factanal.有没有这样的规定sklearn.decomposition.FactorAnalysis?显然它不在争论中 - 但也许还有另一种方法来实现这一目标?

遗憾的是,我无法找到许多此功能的使用示例.

python factor-analysis dimensionality-reduction scikit-learn

6
推荐指数
1
解决办法
1734
查看次数

使用 PyTorch LSTM,我可以使用与 input_size 不同的 hidden_​​size 吗?

我有:

    def __init__(self, feature_dim=15, hidden_size=5, num_layers=2):
        super(BaselineModel, self).__init__()
        self.num_layers = num_layers
        self.hidden_size = hidden_size

        self.lstm = nn.LSTM(input_size=feature_dim,
                            hidden_size=hidden_size, num_layers=num_layers)
Run Code Online (Sandbox Code Playgroud)

然后我收到一个错误:

RuntimeError: The size of tensor a (5) must match the size of tensor b (15) at non-singleton dimension 2
Run Code Online (Sandbox Code Playgroud)

如果我将两个尺寸设置为相同,那么错误就会消失。但我想知道我的数字input_size是否很大,比如 15,我想将隐藏特征的数量减少到 5,为什么不应该这样工作?

python dimensionality-reduction lstm pytorch

6
推荐指数
1
解决办法
674
查看次数

R - 使用 SVD 获取特征数量减少的矩阵

我将 SVD 包与 R 一起使用,我可以通过将最低奇异值替换为 0 来降低矩阵的维数。但是当我重新组合矩阵时,我仍然具有相同数量的特征,我无法找到如何有效删除源矩阵中最无用的特征,以减少其列数。

例如我现在正在做的事情:

这是我的源矩阵 A:

  A B C D
1 7 6 1 6
2 4 8 2 4
3 2 3 2 3
4 2 3 1 3
Run Code Online (Sandbox Code Playgroud)

如果我做:

s = svd(A)
s$d[3:4] = 0  # Replacement of the 2 smallest singular values by 0
A' = s$u %*% diag(s$d)  %*% t(s$v)
Run Code Online (Sandbox Code Playgroud)

我得到 A',它具有相同的尺寸(4x4),仅用 2 个“组件”进行重建,并且是 A 的近似值(包含较少的信息,可能较少的噪声等):

      [,1]     [,2]      [,3]     [,4]
1 6.871009 5.887558 1.1791440 6.215131
2 3.799792 7.779251 2.3862880 4.357163
3 2.289294 …
Run Code Online (Sandbox Code Playgroud)

r feature-extraction svd dimensionality-reduction matrix-factorization

5
推荐指数
1
解决办法
2741
查看次数

使用 tSNE 可视化距离矩阵 - Python

我已经计算了一个距离矩阵,并且正在尝试两种方法来可视化它。这是我的距离矩阵:

delta =
[[ 0.          0.71370845  0.80903791  0.82955157  0.56964983  0.          0.        ]
 [ 0.71370845  0.          0.99583115  1.          0.79563006  0.71370845
   0.71370845]
 [ 0.80903791  0.99583115  0.          0.90029133  0.81180111  0.80903791
   0.80903791]
 [ 0.82955157  1.          0.90029133  0.          0.97468433  0.82955157
   0.82955157]
 [ 0.56964983  0.79563006  0.81180111  0.97468433  0.          0.56964983
   0.56964983]
 [ 0.          0.71370845  0.80903791  0.82955157  0.56964983  0.          0.        ]
 [ 0.          0.71370845  0.80903791  0.82955157  0.56964983  0.          0.        ]]
Run Code Online (Sandbox Code Playgroud)

考虑从17 的标签,1确实接近67,并且更接近4

起初我尝试使用 tSNE 降维:

from sklearn.preprocessing …
Run Code Online (Sandbox Code Playgroud)

python matrix networkx dimensionality-reduction

5
推荐指数
0
解决办法
4683
查看次数

我收到此错误 n_components=1000 must be between 0 and min(n_samples, n_features)=2 with svd_solver='full'

我想使用 pca 降维来降低大小为 (5,3844) 的矩阵的维数。I got this error n_components=1000 must be between 0 and min(n_samples, n_features)=2 with svd_solver='full'.

我尝试了超过 5 周的时间来寻找如何做到这一点。

任何帮助,将不胜感激。

coeffs = wavedec(y, 'sym5', level=5)
cA5,cD5,cD4,cD3,cD2,cD1=coeffs
result = []
    common_x = np.linspace(0,3844, len(cD1))
    for c in [cD5,cD4,cD3,cD2,cD1]:
        x = np.linspace(0, 3844, len(c))
        f = interp1d(x, c)
        result.append(f(common_x)) #(5,3844)
    pca = PCA(n_components=1000)
    pca.fit(result)
    data_pca = pca.transform(result)
    print("original shape:   ", result.shape) ##(5,3844)
    print("transformed shape:", data_pca.shape) 

Run Code Online (Sandbox Code Playgroud)

python matrix pca dimensionality-reduction deep-learning

5
推荐指数
0
解决办法
1077
查看次数