Questions tagged «supervised-learning»

监督学习是从标记的训练数据中推断功能的机器学习任务。训练数据包含一组训练示例。在监督学习中,每个示例都是一对,由输入对象(通常是矢量)和期望的输出值(也称为监督信号)组成。监督学习算法会分析训练数据并产生一个推断函数,该函数可用于映射新示例。

4
监督机器学习中的班级失衡
通常,这是一个问题,并不特定于任何方法或数据集。我们如何处理有监督机器学习中的类不平衡问题,其中数据集中0的数量约为90%,1的数量约为10%。我们如何最佳地训练分类器。 我遵循的方法之一是采样以使数据集平衡,然后训练分类器并对多个样本重复此操作。 我觉得这是随机的,有没有解决这些问题的框架。

1
GradientDescentOptimizer和AdamOptimizer(TensorFlow)之间的区别?
我已经在TensorFlow中编写了一个简单的MLP,它正在对XOR-Gate进行建模。 因此对于: input_data = [[0., 0.], [0., 1.], [1., 0.], [1., 1.]] 它应该产生以下内容: output_data = [[0.], [1.], [1.], [0.]] 该网络具有一个输入层,一个隐藏层和一个输出层,每个层具有2、5和1个神经元。 目前,我有以下交叉熵: cross_entropy = -(n_output * tf.log(output) + (1 - n_output) * tf.log(1 - output)) 我也尝试过这种更简单的选择: cross_entropy = tf.square(n_output - output) 以及其他一些尝试。 但是,无论我的设置是什么,的错误GradientDescentOptimizer减少的速度都比的慢得多AdamOptimizer。 实际上tf.train.AdamOptimizer(0.01),经过400-800个学习步骤(取决于学习率,在哪里0.01获得最好的结果)后产生了非常好的结果,而tf.train.GradientDescentOptimizer无论使用哪种交叉熵计算或学习率,始终需要超过2000个学习步骤。 为什么会这样呢?看来AdamOptimizer永远是更好的选择?!

1
softmax_cross_entropy_with_logits与softmax_cross_entropy_with_logits_v2有何不同?
具体来说,我想我对此语句感到疑惑: TensorFlow的未来主要版本默认将允许梯度流入backprop上的标签输入中。 使用时会显示出来tf.nn.softmax_cross_entropy_with_logits。在同一封信中,它敦促我看看tf.nn.softmax_cross_entropy_with_logits_v2。我浏览了文档,但只说明了tf.nn.softmax_cross_entropy_with_logits_v2: 反向传播将同时出现在logit和标签中。要禁止反向传播到标签中,请在将标签张量馈入此函数之前将其张量传递给stop_gradients。 而不是tf.nn.softmax_cross_entropy_with_logits: 反向传播只会在logit中发生。 对于该主题来说是一个新手(我正在尝试通过一些基本教程进行学习),这些陈述并不十分清楚。我对反向传播有一个较浅的了解,但是前面的陈述实际上是什么意思?反向传播和标签如何连接?与tf.nn.softmax_cross_entropy_with_logits_v2原始作品相比,这将如何改变我的工作方式?

3
将单词嵌入应用于整个文档,以获得特征向量
如何使用词嵌入将文档映射到适合于监督学习的特征向量? 甲字嵌入每个单词映射到一个向量,其中是一些不太大数目(例如,500)。流行的词嵌入包括word2vec和Glove。v ∈ [R d dwwwv∈Rdv∈Rdv \in \mathbb{R}^dddd 我想应用监督学习对文档进行分类。我目前正在使用单词袋表示法将每个文档映射到特征向量,然后应用现成的分类器。我想用一个基于现有的预训练词嵌入的词替换词袋特征向量,以利用词嵌入中包含的语义知识。有标准的方法吗? 我可以想象出一些可能性,但是我不知道是否有最有意义的东西。我考虑过的候选方法: 我可以计算文档中每个单词的向量,然后将它们平均。但是,这似乎可能会丢失很多信息。例如,使用词袋表示法,如果有几个词与分类任务高度相关,而大多数词都不相关,则分类器可以轻松地学习到;如果我将文档中所有单词的向量平均,分类器就没有机会了。 将所有单词的向量连接起来是行不通的,因为这不会导致固定大小的特征向量。同样,这似乎是一个坏主意,因为它将对单词的特定位置过于敏感。 我可以使用单词嵌入将所有单词的词汇聚类为一组固定的聚类,例如1000个聚类,其中我在向量上使用余弦相似度作为单词相似度的度量。然后,我可以有一个词包,而不是词包:我提供给分类器的特征向量可以是1000个向量,其中第个分量计算文档中的词数是集群一部分。我iiiiii 给定单词,这些单词嵌入使我能够计算出前20个最相似的单词及其相似度得分的集合。我可以使用它来适应类似词袋的特征向量。当我看到这个词,除了增加相应字元素由,我还可以增加对应的字元素通过,增加对应的字元素通过,等等。w 1,… ,w 20 s 1,… ,s 20 w w w 1 w 1 s 1 w 2 s 2wwww1,…,w20w1,…,w20w_1,\dots,w_{20}s1,…,s20s1,…,s20s_1,\dots,s_{20}wwwwww111w1w1w_1s1s1s_1w2w2w_2s2s2s_2 是否有任何特定的方法可能对文档分类有效? 我不是在寻找para2vec或doc2vec;这些需要在大型数据语料库上进行培训,而我没有大型数据语料库。相反,我想使用现有的单词嵌入。

3
是否存在(深度)神经网络明显无法胜过其他任何方法的监督学习问题?
我已经看到人们对SVM和内核进行了很多努力,并且它们作为机器学习的入门者看起来非常有趣。但是,如果我们期望几乎总能找到(深度)神经网络方面的出色解决方案,那么在这个时代尝试其他方法的意义是什么? 这是我对此主题的限制。 我们只考虑监督学习;回归和分类。 结果的可读性不计算在内;只有在监督学习问题上的准确性才重要。 不考虑计算成本。 我并不是说其他​​任何方法都没有用。

2
监督学习,无监督学习和强化学习:工作流基础
监督学习 1)人们根据输入和输出数据构建分类器 2)使用训练数据集对分类器进行训练 3)该分类器已通过测试数据集进行了测试 4)如果输出令人满意,则进行部署 在以下情况下使用:“我知道如何对这些数据进行分类,我只需要您(分类器)对其进行分类即可。” 方法要点:分类标签或产生实数 无监督学习 1)人们根据输入数据建立算法 2)使用一个测试数据集测试该算法(该算法在其中创建分类器) 3)如果分类器令人满意,则进行部署 在以下情况下使用:“我不知道如何对这些数据进行分类,您(算法)可以为我创建分类器吗?” 方法要点:分类标签或预测(PDF) 强化学习 1)人们根据输入数据建立算法 2)该算法呈现取决于输入数据的状态,在该状态下,用户通过算法采取的行动来奖励或惩罚该算法,这种状态会随着时间的流逝而持续 3)该算法从奖励/惩罚中学习并自我更新,这继续 4)始终处于生产状态,它需要学习真实数据以能够呈现状态下的动作 在以下情况下使用:“我不知道如何对这些数据进行分类,您可以对这些数据进行分类,如果正确的话我会给您奖励,如果不正确的话我会给您惩罚。” 这是那种这些做法的流量,我听到了很多关于他们做什么,但实际和示范性的信息是令人吃惊的小!

5
在统计学和机器学习中区分两组:假设检验vs.分类vs.聚类
假设我有两个数据组,分别标记为A和B(每个数据组包含200个样本和1个特征),我想知道它们是否不同。我可以: a)进行统计检验(例如t检验)以查看它们是否在统计上不同。 b)使用监督机器学习(例如,支持向量分类器或随机森林分类器)。我可以对部分数据进行训练,然后对其余部分进行验证。如果之后机器学习算法正确地对其余部分进行分类,那么我可以确定样本是可区分的。 c)使用无监督算法(例如K-Means),然后将所有数据分为两个样本。然后,我可以检查找到的这两个样本是否与我的标签A和B一致。 我的问题是: 这三种不同方式如何重叠/排斥? b)和c)对任何科学论证有用吗? 如何从方法b)和c)中获得样品A和B之间差异的“重要性”? 如果数据具有多个功能而不是1个功能,将会发生什么变化? 如果它们包含不同数量的样本(例如100对300)会怎样?


3
每日时间序列分析
我正在尝试进行时间序列分析,并且是该领域的新手。我每天都在统计2006-2009年的某个事件,因此我想为其拟合时间序列模型。这是我取得的进步: timeSeriesObj = ts(x,start=c(2006,1,1),frequency=365.25) plot.ts(timeSeriesObj) 我得到的结果图是: 为了验证是否存在季节性和趋势数据,或者不是,我按照此提到的步骤后: ets(x) fit <- tbats(x) seasonal <- !is.null(fit$seasonal) seasonal 在Rob J Hyndman的博客中: library(fma) fit1 <- ets(x) fit2 <- ets(x,model="ANN") deviance <- 2*c(logLik(fit1) - logLik(fit2)) df <- attributes(logLik(fit1))$df - attributes(logLik(fit2))$df #P value 1-pchisq(deviance,df) 两种情况都表明没有季节性。 当我绘制该系列的ACF和PACF时,得到的是: 我的问题是: 这是处理每日时间序列数据的方式吗?该页面建议我应该同时查看每周和年度模式,但是这种方法对我来说并不明确。 一旦有了ACF和PACF图,我将不知道如何进行。 我可以简单地使用auto.arima函数吗? 适合<-arima(myts,order = c(p,d,q) *****更新了Auto.Arima结果****** 当我根据罗布海德门的评论的数据的频率改变为7 这里,auto.arima选择一个季节性ARIMA模型和输出: …

3
如何仅训练阳性病例来预测结果?
为了简单起见,假设我正在研究垃圾邮件/非垃圾邮件的经典示例。 我有一组20000封电子邮件。在这些邮件中,我知道2000是垃圾邮件,但没有任何非垃圾邮件的例子。我想预测其余18000个垃圾邮件是否为垃圾邮件。理想情况下,我要寻找的结果是电子邮件为垃圾邮件的概率(或p值)。 在这种情况下,我可以使用哪种算法做出明智的预测? 目前,我正在考虑一种基于距离的方法,该方法可以告诉我电子邮件与已知垃圾邮件的相似程度。我有什么选择? 更笼统地说,我可以使用监督学习方法吗?或者我是否必须在训练中包含负面案例才能做到这一点?我是否仅限于无监督学习方法?那么半监督方法呢?



4
什么是人工神经网络?
深入研究神经网络文献时,我们发现了具有神经形态拓扑结构的其他方法(“神经网络”架构)。而且我并不是在说通用逼近定理。示例如下。 然后,让我感到奇怪的是:人工神经网络的定义是什么?它的拓扑似乎涵盖了所有内容。 例子: 我们做出的第一个标识是在PCA和线性自动编码器之间,编码器和解码器具有约束权重,而瓶颈层则具有阈值激活。 此外,在线性模型(特殊情况下为逻辑回归)和没有隐藏层且只有一个输出层的神经网络之间进行了通用标识。此标识打开了几扇门。 傅里叶和泰勒级数?人工神经网络。SVM?人工神经网络。高斯过程?ANN(具有无限隐藏单元的单个隐藏层)。 因此,同样容易地,我们可以将具有这些算法的专门损失函数的任意正则化版本合并到神经网络框架中。 但是,我们挖掘的越多,相似之处就越多。我只是偶然发现了深度神经决策树,该树通过决策树来识别特定的ANN架构,并允许通过ANN方法(例如Gradient Descent反向传播)来学习这些决策树。由此,我们可以仅从神经网络拓扑结构构建随机森林和梯度增强决策树。 如果一切都可以表示为人工神经网络,那么什么定义了人工神经网络呢?

4
机器学习算法的预测间隔
我想知道以下所述的过程是否有效/可以接受,并且有任何合理的理由。 想法:监督学习算法不假设数据的基础结构/分布。最终,他们输出点估计。我希望以某种方式量化估计的不确定性。现在,ML模型的建立过程本质上是随机的(例如,在用于超参数调整的交叉验证的采样中以及在随机GBM中的子采样中),因此建模管道将为每个具有不同种子的相同预测变量提供不同的输出。我的想法(天真)是一遍又一遍地运行此过程以得出预测的分布,我希望可以对预测的不确定性做出陈述。 如果重要的话,我使用的数据集通常很小(约200行)。 这有意义吗? 需要说明的是,我实际上并没有按照传统意义引导数据(即,我没有对数据进行重新采样)。每次迭代都使用相同的数据集,我只是利用xval和随机GBM中的随机性。


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.