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

我目前正在使用2个不同的isomaps http://isomap.stanford.edu/和http://robotics.cs.brown.edu/projects/stisomap/.
我正在尝试执行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
我将 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
我有一个庞大的数据集(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
我已经计算了一个距离矩阵,并且正在尝试两种方法来可视化它。这是我的距离矩阵:
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)
考虑从1到7 的标签,1确实接近6和7,并且更接近4。
起初我尝试使用 tSNE 降维:
from sklearn.preprocessing …Run Code Online (Sandbox Code Playgroud) 我尝试使用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] 点重建:
我认为如果有人深入解释 LDA 逆变换的数学局限性那就太好了。
python machine-learning dimensionality-reduction scikit-learn
我一直在使用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,发现很难解释.
谢谢!
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
我搜索了在 Python 中实现降维的方法,这是我得到的结果:http : //scikit-learn.org/stable/modules/unsupervised_reduction.html。该网站中显示的最后一种方法是特征聚合。我点击了该 python 方法的文档链接,但我仍然不确定如何使用它。
如果之前有人使用过 Python 的特征聚合方法,您是否可以解释它是如何工作的(输入、输出等)?谢谢!
python machine-learning feature-extraction dimensionality-reduction scikit-learn
我正在构建一个机器学习模型,它将处理文档并从中提取一些关键信息。为此,我需要使用词嵌入进行 OCRed 输出。我有几种不同的嵌入选项(Google 的 word2vec、Stanford 的、Facebook 的 fastText),但我主要担心的是 OOV 单词,因为 OCR 输出会有很多拼写错误的单词。例如,我想要嵌入使得嵌入和嵌入(OCR 遗漏的 e)的输出应该具有一定程度的相似性。我不太关心相关的上下文信息。
我选择了 Facebook 的 fastText,因为它也提供了 OOV 单词的嵌入。我唯一关心的是嵌入的大小。fastText的模型的向量大小是300,有没有办法减少返回的词向量的大小?我正在考虑使用 PCA 或任何其他降维技术,但考虑到词向量的大小,这可能是一项耗时的任务。