Questions tagged «machine-learning»

建立“随经验自动改进的计算机系统”的方法和原理。


6
交叉熵损失的解释
假设我建立了一个用于分类的NN。最后一层是具有softmax激活的密集层。我有五个不同的班级来分类。假设有一个训练示例,true label则[1 0 0 0 0]预测为[0.1 0.5 0.1 0.1 0.2]。我将如何计算此示例的交叉熵损失?

1
`Keras`的`Dense`和`TimeDistributedDense`之间的区别
我仍然感到困惑之间的区别Dense和TimeDistributedDense的Keras,即使已经有一些类似的问题问在这里和这里。人们在讨论很多,但没有共同商定的结论。 即使在这里,@fchollet指出: TimeDistributedDenseDense对3D张量的每个时间步应用相同(完全连接)的操作。 我仍然需要详细说明它们之间的确切区别。


5
深度学习与梯度提升:什么时候使用?
我有一个大数据集的大数据问题(例如,有5000万行和200列)。该数据集由大约100个数字列和100个分类列以及代表二进制类问题的响应列组成。每个分类列的基数小于50。 我想先验地知道我应该选择深度学习方法还是基于集成树的方法(例如,梯度增强,adaboost或随机森林)。是否有一些探索性的数据分析或其他一些技术可以帮助我确定一种方法而不是另一种方法?

5
强化学习中的Q函数和V函数是什么?
在我看来,函数可以轻松地由函数表示,因此函数对我来说似乎是多余的。但是,我是强化学习的新手,所以我想我做错了。VVVQQQVVV 定义 Q学习和V学习是在马尔可夫决策过程的背景下进行的。甲MDP是一个5元组与(S,A,P,R,γ)(S,A,P,R,γ)(S, A, P, R, \gamma) SSS是一组状态(通常是有限的) AAA是一组动作(通常是有限的) P(s,s′,a)=P(st+1=s′|st=s,at=a)P(s,s′,a)=P(st+1=s′|st=s,at=a)P(s, s', a) = P(s_{t+1} = s' | s_t = s, a_t = a)是通过动作从状态到状态的概率。ssss′s′s'aaa R(s,s′,a)∈RR(s,s′,a)∈RR(s, s', a) \in \mathbb{R}中的是通过动作从状态到状态后的立即奖励。(在我看来,通常只有重要)。ssss′s′s'aaas′s′s' γ∈[0,1]γ∈[0,1]\gamma \in [0, 1]被称为折扣因子,它确定是关注即时奖励(),总奖励()还是某种权衡。γ=0γ=0\gamma = 0γ=1γ=1\gamma = 1 一个政策ππ\pi,根据强化学习:简介由萨顿和巴托是一个功能(这可能是概率)。π:S→Aπ:S→A\pi: S \rightarrow A 根据Mario Martins的幻灯片,函数为 ,并且Q函数为 VVVVπ(s)=Eπ{Rt|st=s}=Eπ{∑k=0∞γkrt+k+1|st=s}Vπ(s)=Eπ{Rt|st=s}=Eπ{∑k=0∞γkrt+k+1|st=s}V^\pi(s) = E_\pi \{R_t | s_t = …

3
在softmax分类器中,为什么要使用exp函数进行归一化?
为什么使用softmax而不是标准归一化?在此问题的最高答案的评论区域中,@ Kilian Batzner提出了2个问题,这也使我非常困惑。除数值上的好处外,似乎没有人给出任何解释。 我有使用交叉熵损失的原因,但这与softmax有什么关系?您说过“ softmax函数可以看作是试图最小化预测和真实之间的交叉熵”。假设我将使用标准/线性归一化,但仍将使用交叉熵损失。然后,我还将尝试最小化交叉熵。那么,除了数值收益外,softmax如何与交叉熵联系起来? 至于概率观点:查看对数概率的动机是什么?推理似乎有点像“我们在softmax中使用e ^ x,因为我们将x解释为对数概率”。出于同样的理由,我们可以在softmax中使用e ^ e ^ e ^ x,因为我们将x解释为log-log-log-概率(当然,这里夸大了)。我得到了softmax的数值好处,但是使用它的理论动机是什么?

7
为什么应重新整理数据以进行机器学习任务
在机器学习任务中,通常将数据混洗并规范化。标准化的目的很明确(具有相同范围的特征值)。但是,经过很多努力之后,我没有发现任何改组数据的有价值的原因。 我在这里阅读了这篇文章,讨论了何时需要重新整理数据,但是不清楚为什么我们应该重新整理数据。此外,我经常在诸如Adam或SGD之类的算法中看到我们需要批量梯度下降(应将数据分离为小批量,并且必须指定批量大小)。根据这篇文章,至关重要的是将每个时期的数据混排以使每个批次具有不同的数据。因此,也许数据被改组并且更重要地被更改。 我们为什么要做这个?

1
为什么xgboost比sklearn GradientBoostingClassifier快得多?
我正在尝试通过50个具有100个数字特征的示例训练一个梯度提升模型。XGBClassifier我的机器43秒内把手500棵树,而GradientBoostingClassifier只处理10棵(!)以1分2秒:(我没有理会试图种植500棵树,因为它会需要几个小时。我使用的是相同的learning_rate,并max_depth设置, 见下文。 是什么使XGBoost如此之快?它是否使用了sklearn家伙不知道的用于梯度增强的新颖实现方式?还是“偷工减料”并种植浅树? ps我知道这个讨论:https : //www.kaggle.com/c/higgs-boson/forums/t/10335/xgboost-post-competition-survey,但是那里找不到答案... XGBClassifier(base_score=0.5, colsample_bylevel=1, colsample_bytree=1, gamma=0, learning_rate=0.05, max_delta_step=0, max_depth=10, min_child_weight=1, missing=None, n_estimators=500, nthread=-1, objective='binary:logistic', reg_alpha=0, reg_lambda=1, scale_pos_weight=1, seed=0, silent=True, subsample=1) GradientBoostingClassifier(init=None, learning_rate=0.05, loss='deviance', max_depth=10, max_features=None, max_leaf_nodes=None, min_samples_leaf=1, min_samples_split=2, min_weight_fraction_leaf=0.0, n_estimators=10, presort='auto', random_state=None, subsample=1.0, verbose=0, warm_start=False)
29 scikit-learn  xgboost  gbm  data-mining  classification  data-cleaning  machine-learning  reinforcement-learning  data-mining  bigdata  dataset  nlp  language-model  stanford-nlp  machine-learning  neural-network  deep-learning  randomized-algorithms  machine-learning  beginner  career  xgboost  loss-function  neural-network  software-recommendation  naive-bayes-classifier  classification  scikit-learn  feature-selection  r  random-forest  cross-validation  data-mining  python  scikit-learn  random-forest  churn  python  clustering  k-means  machine-learning  nlp  sentiment-analysis  machine-learning  programming  python  scikit-learn  nltk  gensim  visualization  data  csv  neural-network  deep-learning  descriptive-statistics  machine-learning  supervised-learning  text-mining  orange  data  parameter-estimation  python  pandas  scraping  r  clustering  k-means  unsupervised-learning 

4
培训高度不平衡的数据集的快速指南
我在训练集中有大约1000个正样本和10000个负样本的分类问题。因此,该数据集非常不平衡。普通随机森林只是试图将所有测试样本标记为多数类。 这里给出了有关子采样和加权随机森林的一些很好的答案:用高度偏向的数据集训练树群有什么意义? 除RF之外,还有哪些分类方法可以最好地解决问题?

2
什么是地面真理
在机器学习的背景下,我看到了“ 地面真理 ”一词经常使用。我进行了很多搜索,并在Wikipedia中找到以下定义: 在机器学习中,术语“地面真理”是指有监督学习技术的训练集分类的准确性。在统计模型中使用它来证明或否定研究假设。术语“地面实况调查”是指为此测试收集适当的客观(可证明)数据的过程。与黄金标准比较。 贝叶斯垃圾邮件过滤是监督学习的常见示例。在该系统中,人工学习了垃圾邮件和非垃圾邮件之间的区别。这取决于用于训练算法的消息的地面真相-地面真相中的错误将与垃圾邮件/非垃圾邮件裁决中的错误相关。 关键是我真的无法理解它的意思。是,标签用于每个数据对象或目标函数赋予一个标签给每个数据对象,或者也许别的东西吗?


4
我应该使用什么算法来基于简历数据进行工作分类?
请注意,我正在R中做所有事情。 问题如下: 基本上,我有一份简历列表。有些候选人以前有工作经验,有些则没有。这里的目标是:基于简历的文字,我想将其分类为不同的工作领域。在候选人没有任何经验/是学生的情况下,我尤其如此,我想做出一个预测,以分类该候选人毕业后最有可能属于哪个工作领域。 问题1:我知道机器学习算法。但是,我以前从未做过NLP。我在互联网上遇到了潜在的Dirichlet分配。但是,我不确定这是否是解决我的问题的最佳方法。 我的初衷是: 使这成为有监督的学习问题。假设我们已经有大量带标签的数据,这意味着我们已经正确标记了职位列表中的求职者。我们使用ML算法(即最近的邻居...)对模型进行训练,并输入那些没有工作经验的候选人/没有学生的未标记数据,并尝试预测他们将属于哪个工作领域。 更新 问题2:通过提取简历中的所有内容并在文本文件中打印这些数据来创建文本文件,这样每个简历都与一个包含非结构化字符串的文本文件相关联,是一个好主意吗?将文本挖掘技术应用于文本文件,并使数据结构化,甚至创建文本文件中使用的术语频率矩阵?例如,文本文件可能看起来像这样: I deployed ML algorithm in this project and... Skills: Java, Python, c++ ... 这就是我所说的“非结构化”的意思,即将所有内容折叠成一个单行字符串。 这种方法是错误的吗?如果您认为我的方法有误,请纠正我。 问题3:棘手的部分是:如何识别和提取关键字?tm在R中使用包?tm 软件包基于什么算法?我应该使用NLP算法吗?如果是,我应该看什么算法?请为我指出一些很好的资源以供参考。 任何想法都很棒。

4
如果有新的观察结果,是否应该对模型进行重新训练?
因此,我尚未找到有关此主题的任何文献,但似乎值得深思: 如果有新的观察结果,那么模型训练和优化的最佳实践是什么? 在预测开始下降之前,有什么方法可以确定重新训练模型的周期/频率吗? 如果针对聚合数据重新优化参数,是否过度拟合? 注意,学习不一定是在线的。在最近的预测中观察到重大差异后,不妨升级现有模型。


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.