数据科学

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

2
Python机器学习/数据科学项目结构
我正在寻找有关如何组织Python机器学习项目的信息。对于Python常规项目,有Cookiecutter,对于R ProjectTemplate。 这是我当前的文件夹结构,但是我将Jupyter Notebooks与实际的Python代码混合在一起,而且看起来还不太清楚。 . ├── cache ├── data ├── my_module ├── logs ├── notebooks ├── scripts ├── snippets └── tools 我在scripts文件夹中工作,当前在my_module下的文件中添加所有功能,但这会导致加载数据(相对/绝对路径)时出错以及其他问题。 除了一些kaggle竞赛解决方案和一些笔记本电脑,这些笔记本电脑的所有功能都在该笔记本电脑开始时有所凝结,因此我找不到关于此主题的适当最佳实践或良好示例。
10 python 

2
用于在SQL表上进行自动异常检测的工具?
我有一个基本上是日志的大型SQL表。数据非常复杂,我试图在不了解所有数据的情况下找到某种方法来识别异常。我发现了很多用于异常检测的工具,但其中大多数都需要某种“中间人”,例如Elastic Search,Splunk等。 是否有人知道可以针对可建立基线并自动发出异常警报的SQL表运行的工具? 这听起来有些懒惰,但是当我了解每种事件类型的含义以及每种事件所涉及的其他字段时,我已经花了数十个小时编写个人的报告脚本,而且我不觉得自己能够更进一步地警告实际事件有意义的方式。该表有41列,仅触及5亿行(3年数据)。

2
ggvis与ggplot2 + Shiny; 选择哪种进行交互式可视化?
CrossValidated中还有一个类似的问题,我已经阅读了答案。我的问题有点不同。我不想仅可视化我的数据,并且实际上我想可视化的内容都不容易用这两个软件包可视化。 我的绘图上有两组点(坐标)。我想添加边缘并使它类似于图形。如果我有个点,则根据问题的性质,我需要向图中添加边。X ,ÿX,ÿx,y(n / 2 )2ññn(n / 2 )2(ñ/2)2(n/2)^2 然后,我想在绘图中添加一些交互式功能。例如,通过单击一个点(顶点),未连接到此单击的顶点的所有其他顶点必须消失以具有更清晰和集中的图。 我试图找到一个适合我的项目的网络可视化程序包,但似乎它们所有人都使用有关边或节点连接的数据,并基于某些特定的布局算法提供了一个网络。我的数据不一样。我有节点的坐标,我想在它们之间建立一些边缘。在我的数据中,节点具有自己的固定位置,并且不得四处移动。 最后,我将包缩小到ggvis和ggplot2。ggvis除了具有故意设计来生成交互式图外,它还是新的和新鲜的。但是我发现它ggplot2+Shiny也可以产生交互式图。(这是正确的吗?)此外,我发现ggplot2的功能比ggvis:更多样化,更成熟:例如ggplot2具有缩放功能,而ggvis没有缩放功能。更重要的是,随着ggvis发展和变化,我不想花太多时间在一年左右的技术上过时或出现故障的工作上。我认为如果我基于进行编码,就是这种情况ggvis。 现在,您可以评估一下我的选择(ggplot2+shiny),并就可能做我想做的事情向我提出建议吗? 因为我不知道所提到的任何软件包,所以我已经开始ggplot2从Wickham的书中学习,我喜欢它!但是我害怕花几周的时间才能发现,即使是在借助的协助下,这个惊人的方案也无法完成我想做的事情Shiny。 PS:我想将最终代码放在github上,以便可能的用户下载并运行它。因此,我不需要制作Web应用程序,也不需要任何网站或将交互式地图在线。我只需要有一个可以在Rstudio内部运行的交互式绘图。

1
Hartigan-Wong k-means方法和其他算法的收敛性
我一直试图理解主要stats在R语言包中实现的不同的k均值聚类算法。 我了解劳埃德(Lloyd)算法和麦昆(MacQueen)的在线算法。我对它们的理解如下: 劳埃德算法: 最初选择“ k”个随机观测值作为“ k”簇的质心。然后,以下步骤迭代进行,直到质心收敛。 计算每个观测值与所选质心之间的欧几里得距离。 最接近每个质心的观测值标记在“ k”桶中。 每个存储桶中所有观测值的平均值用作新的质心。 新的质心取代了旧的质心,如果旧的和新的质心尚未收敛,则迭代返回到步骤1。 收敛的条件如下:旧质心和新质心完全相同,质心之间的差异很小(约为10 ^ -3)或达到最大迭代次数(10或100)。 麦昆的算法: 这是一个在线版本,其中第一个“ k”实例被选为质心。 然后,根据哪个质心最接近该实例,将每个实例放置在存储桶中。重新计算各个质心。 重复此步骤,直到将每个实例放置在适当的存储桶中。 此算法只有一次迭代,并且循环针对“ x”个实例进行 Hartigan-Wong算法: 将所有点/实例分配给随机存储桶并计算相应的质心。 从第一个实例开始,找到最近的质心并装配该铲斗。如果存储桶已更改,则重新计算新质心,即新分配的存储区的质心和旧存储区分配的质心,因为这是受更改影响的两个质心 遍历所有点并获得新的质心。 对点2和3进行第二次迭代,这将执行某种清理操作并将杂散点重新分配给正确的存储桶。 因此,该算法执行2次迭代,然后才能看到收敛结果。 现在,我不确定在Hartigan-Wong算法的第4点中我认为的方法是否正确。我的问题是,Hartigan-Wong的以下方法是否是实现k-means的正确方法?此方法只有两次迭代吗?如果不是,收敛的条件是什么(何时停止)? 我了解的另一个可能的实现说明是。 将所有点/实例分配给随机存储桶并计算相应的质心。 从第一个实例开始,找到最近的质心并分配该存储桶。如果存储桶已更改,则重新计算新质心,即新分配的存储区的质心和旧存储区分配的质心,因为这是受更改影响的两个质心。 一旦存储桶中的任何点发生更改,请回到第一实例并再次重复这些步骤。 当所有实例都被迭代且所有点均未更改存储桶时,迭代结束。 这样,每次实例更改存储桶时,都会从数据集的开头一次又一次地进行很多迭代。 任何说明都将有所帮助,如果我对这些方法中的任何一种理解有误,请告诉我。
10 r  clustering  k-means 

3
贝叶斯网络中边缘的方向不相关吗?
今天,在一次演讲中,有人声称贝叶斯网络中边缘的方向并不重要。他们不必代表因果关系。 很明显,您无法在贝叶斯网络中切换任何单个边缘。例如,令且V = { v 1,v 2,v 3 }和E = { (v 1,v 2),(v 1,v 3),(v 2,v 3)}。如果您要切换(vG=(V,E)G=(V,E)G = (V, E)V={v1,v2,v3}V={v1,v2,v3}V = \{v_1, v_2, v_3\}E={(v1,v2),(v1,v3),(v2,v3)}E={(v1,v2),(v1,v3),(v2,v3)}E=\{(v_1, v_2), (v_1, v_3), (v_2, v_3)\}至(v 3,v 1),则 G将不再是非循环的,因此不再是贝叶斯网络。那么,如何估计概率似乎主要是一个实际问题。这种情况似乎很难回答,因此我将跳过它。(v1,v3)(v1,v3)(v_1, v_3)(v3,v1)(v3,v1)(v_3, v_1)GGG 这使我提出以下问题,希望在这里获得解答: 有向无环图(DAG)是否有可能反转所有边并仍然具有DAG? 假设DAG 并给出了数据。现在我们构造逆DAG G inv。对于这两个DAG,我们将数据拟合到相应的贝叶斯网络。现在,我们要使用贝叶斯网络来预测缺少的属性的一组数据。两个DAG会有不同的结果吗?(如果您举了一个例子,请加分)GGGGvGvG_\text{inv} 与2相似,但更简单:假设DAG 并给出了数据。您可以通过反转任意一组边来创建新图G ',只要G '保持非循环即可。在预测方面,贝叶斯网络是否等效?GGGG′G′G'G′G′G' 如果我们有代表因果关系的边,我们会得到一些东西吗?

2
R中的数据科学软件测试
在测试我的python代码时,特别是当它必须与其他模块或其他代码段集成时,我经常使用Nose,Tox或Unittest。但是,现在我发现自己在ML建模和开发中比在python中更多地使用R。我意识到我并没有真正测试我的R代码(更重要的是,我真的不知道该怎么做)。所以我的问题是,有什么好的软件包可以让您像Python中的Nose,Tox或Unittest一样测试R代码。其他参考资料,例如教程,也将不胜感激。 R中的软件包的奖励积分类似于 假设 要么 特色锻造 相关演讲: Trey Causey:数据科学家测试

1
文本分类问题:Word2Vec / NN是最好的方法吗?
我正在设计一个系统,使给定的一段文本能够对其进行分类并确定上下文: 经过用户生成的文本段落(如评论/问题/答案)的培训 训练集中的每个项目都将标有。因此,例如(“类别1”,“文本段落”) 将有数百个类别 建立这样一个系统的最佳方法是什么?我一直在研究几个不同的选项,以下是可能的解决方案的列表。Word2Vec / NN目前是最佳解决方案吗? 递归神经张量网络馈送了平均Word2Vec数据 RNTN和段落向量(https://cs.stanford.edu/~quocle/paragraph_vector.pdf)? 深度信仰网络中使用的TF-IDF TF-IDF和Logistic回归 单词袋和朴素贝叶斯分类

2
问题空间太大时AI如何学会采取行动
我通过实验和榜样学习得最好。我正在学习神经网络,对(我认为)对分类和回归以及对监督和无监督的学习有很好的理解,但是我偶然发现了一些我无法安静解决的问题。 如果我想训练AI玩复杂的游戏;我在想类似RTS的东西(例如帝国时代,帝国地球等)。在这些类型的游戏中,通常存在许多由玩家控制的实体(单位,建筑物),每个实体具有不同的功能。AI的问题似乎是分类(例如,选择该单位和该动作),但是由于单位数量是变量,因此人们如何以这种方式处理分类问题? 我唯一能想到的是多个网络处于不同的阶段(一个用于整体策略,一个用于控制这种类型的单元,一个用于那种类型的建筑物,等等);但这似乎使问题变得复杂。 有没有很好的例子说明机器学习/神经网络学习复杂的游戏(不是专门针对RTS,而是更复杂的Mario)?

1
使用机器学习进行服务器日志分析
我被分配此任务来分析应用程序的服务器日志,其中包含异常日志,数据库日志事件日志等。我是机器学习的新手,我们将Spark与弹性搜索和Sparks MLlib(或PredictionIO)结合使用。结果将是能够基于收集到的异常日志进行预测,从而能够预测哪个用户更有可能导致下一个异常以及哪个功能(以及其他跟踪和改进应用程序优化的功能)。 我已经成功地能够将数据从ElasticSearch吸收到spark中并创建DataFrames并映射所需的数据。我想知道的是我如何实现实现的机器学习方面。我浏览过有关数据预处理,训练数据模型和创建标签然后生成预测的文章和论文。 我的问题是 如何将现有的日志数据转换为数值向量,该数值向量可用于要训练的数据集。 我使用什么算法来训练我的数据集(在过去几天中,我所掌握的知识有限,我正在考虑实施线性回归,请提出最佳实施方案) 只是在寻找有关如何解决此问题的建议。 谢谢。

1
转换自动编码器
我刚刚阅读了Geoff Hinton关于转换自动编码器的论文 Hinton,Krizhevsky和Wang:转换自动编码器。在人工神经网络和机器学习中,2011年。 并且很想玩这样的游戏。但是,看完它后,我无法从论文中获得足够的细节来说明如何实际实现它。 有谁知道输入像素到胶囊之间的映射应该如何工作? 识别单元中到底应该发生什么? 应该如何训练?仅仅是每个连接之间的标准后置支撑件吗? 更好的方法是为此或类似内容链接到一些源代码。

5
LSTM或其他R的RNN软件包
我看到LSTM模型产生的莎士比亚文本产生了令人印象深刻的结果。我想知道是否存在R的LSTM软件包。我用Google搜索它,但只找到了Python和Julia的软件包。(也许存在一些性能问题,这说明了为什么这些程序比R更受青睐)您是否了解R的LSTM(或至少RNN)软件包?如果存在,有没有使用它们的教程?
10 r  neural-network  rnn 

2
合作强化学习
我已经有一个针对单个代理的有效实现,该代理正在处理动态定价问题,目的是使收入最大化。但是,我要解决的问题涉及到几种可以相互替代的不同产品,因此,用独立学习者对所有产品进行动态定价似乎是不正确的,因为一种产品的价格会影响另一种产品的回报。目标将是对它们全部进行动态定价,以使每个单独收入的总和最大化。Q (λ )问(λ)Q(\lambda) 我一直在做一些研究,试图找到一些可以通过这种方式应用强化学习的东西,但是我发现许多多代理实现更多地关注于竞争性游戏,而不是合作性游戏,或者它们假设其他代理的知识不完整(我会完全在这种情况下每个代理的知识)。是否以这种方式对合作学习进行了充分研究/记录的应用?

2
通过遍历pandas数据框中的行来创建新列
我有一个这样的熊猫数据框(X11):实际上我有99列,最高可达dx99 dx1 dx2 dx3 dx4 0 25041 40391 5856 0 1 25041 40391 25081 5856 2 25041 40391 42822 0 3 25061 40391 0 0 4 25041 40391 0 5856 5 40391 25002 5856 3569 我想为单元格值(例如25041、40391、5856等)创建其他列。因此,如果25041出现在任何dxs列中的特定行中,则将有一个值为250或1或0的列。我正在使用此代码,当行数较少时,它可以工作。 mat = X11.as_matrix(columns=None) values, counts = np.unique(mat.astype(str), return_counts=True) for x in values: X11[x] = …


3
哪个更快:大型JSON数据集上的PostgreSQL vs MongoDB?
我有一个大型数据集,其中有9m个JSON对象,每个对象约300个字节。它们是来自链接聚合器的帖子:基本上是链接(URL,标题和作者ID)和评论(文本和作者ID)+元数据。 它们很可能是表中的关系记录,但事实是它们具有一个数组字段,其ID指向子记录。 什么样的实现看起来更可靠? PostgreSQL数据库上的JSON对象(只有一个大表且只有一列,即JSON对象) MongoDB上的JSON对象 将JSON对象分解为列,并在PostgreSQL上使用数组 我想最大程度地提高联接的性能,因此我可以对数据进行按摩和探索,直到找到有趣的分析为止,这时我认为将数据转换为特定于每种分析的形式会更好。

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.