Questions tagged «machine-learning»

机器学习算法可建立训练数据模型。术语“机器学习”的定义模糊不清;它包括所谓的统计学习,强化学习,无监督学习等。始终添加更多特定标签。



8
在机器学习者中很难找到技能?
似乎数据挖掘和机器学习变得如此流行,以至于现在几乎每个CS学生都知道分类器,聚类,统计NLP等。因此,如今寻找数据挖掘者似乎并不困难。 我的问题是:数据挖掘者可以学习哪些技能,从而使其与众不同?要使他成为一个不太容易找到像他这样的人。

2
求解封闭形式vs梯度下降中的回归参数
在Andrew Ng的机器学习课程中,他介绍了线性回归和逻辑回归,并展示了如何使用梯度下降和牛顿方法拟合模型参数。 我知道梯度下降在机器学习的某些应用(例如,反向传播)中可能很有用,但在更一般的情况下,有任何理由为什么您不会以封闭形式求解参数-即,采用成本函数和通过微积分求解? 如果可用,在封闭形式的解决方案上使用像梯度下降这样的迭代算法通常有什么优势?

9
我应该使用什么算法来检测时间序列的异常?
背景 我在网络运营中心工作,我们监视计算机系统及其性能。要监视的关键指标之一是当前连接到我们服务器的访问者/客户数量。为了使其可见,我们(Ops团队)收集了诸如时间序列数据之类的指标并绘制了图表。Graphite允许我们做到这一点,它有一个非常丰富的API,我可以用它来构建警报系统,以便在突然(主要是)突然下降和其他更改发生时通知我们的团队。目前,我已基于avg值设置了一个静态阈值,但是由于白天和一周中的不同负载(季节性因素),它不能很好地工作(存在很多假阳性)。 看起来像这样: 实际数据(一个度量标准的示例,时间范围为15分钟;第一个数字是用户数,第二个-时间戳): [{"target": "metric_name", "datapoints": [[175562.0, 1431803460], [176125.0, 1431803520], [176125.0, 1431803580], [175710.0, 1431803640], [175710.0, 1431803700], [175733.0, 1431803760], [175733.0, 1431803820], [175839.0, 1431803880], [175839.0, 1431803940], [175245.0, 1431804000], [175217.0, 1431804060], [175629.0, 1431804120], [175104.0, 1431804180], [175104.0, 1431804240], [175505.0, 1431804300]]}] 我要完成的工作 我创建了一个Python脚本,该脚本接收最近的数据点,将它们与历史平均值进行比较,并在发生突然变化或下降时发出警报。由于季节性因素,“静态”阈值无法正常运行,脚本会生成误报警报。我想提高警报算法的准确性,使其在不不断调整警报阈值的情况下工作。 我需要什么建议和发现的东西 通过谷歌搜索,我发现我正在寻找用于异常检测的机器学习算法(无监督算法)。进一步的调查表明,其中有很多,很难理解哪种情况适用于我的情况。由于我的数学知识有限,我无法阅读复杂的学者论文,并且正在寻找对该领域的初学者来说简单的东西。 我喜欢Python并且对R有点熟悉,因此很高兴看到这些语言的示例。请推荐一本好书或文章,这将有助于我解决问题。谢谢您的时间,请原谅我这么长时间的描述 有用的链接 类似问题: 时间序列和异常检测 使用Python进行时间序列异常检测 时间序列异常 时间序列异常检测算法 小波在基于时间序列的异常检测算法中的应用 我应该使用哪种算法? …

1
如何分割数据集以进行交叉验证,学习曲线和最终评估?
分割数据集的合适策略是什么? 我要求反馈对以下方法(不是像个别参数test_size或n_iter,但如果我用X,y,X_train,y_train,X_test,和y_test适当的,如果顺序是有道理的): (从scikit-learn文档扩展此示例) 1.加载数据集 from sklearn.datasets import load_digits digits = load_digits() X, y = digits.data, digits.target 2.分为训练和测试集(例如80/20) from sklearn.cross_validation import train_test_split X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0) 3.选择估算器 from sklearn.svm import SVC estimator = SVC(kernel='linear') 4.选择交叉验证迭代器 from sklearn.cross_validation import ShuffleSplit cv = ShuffleSplit(X_train.shape[0], n_iter=10, test_size=0.2, random_state=0) 5.调整超参数 …


6
2016年确实需要进行预测模型的变量选择吗?
几年前已经在简历上提出了这个问题,鉴于1)更好的计算技术(例如并行计算,HPC等)和2)更新的技术(例如[3]),似乎值得重新提出。 首先,一些背景。让我们假设目标不是假设检验,不是效果估计,而是对未见检验集的预测。因此,没有赋予任何可解释的利益以重量。其次,假设您不能排除任何预测因素在主题考虑方面的相关性,即 它们看起来单独或与其他预测变量组合似乎都合理。第三,您要面对数以百万计的预测变量。第四,假设您可以无限制地访问AWS,因此计算能力不受限制。 变量选择的常见原因是:1)效率;更快地适合较小的模型,便宜地收集较少的预测变量,2)解释;知道“重要”变量可以深入了解基本过程[1]。 众所周知,许多变量选择方法无效,而且常常是完全危险的(例如,逐步回归)[2]。 其次,如果选择的模型不错,那么根本不需要缩减预测变量的列表。该模型应该为您完成。套索就是一个很好的例子,它为所有不相关的变量分配了零系数。 我知道有些人主张使用“大象”模型,即。将所有可能的预测变量投入拟合并运行[2]。 如果目标是预测准确性,是否有任何根本原因进行变量选择? [1] Reunanen,J.(2003)。在变量选择方法之间进行比较时过度拟合。机器学习研究杂志,3,1371-1382。 [2] Harrell,F.(2015)。回归建模策略:应用于线性模型,逻辑和序数回归以及生存分析。施普林格。 [3] Taylor,J.和Tibshirani,RJ(2015)。统计学习和选择性推理。美国国家科学院院刊,112(25),7629-7634。 [4] Zhou,J.,Foster,D.,Stine,R。和Ungar,L。(2005年8月)。使用Alpha投资进行流特征选择。在第十一届ACM SIGKDD国际会议上,进行数据挖掘中的知识发现(第384-393页)。ACM。

3
使用递归神经网络进行时间序列分析的正确方法
递归神经网络与“常规”神经网络不同,因为它们具有“内存”层。由于这一层,在时间序列建模中应该使用递归NN。但是,我不确定我是否正确理解如何使用它们。 假设我有以下时间序列(从左到右):,[0, 1, 2, 3, 4, 5, 6, 7]我的目标是i使用点i-1和i-2作为输入来预测-th个点(每个i>2)。在“常规”非重复ANN中,我将按以下方式处理数据: target| input 2| 1 0 3| 2 1 4| 3 2 5| 4 3 6| 5 4 7| 6 5 然后,我将创建一个具有两个输入和一个输出节点的网络,并使用上面的数据对其进行训练。 如果是递归网络,如何改变这一过程(如果有的话)?

4
是什么使Gaussian内核对PCA如此神奇?
我在读有关内核PCA(1,2,3)用高斯和多项式内核。 高斯核如何很好地分离似乎任何种类的非线性数据?请给出直观的分析,并在可能的情况下进行数学分析。 其他内核所没有的高斯内核(具有理想的)的特性是什么?我想到了神经网络,SVM和RBF网络。σσ\sigma 为什么我们不通过Cauchy PDF规范并期望得到相同的结果?



2
为什么只有三个分区?(培训,验证,测试)
当您尝试将模型适合大型数据集时,通常的建议是将数据分为三个部分:训练,验证和测试数据集。 这是因为模型通常具有三个“级别”的参数:第一个“参数”是模型类(例如SVM,神经网络,随机森林),第二个参数集是“正则化”参数或“超参数”(例如套索罚分系数,核的选择,神经网络结构)和第三组通常被认为是“参数”(例如协变量的系数)。 给定一个模型类和一组超参数,就可以通过选择使训练集上的误差最小的参数来选择参数。给定一个模型类,可以通过最小化验证集上的误差来调整超参数。一个人根据测试集的性能选择模型类别。 但是为什么不增加分区呢?通常,一个人可以将超参数分为两组,并使用“验证1”适合第一个,使用“验证2”适合第二个。或者甚至可以将训练数据/验证数据分割的大小视为要调整的超参数。 在某些应用程序中这已经是普遍的做法吗?关于数据的最佳分区,是否有任何理论上的工作?


8
如何帮助确保测试数据不会泄漏到训练数据中?
假设我们有一个人建立了预测模型,但是不一定有人对适当的统计或机器学习原理很精通。也许我们正在帮助那个人在学习中,或者那个人正在使用某种需要最少知识的软件包。 现在,这个人可能会很好地认识到真正的测试来自样本外数据的准确性(或其他任何度量标准)。但是,我担心的是,这里有很多微妙的问题要担心。在简单的情况下,他们建立模型并根据训练数据对其进行评估,并根据保留的测试数据对其进行评估。不幸的是,有时返回该位置并调整一些建模参数并检查相同“测试”数据的结果有时太容易了。此时,数据不再是真正的样本外数据,过拟合可能会成为问题。 解决此问题的一种可能方法是建议创建许多样本外数据集,以使每个测试数据集在使用后都可以丢弃,而根本无法再使用。但是,这需要大量的数据管理,尤其是必须在分析之前完成拆分(因此,您需要事先知道有多少拆分)。 也许更常规的方法是k倍交叉验证。但是,从某种意义上讲,我认为“训练”和“测试”数据集之间的区别会消失,特别是对于那些仍在学习的人。同样,我也不认为这对所有类型的预测模型都有意义。 有什么方法可以被我忽略,以帮助克服过度安装和测试泄漏的问题,同时仍然对没有经验的用户保持一定的了解?

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.