标签: dimensionality-reduction

如何在MATLAB中将图像缩略图添加为(或旁边)绘图标记?

我在一系列图像中运行MATLAB中的Isomap Dimensionality减少.我想在与其对应的歧管上的点旁边绘制图像的缩略图.

歧管的例子

我目前正在使用2个不同的isomaps http://isomap.stanford.edu/http://robotics.cs.brown.edu/projects/stisomap/.

matlab plot dimensionality-reduction matlab-figure

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

PCA降维

我正在尝试执行PCA,将900维度减少到10.到目前为止,我有:

covariancex = cov(labels);
[V, d] = eigs(covariancex, 40);

pcatrain = (trainingData - repmat(mean(traingData), 699, 1)) * V;
pcatest = (test - repmat(mean(trainingData), 225, 1)) * V;
Run Code Online (Sandbox Code Playgroud)

labels字符的1x699标签在哪里(1-26).trainingData是699x900,900维数据,699个字符的图像.test是225x900,225 900维度字符.

基本上我想把它减少到225x10,即10维度,但在这一点上有点卡住了.

matlab machine-learning linear-algebra pca dimensionality-reduction

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

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
查看次数

选择显示PCA差异最大的组件

我有一个庞大的数据集(32000*2500),我需要进行培训.这对于我的分类器来说似乎太过分了,所以我决定对维数降低进行一些阅读,特别是对PCA进行阅读.

根据我的理解,PCA选择当前数据并在另一个(x,y)域/规模上重新创建它们.这些新坐标并不意味着什么,但数据被重新排列以给出一个轴最大变化.在这些新系数之后,我可以放弃cooeff具有最小变化.

现在我试图在MatLab中实现它,并且在提供的输出方面遇到了麻烦.MatLab始终将行视为观察,将列视为变量.所以我的pca函数是我的大小矩阵(32000*2500).这将在大小的输出矩阵中返回PCA系数2500*2500.

pca的帮助说明:

每列coeff包含一个主成分的系数,列按成分方差的降序排列.

在此输出中,哪个维度是我的数据的观察?我的意思是,如果我必须将它提供给分类器,那些行coeff代表我的数据观察还是现在是列的coeff

如何删除变化最小的系数?

matlab classification machine-learning pca dimensionality-reduction

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

使用 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
查看次数

线性判别分析逆变换

我尝试使用scikit-learn 库中的线性判别分析,以便对具有 200 多个特征的数据执行降维。inverse_transform但我在LDA类中找不到该函数。

我只是想问,如何从LDA域中的一个点重建原始数据?

根据 @bogatron 和 @kazemakase 回答进行编辑:

我认为“原始数据”这个术语是错误的,我应该使用“原始坐标”或“原始空间”。我知道如果没有所有 PCA,我们就无法重建原始数据,但是当我们构建形状空间时,我们会在 PCA 的帮助下将数据投影到更低的维度。PCA 尝试仅用 2 或 3 个分量来解释数据,这些分量可以捕获数据的大部分方差,如果我们基于它们重建数据库,它应该向我们显示导致这种分离的形状部分。

我再次检查了 scikit-learn LDA 的源代码,我注意到特征向量存储在scalings_变量中。当我们使用svd求解器时,不可能反转特征向量 ( scalings_) 矩阵,但是当我尝试矩阵的伪逆时,我可以重建形状。

这里,有两个图像分别从 [ 4.28, 0.52] 和 [0, 0] 点重建:

来自[4.28,0.52] 从 [0, 0]

我认为如果有人深入解释 LDA 逆变换的数学局限性那就太好了。

python machine-learning dimensionality-reduction scikit-learn

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

tensorflow嵌入投影机t-sne算法与其他实现的区别?

我一直在使用tensorflow独立嵌入式投影仪(http://projector.tensorflow.org/),并发现它是一个非常有用的可视化工具.但是,当我尝试使用其他实现(例如,Rtsne,sklearn.manifold.tsne)复制t-sne结果时,低维投影似乎非常不同.特别是,在嵌入式投影仪中,群集比使用R或python包学习的群集更加分散.

我使用了相同的困惑,学习率和动量参数.并试图将投影仪中暗示的数据进行球化或不球化.

任何人都可以帮助阐明t-sne算法的张量流投影仪实现与Rtsne等其他实现之间的区别吗?例如,投影机中是否使用了与Rtsne类似的"夸张"参数?什么是优化算法?或者在生成可视化方面有什么特别之处吗?

我相信张量流投影仪的源代码是https://github.com/tensorflow/embedding-projector-standalone中的oss_demo_bin.js文件.不幸的是我不熟悉javascript,发现很难解释.

谢谢!

visualization dimensionality-reduction tensorflow

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

xgboost.plot_importance() 和 model.feature_importances_ XGBclassifier 之间有什么区别

XGBclassifier 中 xgboost.plot_importance() 和 model.feature_importances_ 有什么区别。

所以我在这里做了一些虚拟数据

import numpy as np
import pandas as pd
# generate some random data for demonstration purpose, use your original dataset here
X = np.random.rand(1000,100)     # 1000 x 100 data
y = np.random.rand(1000).round() # 0, 1 labels
a = pd.DataFrame(X)
a.columns = ['param'+str(i+1) for i in range(len(a.columns))]
b = pd.DataFrame(y)

import xgboost as xgb
from xgboost import XGBClassifier
from xgboost import plot_importance
from matplotlib import pyplot as plt
from sklearn.model_selection import train_test_split

model = …
Run Code Online (Sandbox Code Playgroud)

python feature-selection dimensionality-reduction xgboost xgbclassifier

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

如何使用 Python 的特征聚合进行降维?

我搜索了在 Python 中实现降维的方法,这是我得到的结果:http : //scikit-learn.org/stable/modules/unsupervised_reduction.html。该网站中显示的最后一种方法是特征聚合。我点击了该 python 方法的文档链接,但我仍然不确定如何使用它。

如果之前有人使用过 Python 的特征聚合方法,您是否可以解释它是如何工作的(输入、输出等)?谢谢!

python machine-learning feature-extraction dimensionality-reduction scikit-learn

4
推荐指数
1
解决办法
4441
查看次数

减小 Facebook fastText 的大小

我正在构建一个机器学习模型,它将处理文档并从中提取一些关键信息。为此,我需要使用词嵌入进行 OCRed 输出。我有几种不同的嵌入选项(Google 的 word2vec、Stanford 的、Facebook 的 fastText),但我主要担心的是 OOV 单词,因为 OCR 输出会有很多拼写错误的单词。例如,我想要嵌入使得嵌入嵌入(OCR 遗漏的 e)的输出应该具有一定程度的相似性。我不太关心相关的上下文信息。

我选择了 Facebook 的 fastText,因为它也提供了 OOV 单词的嵌入。我唯一关心的是嵌入的大小。fastText的模型的向量大小是300,有没有办法减少返回的词向量的大小?我正在考虑使用 PCA 或任何其他降维技术,但考虑到词向量的大小,这可能是一项耗时的任务。

dimensionality-reduction fasttext

4
推荐指数
1
解决办法
5055
查看次数