问题标签 [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.
weka - 多项朴素贝叶斯引发错误
1)在 weka 中应用 MultinomialNaivesBayes(不是任何其他分类器)会引发异常“评估分类器的问题:数字属性值必须全部大于或等于零”?如何解决?
2) 降维(PCA、LSI、随机投影)是特征选择(InformationGain、ChiSqr)的替代方法还是我们需要两者都应用?我在互联网上看到了关于他们的相互矛盾的意见?
machine-learning - randomSeed 对随机投影降维有什么影响?
1)randomSeed
参数对dimensionality reduction
by random projection
in 有什么影响weka
?
2)其次,据说dimensionality reduction
不会丢失信息,但我观察到如果我们设置numberOfAttributes
较小,它会提高准确性,而如果我们设置numberOfAttributes
接近当前(实际)或较大的值,是否会降低准确性?
matlab - 矩阵 kernelpca
我们正在开展一个项目,并试图通过 KPCA 获得一些结果。
我们有一个数据集(手写数字)并取了每个数字的前 200 个数字,所以我们完整的训练数据矩阵是 2000x784(784 是维度)。当我们做 KPCA 时,我们得到一个带有新的低维数据集 eg2000x100 的矩阵。但是我们不明白结果。我们不应该得到其他矩阵,比如我们为 pca 做 svd 时所做的吗?我们用于 KPCA 的代码如下:
我们已经阅读了很多论文,但仍然无法掌握 kpca 的逻辑!
任何帮助,将不胜感激!
matlab - 使用 Matlab 设计模型后重用降维
我正在使用带有 SVM 和 MLP 的二进制分类来处理财务数据。我的输入数据有 21 个特征,所以我使用降维方法来降低数据的维度。一些降维方法(如逐步回归)报告了最佳特征,因此我将这些特征用于我的分类模式,另一种方法(如 PCA 将数据转换到新空间),我使用例如 60% 的最佳报告列(特征)。关键问题是在使用最终模型的阶段。例如,我使用过去一年和两年前的财务数据作为今天的财务状况。所以现在我想用过去和今天的数据来预测明年。我的问题在这里:在插入到我设计的分类模型之前,我应该将 PCA 用于新的输入数据吗?我如何使用(例如主成分分析)这些数据?我必须像以前一样使用它吗?(pca(newdata…)) 还是我必须在此阶段使用上一次 PCA 的一些结果?
更多信息 :
这是我的系统结构:我有一个混合分类方法和优化算法,用于选择我的模型的最佳特征(输入)和我的分类方法的最佳参数,所以对于像 MLP 这样的分类方法,我需要很长时间来优化 21 个特征(除了其中我重复优化算法的每次迭代 12 次/横截面)。因此,我想在将特征插入分类方法之前,使用降维技术(如 PCA、NLPCA 或 LDA/FDA 等监督方法)来减少特征。例如,我正在使用这种 PCA 代码结构:
[系数,分数,潜在,tsquared,解释,mu] = pca( _ )
之后,我将使用前 10 列输出(按 PCA 函数排序)作为我的分类和优化模型的输入。在最后阶段,我将找到具有最佳输入组合的最佳模型参数。例如,我的原始数据有 21 个特征。在使用 PCA 的第一阶段之后,我将选择 10 个特征并在优化我的分类模型后的最终模型中。我将有一个具有 5 个最佳选择特征的模型。现在我想将此模型与新数据一起使用。我必须做什么?
非常感谢您的帮助。
r - 使用 R 检索决策树中节点的候选属性
我正在使用 R 使用 CART 创建决策树。我是用
现在,我需要打印根节点可能的候选属性列表。即与选定根节点的(不)纯度值偏差最小的节点。有什么方法可以使用内置函数还是我必须修改源代码?
matlab - PCA calculation for classification?
To do PCA, we have to compute the covariance matrix from our input data and then eigen decomposition is performed in that covariance matrix.
And to get the covariance matrix, we have to calculate the mean and then substract it with our data (data in matrix). But the problem is that Im going to perform PCA for classification.
And Im confused about how to compute the mean (it must be mean computed in row (consider for the class) / column (consider for the features))?
As in my case, here is the format of my Feature Matrix:
What I have done is
so I have (Mean Matrix)
And then I Substract the data in my Feature Matrix with those mean. So it becomes (Substract Matrix):
ClassN: feat1-Mean_Class1 feat2-Mean_Class2 feat3-Mean_Class3...featn-Mean_ClassN
Next is the Covariance Matrix:
The Principal components are extracted from this Covariance Matrix by using eigs [Vectors,Values] = eigs(CovarianceMatrix);
And for dimensionality reduction, I have to project those data after substract with its mean onto the extracted eigen vectors.
And then to project it:
- Are those right? Or there are some mistakes concept?
- Or I have to compute the mean for each column (consider the Features number)?
- And for projecting onto the new space, Is that right that I have to substract the data in the matrix with its mean (mean calculated for each row)?
Sorry If this is kind of stupid question, but I really need to confirm the true concept..
r - R - 使用 SVD 获得特征数量减少的矩阵
我正在使用带有 R 的 SVD 包,我可以通过将最低奇异值替换为 0 来降低矩阵的维数。但是当我重构矩阵时,我仍然具有相同数量的特征,我找不到如何有效地删除源矩阵中最无用的特征,以减少其列数。
例如我目前正在做的事情:
这是我的源矩阵 A:
如果我做:
我得到了具有相同尺寸(4x4)的 A',仅用 2 个“组件”重建,并且是 A 的近似值(包含更少的信息,可能更少的噪声等):
我想要的是一个列较少但再现不同行之间的距离的子矩阵,如下所示(使用 PCA 获得,我们称之为 A''):
这是使用 PCA 获取 A'' 的代码:
最终目标是减少列数,以加快大型数据集上的聚类算法。
如果有人可以指导我,请提前感谢您:)
python - sklearn中的KMeans转换是否可以反转?
在对数据集进行聚类,然后使用 sklearn.cluster.KMeans 将数据转换为距质心的距离后,是否可以在给定质心的情况下反转转换,取回原始特征?
k-means - 主成分分析 (PCA) 假设
我使用 PCA 减少了 3 个主成分中的 180 维特征空间。之后我使用 k-mean 聚类根据 PCA 的 3 个主成分对数据进行聚类。
我在维基百科中读到,如果数据集是联合正态分布的,则保证主成分是独立的。我没有计算我所有特征的联合分布(180)......这是个问题吗?
使用 PCA 进行降维的假设(如果有)或最佳实践是什么?
hash - 在预处理具有高基数的数据时,您是先哈希还是先热编码?
散列降低了维度,而单热编码通过将多类别变量转换为许多二进制变量,本质上炸毁了特征空间。因此,它们似乎具有相反的效果。我的问题是:
在同一个数据集上做这两个有什么好处?我读过一些关于捕捉交互的东西,但没有详细说明——有人可以详细说明一下吗?
哪个先出现,为什么?