Questions tagged «algorithms»

查找一类问题的解决方案所涉及的计算步骤的明确清单。

1
什么是计算奇异值分解(SVD)的有效算法?
维基百科有关主成分分析的文章指出: 存在有效的算法来计算的SVD,而不必形成矩阵X T X,因此,计算SVD现在是从数据矩阵计算主成分分析的标准方法,除非只需要少量的成分。XXXXŤXXŤXX^TX 有人可以告诉我本文讨论的有效算法是什么?没有提供参考(建议使用这种计算方式的文章的URL或引用会很好)。
17 pca  algorithms  svd  numerics 

5
均值绝对偏差和大数据集的在线算法
我有一个小问题使我感到恐惧。我必须为多元时间序列的在线获取过程编写程序。在每个时间间隔(例如1秒),我都会得到一个新样本,该样本基本上是大小为N的浮点向量。我需要做的操作有些棘手: 对于每个新样本,我计算该样本的百分位数(通过对向量进行归一化,以使元素总和为1)。 我以相同的方式计算平均百分比矢量,但使用过去的值。 对于每个过去的值,我使用在步骤2中计算的全局平均百分比矢量来计算与该样本相关的百分比矢量的绝对偏差。这样,绝对偏差始终为0(当矢量等于平均值​​)之间的数字。向量)和2(当完全不同时)。 使用所有先前样本的偏差平均值,我计算出平均绝对偏差,该平均值也是0到2之间的一个数字。 我使用平均绝对偏差来检测新样本是否与其他样本兼容(通过将其绝对偏差与在步骤4计算的整个集合的平均绝对偏差进行比较)。 由于每次收集一个新样本时,全局平均值都会发生变化(因此平均绝对偏差也会发生变化),有没有一种方法可以计算此值而无需多次扫描整个数据集?(一次用于计算总体平均百分比,一次用于收集绝对偏差)。好的,我知道在不扫描整个集合的情况下计算全局平均值绝对容易,因为我只需要使用一个临时矢量来存储每个维的和,那么平均绝对偏差呢?它的计算包括abs()运算符,因此我需要访问所有过去的数据! 谢谢你的帮助。


4
在哪种现实生活中,我们可以使用多臂强盗算法?
多臂强盗在您有选择的情况下工作得很好,并且您不确定哪个会最大化您的健康。您可以在某些现实生活中使用该算法。例如,学习可以是一个很好的领域: 如果一个孩子在学习木工,但对它不擅长,该算法将告诉他/她可能需要继续前进。如果他/她擅长,算法将告诉他/她继续学习该领域。 约会也是一个很好的领域: 你是一个男人,在追求女士方面投入了很多“精力”。但是,您的努力绝对是不受欢迎的。该算法应“轻微”(或强烈)推动您继续前进。 我们可以在多现实情况下使用多臂强盗算法吗? PS:如果问题过于广泛,请发表评论。如果达成共识,我将删除我的问题。

1
预测连续变量时应如何实施决策树拆分?
我实际上是在编写随机森林的实现,但我相信这个问题特定于决策树(独立于RF)。 因此,上下文是我正在决策树中创建一个节点,并且预测变量和目标变量都是连续的。该节点有一个分割阈值,可将数据划分为两个集合,我根据每个集合中的平均目标值为每个子集创建新的预测。这是正确的方法吗? 我问的原因是,在预测二进制变量时,我相信典型的方法(正确吗?)是将数据分为0和1个子集,而不需要对每个子集的数据行取平均值。随后的分割将被划分为更细粒度的子集,并在每个分割处取平均值,结果后续的分割(决策树下方)将根据现在的连续变量而不是二进制变量进行操作(因为我们对残差值而不是原始值进行运算)目标)。 附带的问题:两种方法(二进制方法与连续方法)之间的区别是否显着-还是对于完整的决策树它们实际上会给出相同的结果?


2
什么是“消息传递方法”?
我对什么是消息传递方法有一个模糊的认识:一种算法,该算法通过在所有其他因子的所有近似值的基础上迭代构建分布的每个因子的近似值来构建分布的近似值。 我相信这两个都是变体消息传递和期望传播的示例。什么是更明确/正确的消息传递算法?欢迎参考。


3
评估排名算法的指标
我有兴趣查看几种不同的算法排名指标-“学习排名”维基百科页面上列出了一些指标,包括: •平均平均精度(MAP); •DCG和NDCG; •Precision @ n,NDCG @ n,其中“ @n”表示仅对前n个文档评估度量; •平均倒数排名; •肯德尔的牛头 •斯皮尔曼的罗 •预期的相互排名 •Yandex的缺点 但是我不清楚每种方法都有哪些优缺点,或者何时可以选择一种方法而不是另一种方法(或者说一种算法在NDGC上的性能优于另一种算法,而在用MAP评估时更糟,这意味着什么)。 我有什么地方可以了解有关这些问题的更多信息?

3
使用归一化梯度和梯度的区别
在梯度下降算法的常规设置中,我们有,其中是当前点,是步长,是梯度在评估。 xn+1=xn−η∗gradientxnxn+1=xn−η∗gradientxnx_{n+1} = x_{n} - \eta * gradient_{x_n}xnxnx_nηη\etagradientxngradientxngradient_{x_n}xnxnx_n 我已经在某种算法中看到,人们使用归一化梯度而不是gradient。我想知道使用归一化渐变和简单渐变有什么区别。

3
存在哪些快速算法来计算截断的SVD?
可能不在这里,但存在几种(一种,二)相关的问题。 在文献中闲逛(或在Google中搜索“截断的SVD算法”)会发现很多使用以各种方式截短的,并声称(令人沮丧的是,通常没有引证)有快速的算法可以对其进行计算,但是没有人似乎在指出这些算法是什么。 我唯一能找到的是一个随机算法在redSVD库中使用。 我想看到的是一组精确且不精确的算法,适合理解系统的工作原理(但不一定要实际实现它们!)。 有人对这种事情有很好的参考吗?

1
机器学习分类器big-O或complex
为了评估一种新的分类器算法的性能,我正在尝试比较准确性和复杂性(训练和分类中的big-O)。来自Machine Learning:a review,我得到了完整的监督分类器列表,还有算法之间的准确性表,以及来自UCI数据存储库的 44个测试问题。但是,对于常见的分类器,我找不到带有big-O的评论,论文或网站: C4.5 RIPPER(我认为这不可能,但谁知道) 人工神经网络与反向传播 朴素贝叶斯 神经网络 支持向量机 如果有人对这些分类器有任何表达,它将非常有用,谢谢。

3
为什么我们使用k-means代替其他算法?
我研究了k均值,这就是我得到的:k均值是最简单的算法之一,它使用无监督学习方法来解决已知的聚类问题。它对于大型数据集非常有效。 但是,K均值也存在以下缺点: 对异常值和噪声具有很强的敏感性 不适用于非圆形的簇形状-簇的数量和初始种子值需要事先指定 通过局部最优的能力低。 k均值有什么好处,因为缺点似乎超出了k均值的好处。 请教我。

1
什么是前向逐步回归算法?
也许只是我很累,但是在尝试理解前向逐步回归算法时遇到了麻烦。从“统计学习要素”第60页: 前向逐步回归(FS)比前向逐步回归受到的约束更大。它像逐步回归一样开始,其截距等于y的均值,并且中心预测变量的系数最初均为0。 在每一步中,算法都会识别与当前残差最相关的变量。然后,它计算该所选变量的残差的简单线性回归系数,然后将其添加到该变量的当前系数中。一直持续到所有变量都与残差不相关为止(即,当N> p时,最小二乘拟合)。 那么,这是算法吗?: b[1]=mean(y) b[2..n]=0 r=(y-X*b) index, maxCorr = max(transpose(r)*X) while(abs(maxCorr) > someThreshold) b[index]=b[index]+regress(r,X[1..n][index]) r=(y-X*b) index, maxCorr = max(transpose(r)*X) 其中b是系数的列向量,X是输入矩阵,而y是输出的列向量。即y = X * b +错误。 询问是因为此算法仅在我正在测试的数据集中给我一些非零系数(阈值= .0001),并且预测精度根本不是很好。

1
从多元高斯分布中产生值
目前我正在试图到的模拟值维随机变量具有与平均向量一个多元正态分布和协方差矩阵。NNNXXXμ=(μ1,...,μN)Tμ=(μ1,...,μN)T\mu = (\mu_1,...,\mu_N)^TSSS 我希望能使用类似于逆CDF方法的过程,这意味着我想首先生成维均匀随机变量,然后把它插入到这个分布的逆CDF,所以生成值。NNNUUUXXX 我遇到问题是因为该过程没有得到很好的记录,并且MATLAB中的mvnrnd函数与我在Wikipedia上找到的描述之间存在细微的差异。 就我而言,我还随机选择分布的参数。特别是,我从均匀分布生成每个均值。然后,我使用以下过程构建协方差矩阵:μiμi\mu_iU(20,40)U(20,40)U(20,40)SSS 创建一个下三角矩阵,其中对于,,对于 ,LLLL(i,i)=1L(i,i)=1L(i,i) = 1i=1..Ni=1..Ni=1..NL(i,j)=U(−1,1)L(i,j)=U(−1,1)L(i,j) = U(-1,1)i&lt;ji&lt;ji < j 令,其中表示的转置。S=LLTS=LLTS = LL^TLTLTL^TLLL 此过程使我可以确保是对称且为正定的。它还提供了一个较低的三角矩阵因此,我认为需要从该分布生成值。SSSLLLS=LLTS=LLTS = LL^T 使用Wikipedia上的指南,我应该能够使用维统一生成值,如下所示:XXXNNN X=μ+L∗Φ−1(U)X=μ+L∗Φ−1(U)X = \mu + L * \Phi^{-1}(U) 但是,根据MATLAB函数,通常按以下方式完成: X=μ+LT∗Φ−1(U)X=μ+LT∗Φ−1(U)X = \mu + L^T * \Phi^{-1}(U) 其中是一个的逆CDF维,可分离,正态分布,并且这两种方法之间的唯一区别是简单地是否使用或。Φ−1Φ−1\Phi^{-1}NNNLLLLTLTL^T 是MATLAB还是维基百科?还是都错了?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.