数据科学

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

5
我应该选择“平衡”数据集还是“代表性”数据集?
我的“机器学习”任务是将良性Internet流量与恶意流量分开。在现实世界中,大多数(例如90%或更多)的Internet流量都是良性的。因此,我觉得我也应该选择类似的数据设置来训练我的模型。但是我碰到了一份或两篇研究论文(在我的工作领域),他们使用“类平衡”数据方法来训练模型,这意味着良性和恶意流量实例的数量相等。 通常,如果我正在构建机器学习模型,我应该选择一个代表现实世界问题的数据集,还是一个更适合于构建模型的平衡数据集(因为某些分类器在类不平衡方面表现不佳,或者由于其他原因(我不知道)? 有人可以揭示更多的光线优点和缺点都的选择,以及如何决定去哪个选哪个?

9
如何处理大量(二进制)数据的版本控制
我是地球物理学的博士学位学生,并且处理大量的图像数据(数百GB,成千上万个文件)。我非常了解svn并git开始重视项目历史,并具有轻松协作并防止磁盘损坏的能力。我发现git对于进行一致的备份也非常有帮助,但是我知道git无法有效处理大量二进制数据。 在我的硕士研究中,我研究了大小相似(也包括图像)的数据集,并且在跟踪不同服务器/设备上的不同版本时遇到很多问题。通过网络分配100GB的确不是一件好事,这花了我很多时间和精力。 我知道科学界的其他人似乎也有类似的问题,但我找不到很好的解决方案。 我想使用我研究所的存储设备,所以我需要可以使用“哑”服务器的东西。我还希望在便携式硬盘上有一个额外的备份,因为我想避免在任何可能的情况下通过网络传输数百GB。因此,我需要一种可以处理多个远程位置的工具。 最后,我确实需要其他研究人员可以使用的东西,因此它不需要超级简单,但应该可以在几个小时内学习。 我已经评估了许多不同的解决方案,但似乎都不适合: svn效率低下,需要一台智能服务器 HG bigfile / largefile只能使用一个遥控器 git bigfile / media也只能使用一个远程,但是效率也不高 阁楼似乎没有对数或差异功能 bup看起来确实不错,但是需要“智能”服务器才能工作 我已经尝试过了git-annex,它可以完成我需要做的所有事情(还有更多),但是使用起来非常困难,并且没有很好的文档记录。我已经使用了几天,无法理解,所以我怀疑其他任何同事都会对此感兴趣。 研究人员如何处理大型数据集,其他研究小组正在使用什么? 需要明确的是,我主要对其他研究人员如何处理这种情况感兴趣,而不仅仅是这个特定的数据集。在我看来,几乎每个人都应该有这个问题,但我不知道有谁解决了这个问题。我应该只保留原始数据的备份,而忘记所有这些版本控制内容吗?那是其他人在做什么吗?

9
R编程的IDE替代方案(RStudio,IntelliJ IDEA,Eclipse,Visual Studio)
我使用RStudio进行R编程。我记得其他技术堆栈(例如Visual Studio或Eclipse)中的固态IDE。 我有两个问题: 使用了RStudio以外的其他IDE(请考虑提供一些简短的描述)。 与RStudio相比,它们是否具有明显的优势? 除了编码本身之外,我主要指的是调试/构建/部署功能(因此,文本编辑器可能不是解决方案)。
46 r  tools  rstudio  programming 


9
数据科学家的工作量是多少?
我目前在一家零售公司担任数据科学家(我作为DS的第一份工作,所以这个问题可能是我缺乏经验的结果)。他们积压了大量真正重要的数据科学项目,如果实施这些项目将产生巨大的积极影响。但。 公司内不存在数据管道,标准程序是使它们在我需要任何信息时就交给我数以千计的TXT文件。可以将这些文件视为以神秘符号和结构存储的交易的表格日志。单个数据源中没有包含全部信息,并且出于“安全原因”,他们不能授予我访问其ERP数据库的权限。 最简单项目的初始数据分析需要残酷而费力的数据争执。我花了80%以上的时间来尝试解析这些文件并交叉数据源,以建立可行的数据集。这不是简单地处理丢失的数据或对其进行预处理的问题,它与构建可以首先处理的数据(可通过dba或数据工程解决,而不是数据科学?)可以处理的工作有关。 1)感觉像大多数工作完全与数据科学无关。这个准确吗? 2)我知道这不是一家拥有高级数据工程部门的数据驱动公司,但我认为,为了构建可持续发展的数据科学项目,需要最低级别的数据可访问性。我错了吗? 3)对于有严重数据科学需求的公司,这种类型的设置是否常见?

3
LSTM模型中的参数数量
一个堆叠的LSTM有几个参数?参数的数量对所需的训练示例的数量施加了下限,并且还影响训练时间。因此,了解参数数量对于使用LSTM训练模型很有用。

6
如何转换机密数据集中的名称以使其匿名,但保留名称的某些特征?
动机 我使用的数据集包含个人身份信息(PII),有时需要与第三方共享数据集的一部分,以免暴露PII并使我的雇主承担责任。我们通常的做法是完全保留数据,或者在某些情况下降低其分辨率。例如,将确切的街道地址替换为相应的县或人口普查区。 这意味着即使第三方拥有更适合该任务的资源和专业知识,某些类型的分析和处理也必须在内部完成。由于未公开源数据,因此我们进行此分析和处理的方式缺乏透明度。结果,任何第三方执行QA / QC,调整参数或进行细化的能力可能都非常有限。 匿名机密数据 一项任务涉及在用户提交的数据中通过姓名识别个人,同时考虑到错误和不一致之处。私人可能在一个地方被记录为“戴夫”,而在另一地方被记录为“大卫”,商业实体可以具有许多不同的缩写,并且总是有一些错别字。我已经基于许多标准开发了脚本,这些标准确定两条具有不同名称的记录何时代表同一个人,并为其分配一个通用ID。 此时,我们可以通过保留名称并将其替换为该个人ID号来使数据集匿名。但这意味着接收者几乎没有关于例如比赛强度的信息。我们希望能够传递尽可能多的信息而不会泄露身份。 什么不起作用 例如,在保留编辑距离的同时能够加密字符串将是很棒的。这样,第三方可以执行自己的一些QA / QC,或选择自己进行进一步的处理,而无需访问(或可能进行反向工程)PII。也许我们在内部将编辑距离<= 2的字符串匹配起来,接收者想看看收紧该公差以编辑距离<= 1的含义。 但是我所熟悉的唯一做到这一点的方法是ROT13(更一般地说,是任何移位密码),它几乎不算作加密。就像颠倒地写下名字,然后说:“保证您不会把纸翻过来吗?” 另一个不好的解决办法是简化所有内容。“艾伦·罗伯茨”变成“ ER”,依此类推。这是一个较差的解决方案,因为在某些情况下,姓名缩写与公共数据结合会透露一个人的身份,而在另一些情况下,则太含糊了;“本杰明·奥赛罗·埃姆斯”和“美国银行”将使用相同的首字母缩写,但名称不同。因此,它无法满足我们的任何需求。 另一个不错的选择是引入其他字段来跟踪名称的某些属性,例如: +-----+----+-------------------+-----------+--------+ | Row | ID | Name | WordChars | Origin | +-----+----+-------------------+-----------+--------+ | 1 | 17 | "AMELIA BEDELIA" | (6, 7) | Eng | +-----+----+-------------------+-----------+--------+ | 2 | 18 | …

1
LeakyReLU和PReLU有什么区别?
我认为PReLU和Leaky ReLU都是 f(x)=max(x,αx) with α∈(0,1)f(x)=max(x,αx) with α∈(0,1)f(x) = \max(x, \alpha x) \qquad \text{ with } \alpha \in (0, 1) 但是Keras在docs中具有这两个功能。 泄漏的ReLU LeakyReLU的来源: return K.relu(inputs, alpha=self.alpha) 因此(请参阅relu代码) f1(x)=max(0,x)−αmax(0,−x)f1(x)=max(0,x)−αmax(0,−x)f_1(x) = \max(0, x) - \alpha \max(0, -x) 预备 PReLU的来源: def call(self, inputs, mask=None): pos = K.relu(inputs) if K.backend() == 'theano': neg = (K.pattern_broadcast(self.alpha, …

4
向时间序列模型LSTM添加功能
一直在阅读有关LSTM及其在时间序列上的用法的文章,虽然有趣但同时又很困难。我一直难以理解的一件事是向时间序列功能列表中添加其他功能的方法。假设您的数据集是这样的: t-3,t-2,t-1,输出 现在说您知道您有一个确实会影响输出的功能,但不一定是时间序列功能,比如说外面的天气。您可以添加一下这些内容吗,LSTM就能区分出时间序列方面和什么方面?

2
如何为神经网络准备/增强图像?
我想使用神经网络进行图像分类。我将从训练有素的CaffeNet开始,然后为我的应用程序对其进行训练。 我应该如何准备输入图像? 在这种情况下,所有图像都属于同一物体,但具有变化(请考虑:质量控制)。它们的比例/分辨率/距离/照明条件略有不同(很多情况下我不知道比例)。同样,在每个图像中,目标对象周围都有一个区域(已知),网络应该忽略该区域。 我可以(例如)裁剪每个图像的中心,以确保其中包含感兴趣对象的一部分而没有忽略区域。但这似乎会浪费掉信息,而且结果的范围也不尽相同(可能是1.5倍的变化)。 数据集扩充 我听说过通过随机裁剪/镜像/等方式创建更多训练数据,是否有标准方法?它对分类器的准确性有何改善?

6
余弦相似度与点积作为距离量度
看起来两个特征的余弦相似度只是它们的点乘积按其大小的乘积缩放。何时余弦相似度比点乘积能提供更好的距离度量?即在不同情况下,点积和余弦相似度是否有不同的优点或缺点?

7
ValueError:输入包含NaN,无穷大或dtype('float32')太大的值
使用RandomForest模型预测测试数据时出现ValueError。 我的代码: clf = RandomForestClassifier(n_estimators=10, max_depth=6, n_jobs=1, verbose=2) clf.fit(X_fit, y_fit) df_test.fillna(df_test.mean()) X_test = df_test.values y_pred = clf.predict(X_test) 错误: ValueError: Input contains NaN, infinity or a value too large for dtype('float32'). 如何在测试数据集中找到不良值?另外,我不想删除这些记录,我可以将它们替换为均值或中位数吗? 谢谢。

10
为什么将机器学习模型称为黑匣子?
我在阅读这篇博客文章,标题为:《金融世界想要打开AI的黑匣子》,作者反复将ML模型称为“黑匣子”。 提到ML模型时,在许多地方都使用了类似的术语。为什么会这样呢? 就像机器学习工程师不知道神经网络内部发生了什么一样。ML工程师会选择每个层,知道要使用什么激活功能,该层的类型是什么,错误如何反向传播等。

4
为什么在所有训练数据中,最小批次大小比单个“批次”更好?
我经常读到,在使用深度学习模型的情况下,通常的做法是在几个训练时期内应用小批量(通常是32/64的小批量)。我无法真正理解背后的原因。 除非我没有记错,否则批大小是模型在训练迭代期间看到的训练实例的数量;当模型已经看到每个训练实例时,纪元就轮到了。如果是这样,我看不到对训练实例的几乎无关紧要的子集进行多次迭代的优势,而与通过将每个回合中所有可用的训练实例暴露给模型来应用“最大批次”相反(当然,假设足够记忆)。这种方法的优势是什么?

10
机器学习算法可以预测运动成绩或比赛吗?
我有各种各样的NFL数据集,我认为它们可能是一个很好的附带项目,但是我还没有对它们做任何事情。 来到这个网站让我想到了机器学习算法,我想知道它们在预测足球比赛甚至下一场比赛的结果方面有多好。 在我看来,可能会发现一些趋势-在第三局和第一局,理论上有强大后卫的球队应该有在这种情况下控球的趋势。 得分可能更难预测,但获胜的团队可能更难预测。 我的问题是,这些是否是机器学习算法的好问题。可能有一千人曾经尝试过,但是体育的性质使它成为一个不可靠的话题。

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.