Questions tagged «algorithms»

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


2
实际实践中关于机器学习的全部内容是什么?
我是机器学习(还包括一些统计数据)的新手,一段时间以来一直在学习知识(有监督/无监督学习算法,相关的优化方法,正则化,一些哲学(例如偏差方差折衷?))。我知道,没有任何实际练习,我将不会对这些机器学习知识有深入的了解。 因此,我首先从真实数据的分类问题开始,例如手写数字分类(MNIST)。令我惊讶的是,在没有任何特征学习/工程设计的情况下,使用原始像素值作为输入的随机森林分类器,精度达到0.97。我还尝试了其他学习算法,例如支持参数调整的SVM,LR。 然后我迷路了,这太容易了还是我在这里错过了任何东西?只是从工具箱中选择学习算法并调整一些参数? 如果在实践中将全部与机器学习有关,那么我将对该领域失去兴趣。我思考并阅读了一些博客几天,然后得出一些结论: 机器学习在实践中最重要的部分是特征工程,即在给定数据的情况下,找出特征的更好表示。 使用哪种学习算法也很重要,参数调整也很重要,但最终选择更多是关于实验。 我不确定我是否理解正确,希望任何人都可以纠正我,并给我一些有关实践中机器学习的建议。

1
期望最大化澄清
我发现有关EM算法的非常有用的教程。 该示例和教程中的图片简直太棒了。 有关计算概率的相关问题,期望最大化如何工作? 关于如何将教程中描述的理论与示例联系起来,我还有另一个问题。 在E步中,EM选择一个函数,该函数所有位置下限,并且为此。gtgtg_tlogP(x;Θ)log⁡P(x;Θ)\log P(x;\Theta)gt(Θ^(t))=logP(x;Θ^(t))gt(Θ^(t))=log⁡P(x;Θ^(t))g_t( \hat{\Theta}^{(t)}) = \log P(x; \hat{\Theta}^{(t)}) 因此,在我们的示例中,看起来像每次迭代都应该有所不同。gtgtg_t 另外,在示例中和然后将它们应用于数据,我们得出和。对我来说,这看起来很不直观。我们有一些先前的假设,将其应用于数据并获得新的假设,因此数据以某种方式改变了这些假设。我不明白为什么不等于。Θ^(0)A=0.6Θ^A(0)=0.6\hat{\Theta}_A^{(0)} = 0.6Θ^(0)B=0.5Θ^B(0)=0.5\hat{\Theta}_B^{(0)} = 0.5Θ^(1)A=0.71Θ^A(1)=0.71\hat{\Theta}_A^{(1)} = 0.71Θ^(1)B=0.58Θ^B(1)=0.58\hat{\Theta}_B^{(1)} = 0.58Θ^(0)Θ^(0)\hat{\Theta}^{(0)}Θ^(1)Θ^(1)\hat{\Theta}^{(1)} 此外,当您看到本教程的补充说明1时,还会出现更多问题。例如,在我们的案例中,是什么。我不清楚,为什么当时,不等式变得很紧Q(z)Q(z)Q(z)Q(z)=P(z|x;Θ)Q(z)=P(z|x;Θ)Q(z)=P(z|x;\Theta) 谢谢。

4
如何(数值)估算具有较大alpha和beta的beta分布的近似值
是否存在一种数值稳定的方法来计算大整数alpha,beta(例如alpha,beta> 1000000)的beta分布值? 实际上,如果使问题变得更容易,我只需要围绕模式设置99%的置信区间即可。 补充:对不起,我的问题没有我想的那么清楚。我想要做的是:我有一台检查传送带上产品的机器。这些产品的一部分被机器拒绝。现在,如果机器操作员更改某些检查设置,我想向他/她显示估计的废品率,以及一些有关当前估计的可靠性的提示。 因此,我认为我将实际拒绝率视为随机变量X,并根据拒绝对象N和接受对象M的数量计算该随机变量的概率分布。如果我假设X的先验分布均匀,则这是一个beta分布取决于N和M。我可以直接向用户显示此分布,也可以找到一个区间[l,r],以便实际拒绝率在此区间内,且p> = 0.99(使用shabbychef的术语)并显示间隔。对于较小的M,N(即,在参数更改之后),我可以直接计算分布并近似间隔[l,r]。但是对于大的M,N,这种简单的方法会导致下溢错误,因为x ^ N *(1-x)^ M很小,可以表示为双精度浮点数。 我猜我最好的选择是对小M,N使用朴素的beta分布,并在M,N超过某个阈值后立即切换为具有相同均值和方差的正态分布。那有意义吗?

3
Nelder Mead的停止标准
我正在尝试实现用于优化功能的Nelder-Mead算法。关于Nelder-Mead的维基百科页面,除其停止标准外,对整个算法都非常清楚。可悲的是: 检查收敛性[需要澄清]。 我自己尝试并测试了一些标准: 如果则停止f(xN+1)−f(x1)&lt;ϵf(xN+1)−f(x1)&lt;ϵf(x_{N+1}) - f(x_1) < \epsilon,其中小,并且是单纯形的第个顶点,从低()到高()函数值。换句话说,当单纯形的最大值几乎等于最小值时。我发现这不能正常工作,因为这不能保证函数在单纯形内部的功能。例如,考虑函数:ϵϵ\epsilonxixix_iiiif(x1)f(x1)f(x_1)f(xñ+ 1)f(Xñ+1个)f(x_{N+1})F(x )= x2F(X)=X2f(x) = x^2当然,这对于优化来说是微不足道的,但是假设我们使用NM来做到这一点,并且让我们的两个单纯形点分别为和。该算法将在此处收敛,而找不到最佳值。X1个= - 1X1个=-1个x_1 = -1X2= 1X2=1个x_2=1 第二种选择涉及评估单纯形的质心:如果。假设如果单纯形和质心的最低点具有类似的值,则单纯形足够小以调用收敛。| F(x1个)− f(xC)| &lt; ϵ|F(X1个)-F(XC)|&lt;ϵ|f(x_1) - f(x_c)| < \epsilon 这是检查收敛的正确方法吗?还是有一种确定的方法来检查这一点?我找不到任何相关资料,因为大多数搜索结果都集中在算法的复杂性上。

2
为什么选择Adaboost和决策树?
我已经阅读了一些有关分类任务的增强算法,尤其是Adaboost。我了解Adaboost的目的是招募几个“弱学习者”,并通过对训练数据进行一系列迭代,推动分类器学习预测模型反复犯错的类。但是,我想知道为什么我所做的许多阅读都使用决策树作为弱分类器。是否有特定原因?是否有某些分类对于Adaboost而言特别好坏?

2
计算神经网络的VC维度
如果我有输入神经元的乙状神经元的固定非递归(DAG)拓扑(固定的节点和边集,但是学习算法可以改变边的权重),它们只能采用作为输入并导致一个输出(输出的实数值,如果它是固定的阈值(远离0),则我们向上舍入为1或向下舍入为-1)。是否有任何快速方法可以计算(或近似)该网络的VC尺寸?nnn{−1,1}n{−1,1}n\{-1,1\}^n 笔记 我在CS.SE上提出了一种更为精确的算法重新制定: 有效地计算或近似神经网络的VC维

4
您如何测试k均值的实现?
免责声明:我在Stackoverflow上发布了此问题,但我认为这可能更适合此平台。 您如何测试自己的多维数据集的k-means实现? 我正在考虑对数据运行一个已经存在的实现(即Matlab),并将结果与​​我的算法进行比较。但这将要求两种算法的工作原理大致相同,并且两种结果之间的映射可能并非易事。 你有更好的主意吗?

1
大规模PCA甚至可能吗?
主成分分析(PCA)的经典方法是在输入数据矩阵上进行,列的均值为零(然后PCA可以“最大化方差”)。通过将列居中可以轻松实现。但是,当输入矩阵稀疏时,居中的矩阵现在将变得稀疏,并且-如果矩阵很大,则不再适合内存。有针对存储问题的算法解决方案吗?

2
异常检测:使用什么算法?
背景信息:我正在开发一个分析临床数据的系统,以过滤掉可能是错别字的难以置信的数据。 到目前为止,我做了什么: 为了量化真实性,到目前为止,我的尝试是对数据进行归一化,然后根据点p与集合D中已知数据点的距离(=训练集合)计算点p的真实性值: plausibility(p)=∑q∈DGauss(distance(p,q))plausibility(p)=∑q∈DGauss(distance(p,q))\text{plausibility}(p)=\sum_{q\in D}\text{Gauss}(\text{distance}(p,q)) 通过这种量化,我可以选择一个阈值,将合理的数据与不可信的数据分开。我正在使用python / numpy。 我的问题: 该算法无法检测独立的维度。理想情况下,我可以将关于记录的所有信息放入算法中,让它自己发现维度X不会影响记录的合理性。 该算法不适用于布尔值或选择输入等离散值。它们可以映射到连续值上,但是与Select 3相比,Select 1与Select 2更接近Select 2是违反直觉的。 题: 我应该为该任务寻找哪种算法?似乎有很多选择,包括基于最近邻居,基于聚类和统计方法。另外,我很难找到有关这种复杂性异常检测的论文。 任何建议都受到高度赞赏。 [编辑]示例: 假设数据由一个人的身高,一个人的体重和时间戳组成-因此它是3D数据。体重和身高是相关的,但时间戳是完全独立的。如果仅考虑欧几里德距离,则必须选择一个小的阈值以适合我的大多数交叉验证数据。理想情况下,该算法将只忽略时间戳记维度,因为确定记录是否合理是无关紧要的,因为时间戳记与任何其他维度都不相关。任何时间戳都是合理的。 另一方面,可以组成一些示例,其中时间戳确实很重要。例如,特征X的值Y在某个日期之前而不是某个日期之后测量时可能是合理的。

3
使用最少的内存来训练数据的最有效方法是什么?
这是我的训练数据:200,000个示例x 10,000个功能。所以我的训练数据矩阵是-200,000 x 10,000。 当我为每个示例生成功能时,我设法将每个数据集一个接一个地保存(一个示例一个接一个),从而将其保存到一个平面文件中而没有内存问题。 但是,现在当我使用Milk,SVM light或任何其他机器学习算法时,一切都会尝试将整个训练数据加载到内存中,而不是一一训练。但是,我只有8 GB的RAM,因此无法进行这种方式。 您是否知道我可以逐个训练一个数据集的算法?也就是说,在训练时,我随时都可以将一个数据集加载到内存中。

4
从电子邮件地址到准随机数[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为交叉验证的主题。 2年前关闭。 我的目标: 我想要一个具有电子邮件地址并输出1、2、3或4的准随机数的函数。 一点细节: 通过准随机数,我的意思是给定一个典型的电子邮件地址,获得值1、2、3或4的概率大致相等,并且电子邮件地址的明显系统属性(例如域名)不会影响获得值1、2、3或4的可能性。 一点背景: 我有一个以询问方式编写的在线实验,参与者有两次登录。我想将参与者随机分配到四个组之一。尽管对于一个会话来说这很容易做到(我只能使用随机数生成器),但是我需要某种方式来记住跨会话的分配。因此,我认为我可以从参与者电子邮件中提取一个准随机组分配。我在可用的功能集中也受到限制(完整列表请参见此处)。字符串函数是:较低上部大写concat搜索replaceall包含以结尾开头的字符串,带有子字符串trim trimright trimleft长度格式求值 初步想法: 我考虑过尝试提取电子邮件地址的一组功能,这些功能返回的概率分别为1、2、3或4。然后,我可以对这些属性求和并得到mod 4 plus 1。因此,假设类似中心极限定理,我可能会接近。 我可能想到的功能: 字符串长度 第一个“ a”,“ b”等的位置

3
机器学习排名算法
我有一组元素,我可以根据特征来描述它们。从而:XXXññn X一世:{C我1,C我2,… ,C我ñ} |X一世∈ XX一世:{C一世1个,C一世2,…,C一世ñ}∣X一世∈Xx_i: \{c_{i1}, c_{i2}, \ldots, c_{in}\} \mid x_i \in X 其中是根据特性对元素的(数值)评估。因此,我的元素可以视为维空间中的点。C我ĴC一世Ĵc_{ij}一世一世iĴĴjññn 根据我的阅读,存在诸如“贝叶斯分类器”之类的算法,可以对我的集合中的任何元素提供“是”或“否”类型的答案,但前提是我确实使用了由一些我的集合中的元素以及算法的预期结果。基于该数据,该算法应该能够采用任何其他元素,而不是训练集的一部分,并根据从训练集中学到的知识提供“是”或“否”的答案。如果您对期望的内容(训练集)有某种想法,但不确定如何产生此结果的特定规则,那么这很好。 我想对数据进行的处理不会得到“是”或“否”类型的答案,但是我想在元素中引入一个排名。其中一些比其他“更好”。就像贝叶斯过滤器一样,我对期望值有一个大致的了解。因此,我可以从元素的子集中生成一个“培训排名”,并将其输入到MLA中。根据该训练,我可以对我的整个作品进行排名。 为此,我看到两种方法: MLA将为每个元素评分,然后根据该评分对元素进行排名。 MLA可以采用两个元素和并确定其中一个更好(成对比较)。使用该比较操作使用quicksort。X一世X一世x_iXĴXĴx_j 注意:基于分数,成对函数很容易实现,而基于成对函数,生成分数很简单,因此这只是两个产生相同结果的方法。 是否有MLA可以提供评分功能或成对比较功能的示例? 编辑:为了添加更多上下文:当前,我的项目是根据一种算法进行排名的,该算法通过对进行计算来生成每个项目的得分(实数)。尽管生成的排名非常正确,但是我经常必须修改算法以某种方式对其进行调整,因为我可以清楚地看到一些未按我期望的排名的项目。C一世ĴC一世Ĵc_{ij} 所以目前我的设计过程是: 了解什么是完美的排名 尝试(手动)派生一个算法来对此类项目进行排名 观察结果 调整算法 所以我考虑了MLA,因为我的过程的起点就是可以用作训练数据。我可能会以当前的排名开始,根据我的需求交换项目并将其提供。

1
与抽样成本
我遇到了以下模拟问题:给定一组已知实数的,在上的分布由 其中表示的正数。虽然我可以靶向这种分布认为大都市,黑斯廷斯样的,我不知道是否存在一个有效的直接取样,取大量的零个概率的优势,从降低算法的顺序至。{ - 1 ,1 } d P(X = (X 1,... ,X d))α (X 1 ω 1 + ... + X d ω d )+(Ž )+ ž O (2 d)O (d ){ω1,…,ωd}{ω1,…,ωd}\{\omega_1,\ldots,\omega_d\}{−1,1}d{−1,1}d\{-1,1\}^dP(X=(x1,…,xd))∝(x1ω1+…+xdωd)+P(X=(x1,…,xd))∝(x1ω1+…+xdωd)+\mathbb{P}(X=(x_1,\ldots,x_d))\propto (x_1\omega_1+\ldots+x_d\omega_d)_+(z)+(z)+(z)_+zzzO (2d)Ø(2d)O(2^d)Ø (d)Ø(d)O(d)

2
如何对截断的多项式分布进行采样?
我需要一种算法来采样截断的多项式分布。那是, x⃗ ∼1Zpx11…pxkkx1!…xk!x→∼1Zp1x1…pkxkx1!…xk!\vec x \sim \frac{1}{Z} \frac{p_1^{x_1} \dots p_k^{x_k}}{x_1!\dots x_k!} 其中是归一化常数,\ vec x具有k个正分量,并且\ sum x_i = n。我只考虑\ vec {x}在\ vec a \ le \ vec x \ le \ vec b范围内的值。→ X ķ Σ X 我 = Ñ → X → 一个 ≤ → X ≤ → bZZZx⃗ x→\vec xkkk∑xi=n∑xi=n\sum …

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.