数据科学

数据科学专业人员,机器学习专家以及有兴趣了解该领域的人员的问答


2
向量序列的分类
我的数据集由矢量序列组成。每个向量都有50个实值维。序列中载体的数量为3-5至10-15。换句话说,序列的长度不是固定的。 一些相当数量的序列(不是向量!)用类标签注释。我的任务是学习给定向量序列的分类器,计算整个序列的类标签。 我无法说出数据的确切性质,但是序列的性质不是暂时的。但是,如果不更改标签(),则向量不能与向量互换。换句话说,向量的顺序很重要。向量本身是可比较的,例如,计算点​​积并使用此相似度值是有意义的。X一世X一世x_iXĴXĴx_ji ≠ j一世≠Ĵi \neq j 我的问题是:什么可以帮助分类此类数据的工具/算法? 更新:数据具有这样的属性,即一个或很少的向量会强烈影响类标签。 可能的解决方案:经过一些研究,看起来递归神经网络(RNN)非常自然。总体思路是选择一个上下文大小,连接单词向量,进行最大池化并通过经典NN进行馈送。在句子中每个可能的上下文窗口位置处,构建一个特征向量。例如,使用最大池构建最终特征向量。进行反向传播以调整网络参数。我已经取得了一些积极的成果(GPU是必须的)。ķķk

1
如何从Pandas数据框中对多值分类变量进行二进制编码?
假设我们具有以下数据框,其中特定列具有多个值: categories 0 - ["A", "B"] 1 - ["B", "C", "D"] 2 - ["B", "D"] 我们如何获得这样的桌子? "A" "B" "C" "D" 0 - 1 1 0 0 1 - 0 1 1 1 2 - 0 1 0 1 注意:我不一定需要新的数据框,我想知道如何将此类数据框转换为更适合机器学习的格式。
9 python  pandas 

1
支持向量机的功能选择
我的问题是三方面的 在“内核化”支持向量机的上下文中 是否需要进行可变/特征选择-特别是因为我们将参数C正则化以防止过度拟合,并且将内核引入SVM的主要动机是增加问题的维度,在这种情况下,通过参数缩减来减小维度似乎违反直觉 如果第一个问题的答案为“否”,那么在什么条件下应记住的答案会发生变化? 在python的scikit-learn库中是否尝试过一些好的方法来减少SVM的功能-我尝试了SelectFpr方法,正在寻找有不同方法经验的人。

2
在python中实现互补朴素贝叶斯?
问题 我曾尝试在标记的犯罪数据集上使用朴素贝叶斯,但结果却很差(准确性为7%)。朴素贝叶斯的运行速度比我一直在使用的其他算法要快得多,因此我想尝试找出分数为何如此之低的原因。 研究 阅读后,我发现朴素贝叶斯应与平衡数据集一起使用,因为它偏向于频率较高的类。由于我的数据不平衡,因此我想尝试使用互补朴素贝叶斯,因为它专门用于处理数据偏斜。在描述该过程的论文中,该应用程序用于文本分类,但是我不明白为什么该技术在其他情况下不起作用。您可以在这里找到我所指的论文。简而言之,想法是根据类未出现的情况使用权重。 经过一些研究,我能够找到Java的实现,但是不幸的是,我不了解任何Java,只是我对算法的理解不足以实现自己。 题 在哪里可以找到python的实现?如果不存在,我应该如何自己实施呢?

4
强化学习书籍
一段时间以来,我一直在尝试了解强化学习,但是以某种方式,我无法直观地看到如何编写强化学习程序来解决网格世界问题。您能为我推荐一些教科书,以帮助我建立清晰的强化学习概念吗?



2
是否存在与降维相反的方法?
我是机器学习领域的新手,但是我在信号处理方面做得很出色。请让我知道这个问题是否贴错标签。 我有至少由三个变量定义的二维数据,其高度非线性的建模方式太复杂而无法模拟。 在使用PCA和ICA之类的方法(来自python库Scikit-Learn)中从数据中提取两个主要成分方面,我取得了不同程度的成功,但似乎这些方法(或至少这些方法的实现)受到限制从数据中提取尽可能多的分量,例如,从2D点云中提取2个分量。 在绘制数据时,训练有素的眼睛清楚地看到存在三种不同的线性趋势,这三种色线显示了方向。 使用PCA时,主组件与一条色线对齐,另一条与色线对齐,如预期的那样。使用ICA时,第一个组件与蓝线对齐,第二个组件在红色和绿色组件之间。我正在寻找一种可以重现信号中所有三个成分的工具。 编辑,其他信息:我在这里工作在较大相位平面的一小部分中。在这个很小的子集中,每个输入变量在平面上都会产生线性变化,但是这种变化的方向和幅度是非线性的,并且取决于我正在工作的较大平面上的确切位置。在某些地方,其中两个变量可以退化:它们在同一方向上产生变化。例如,假设模型取决于X,Y和Z。变量X的变化将产生沿蓝线的变化;Y引起沿绿线的变化;Z,沿着红色的。

1
将Vowpal Wabbit用于NER
Vowpal Wabbit(VW)显然通过SEARN支持序列标记功能。问题是我无法在任何地方找到带有说明和一些示例的详细参数列表。我能找到的最好的例子是Zinkov的博客文章,其中有一个非常简短的例子。该主wiki页面几乎没有提到SEARN。 在签出的源代码中,我找到了带有一些NER示例数据的演示文件夹。不幸的是,运行所有测试的脚本没有显示如何在此数据上运行。至少了解一下期望的格式是足够有用的:与标准VW数据格式几乎相同,除了条目之间用空白行分隔(这很重要)。 我目前的理解是运行以下命令: cat train.txt | vw -c --passes 10 --searn 25 --searn_task sequence \ --searn_passes_per_policy 2 -b 30 -f twpos.vw 哪里 --searn 25 -NER标签总数(?) --searn_task sequence -序列标记任务(?) --searn_passes_per_policy 2 -不知道它做什么 其他参数是大众的标准配置,无需其他说明。也许还有更多特定于SEARN的参数?它们的重要性和影响是什么?如何调整它们?有什么经验法则吗? 任何指向示例的指针将不胜感激。

1
是否有无监督的时序数据学习算法?
我的数据中的每个观察值相差0.1秒。我不称其为时间序列,因为它没有日期和时间戳。在聚类算法(我在网上找到)和PCA的示例中,每个案例的样本数据有1个观察值,并且没有计时。但是我的数据每辆车每0.1秒收集数百个观测值,并且有很多辆车。 注意:我也已经在法定人数上提出了这个问题。

3
Amazon ec2上的R随机林错误:无法分配大小为5.4 Gb的向量
我正在R中训练随机森林模型,并randomForest()使用1000个树和数据帧以及大约20个预测变量和600K行。在我的笔记本电脑上,一切正常,但是当我转到Amazon ec2时,要运行相同的内容,则会收到错误消息: Error: cannot allocate vector of size 5.4 Gb Execution halted 我正在使用c3.4xlarge实例类型,因此非常强大。有谁知道为此解决方案以使其在此实例上运行?我很想知道仅在ec2实例上而不在笔记本电脑上导致此问题的内存细微差别(OS X 10.9.5处理器2.7 GHz Intel Core i7;内存16 GB 1600 MHz DDR3) 谢谢。

2
使用从潜在Dirichlet分配派生的主题对文档进行聚类
我想将Latent Dirichlet Allocation用于项目,并且将gensim库与Python一起使用。找到主题之后,我想使用诸如k-means之类的算法对文档进行聚类(理想情况下,我想对重叠的聚类使用一个好的聚类,因此欢迎提出任何建议)。我设法得到了主题,但它们的形式为: 0.041 *部长+ 0.041 *按键+ 0.041 *瞬间+ 0.041 *有争议的+ 0.041 *总理 为了应用聚类算法并在错误的情况下纠正我,我相信我应该找到一种使用tfidf或word2vec将每个单词表示为数字的方法。 您是否对如何从列表中“剥离”文本信息有什么想法,然后再放回它们以进行适当的乘法? 例如,如果我看到“部长”一词的tfidf权重为0.042,以此类推,那么对于同一主题内的任何其他单词,我应该这样计算: 0.041 * 0.42 + ... + 0.041 * tfidf(Prime)并获得稍后将用于聚类结果的结果。 感谢您的时间。

7
转行到大数据分析
我是35岁的IT专业人员,纯技术。我擅长编程,学习新技术,理解它们并实施。我在学校不喜欢数学,所以我在数学上的成绩不高。我对从事大数据分析事业非常感兴趣。尽管我不喜欢它,但我对分析而不是大数据技术(Hadoop等)更感兴趣。但是,当我环顾互联网时,我发现,分析能力强的人(数据科学家)主要是数学专业的毕业生,他们完成了PHds并听起来像聪明的生物,他们远远超出了我。有时我会害怕思考我的决定是否正确,因为要靠自己学习预先的统计数据非常困难,并且需要付出大量的努力和时间。 我想知道我的决定是否正确,还是应该把这份工作留给那些一生都在著名的大学学习并获得学位和博士学位的知识分子。
9 career 

2
批处理更新和单个更新之间在MLP规范化方面有何不同?
我刚刚了解了将正则化作为控制过度拟合的一种方法,并且我想将其结合到我放在一起的反向传播和多层感知器(MLP)的简单实现中。 目前,为了避免过度拟合,我对验证集进行交叉验证,并保持到目前为止得分最高的网络。这可以正常工作,但是添加正则化将使我受益,因为正确选择正则化算法和参数将使我的网络更系统地收敛于非过拟合模型。 对于更新项(来自Coursera ML课程),我具有的公式表示为批量更新,例如,对于每个权重,在从误差传播中总结了整个训练集的所有适用增量之后lambda * current_weight,还要添加的调整项批处理结束时减去delta,其中lambda是正则化参数。 我的反向传播实施使用每个项目的权重更新。我担心我不能仅仅复制批处理方法,尽管从直觉上看它看起来不错。每个项目的较小正则项是否也有效? 例如lambda * current_weight / N,其中N是训练集的大小-乍一看,这看起来很合理。我在这个问题上找不到任何东西,我想知道那是因为正则化不能对每个项目进行更新,甚至不能使用其他名称或更改的公式。

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.