问题标签 [data-science]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2469 浏览

python - 朴素贝叶斯分类器:仅在 iris 数据集上获得 30-40% 的准确率

在过去的几天里,我正在尝试使用来自 UCI 的 iris 数据集(http://archive.ics.uci.edu/ml/datasets/Iris)在 python 中实现朴素贝叶斯分类器。当试图对 100 个随机样本进行分类时,我只能得到 30-40% 的准确率。我认为我的概率函数是正确的,因为我使用维基百科的示例(https://en.wikipedia.org/wiki/Naive_Bayes_classifier#Examples)对其进行了测试

现在这就是我要做的:

  • 我加载数据
  • 我将数据分为3类
  • 我计算每个类的均值和方差

然后对于 100 个随机样本,我:

  • 计算每个特征属于一个类的概率
  • 通过乘以该类的每个概率来计算后验分子

  • 将值存储在列表中并获取最大值的索引

  • 将最高值索引与真实索引进行比较(检查预测是否正确)

不知何故,我只得到 30-40%,我做错了吗?

如果你想看代码,在这里: http: //pastebin.com/sUYm97qi

0 投票
0 回答
261 浏览

machine-learning - 比有界支持向量更多的训练集错误?

我们正在使用 scikit-learn 训练一个 1-class svm OneClassSVM,它是 libsvm 的一个包装器。当我们运行时,它会在下面的输出中verbose=True报告有界支持向量的数量。nBSV = 106

现在,如果我们对训练集进行评估,我们会得到 186 个负数,这比上面的 106 个有界支持向量要多。

根据我对 SVM 的理解,这应该是不可能的。只要有一个非零边距,训练误差就应该是有界支持向量的子集,因为有界支持向量是在边距错误一侧的训练实例,而训练集错误是在边缘错误一侧的实例学习分隔符,位于边距内。

虽然实际数字有所不同,但这一观察结果似乎对该数据集的设置很可靠。我什至看到nBSV=0大多数训练样本都被错误分类。

有人可以解释这是怎么发生的吗?

0 投票
1 回答
113 浏览

algorithm - 如何找到两组噪声数据的交集?

我目前正在编写一个脚本,该脚本应该从我的图表中删除冗余数据点。我的数据包括来自相邻数据集的重叠,我只想要通常更高的数据。(想象两个高斯的 x 偏移量略有重叠。我只对重叠区域中的较高值感兴趣,因此当我组合数据以制作单个光谱时,我的最终图表不会变得很嘈杂。 )

这是我的问题:

1)两个数据集之间的x值不一样,所以我不能只说“在x处,取最大y值”。它们靠得很近,但并不相等。

2) x 值之间的距离不相等。

3)数据有噪声,因此数据集相交处可能有多个点。虽然高斯 A 在相交后通常高于高斯 B,但噪声意味着高斯 B 可能仍有一些更高的值。这意味着我不能只说“总是在这个 x 区域中取最高值”,因为那样我会疯狂地结合两个数据集的噪声。

4)我有n个这种类型的重叠,所以我需要一个有效的算法,我能想出的只是O(n ^ 3)的某个地方,这就像“对于每个重叠,将数据集存储到两个数组中并且对于数据点 (x0,y0) 和 (x1,y1) 的每个组合循环,直到找到 abs(x1-x0) AND abs(y1-y0) 的最低组合”

因为我不是程序员,所以我完全迷路了。我也无法在任何地方找到解决此问题的算法 - 大多数算法假设我正在比较的数组中的条目是相等的整数,但我正在使用几乎相等的浮点数。

我正在使用 IDL,但我也很感激一个通用算法或至少一个我可以尝试的提示。谢谢!

0 投票
1 回答
216 浏览

python - 如何将 Beaker 笔记本保存为直接 python/r/...?

我刚刚发现了烧杯笔记本。我喜欢这个概念,并且非常渴望将它用于工作。为此,我需要确保我可以以其他格式共享我的代码。

问题

假设我在 Beaker 笔记本中编写纯 Python:

  1. 我可以像在 iPython Notebook/Jupyter 中一样将其保存为 .py 文件吗?
  2. 如果我写一个纯 R Beaker 笔记本,我可以这样做吗?
  3. 如果我用 Python 和 R 编写了一个混合(多语言)笔记本,我可以将它保存到例如 Python,R 代码存在但被注释掉吗?
  4. 可以说以上都不可能。将 Beaker Notebook 文件作为文本文件查看,它似乎以 JSON 格式保存。我什至可以找到对应于例如 Python、R 的单元格。编写一个执行上述 1-3 的 python 脚本看起来并不太具有挑战性。我错过了什么吗?

谢谢!

PS - 没有烧杯笔记本标签!?坏兆头...

0 投票
1 回答
3292 浏览

machine-learning - 如何解释 k-means 聚类的结果?

我目前正在使用 NTSB 航空事故数据库进行一些分析。该数据集中的大多数航空事故都有原因陈述,描述了导致此类事件的因素。

我在这里的一个目标是尝试对原因进行分组,而聚类似乎是解决此类问题的一种可行方法。在开始 k-means 聚类之前,我执行了以下操作:

  1. 去除停用词,即去除文本中一些常见的功能词
  2. 文本词干,即去除一个词的后缀,必要时将词条转换成最简单的形式
  3. 将文档向量化为 TF-IDF 向量,以放大不太常见但信息量更大的单词,并缩小高度常见但信息量较少的单词
  4. 应用 SVD 降低向量的维数

在这些步骤之后,k-means 聚类被应用于向量。通过使用从 1985 年 1 月到 1990 年 12 月发生的事件,我得到了以下集群数量的结果k = 3

(注意:我正在使用 Python 和 sklearn 进行分析)

我生成了一个数据的绘图图,如下所示:

绘制 k 均值聚类的结果

结果对我来说似乎没有意义。我想知道为什么所有的集群都包含一些常见的术语,比如“试点”和“失败”。

我能想到的一种可能性(但我不确定在这种情况下是否有效)是具有这些常用术语的文档实际上位于绘图图的中心,因此它们不能有效地聚集成一个正确的集群。我相信这个问题不能通过增加集群的数量来解决,因为我刚刚这样做了,这个问题仍然存在。

我只想知道是否还有其他因素可能导致我面临的情况?或者更广泛地说,我是否使用了正确的聚类算法?

谢谢。

0 投票
1 回答
678 浏览

apache-spark - 笔记本作为生产休息 API

我知道 databricks 提供了将笔记本简单地转换为“生产级”休息 API的可能性。

Zeppelin、Scala-Notebook 或 Jupiter Notebook 或 hue-notebook 等开源笔记本是否有类似的功能?如果解决方案支持 sparkR,那就太好了。

非常感谢

0 投票
4 回答
8892 浏览

python - 标准差为零的归一化

我正在尝试使用以下代码在 python 中对数据集进行中心化和规范化

问题是我得到了一个零错误的定义。数据集中的两个值最终具有零标准。数据集的形状为 (3750, 55)。我的统计技能不是那么强,所以我不知道如何克服这一点。有什么建议么?

0 投票
1 回答
616 浏览

python - 将 RandomizedSearchCV 指向分类器

我正在使用下面的工作流来训练随机森林分类器以供生产使用。我正在使用 RandomizedSearchCV 通过打印结果来调整分类器的参数,然后使用 RandomizedSearchCV 的结果创建一个新管道。我认为必须有一种方法可以将 RandomizedSearchCV 的最佳结果简单地指向分类器,这样我就不必手动操作,但我不知道如何操作。

0 投票
1 回答
169 浏览

r - 路径:R 中的数据分析

我正在为初学者(如我)建立一条路径,以指导他们学习 R 中的数据分析(请仅在 R 中)。

您能建议我添加任何新的部分和/或新的课程吗?

这是我到目前为止添加的内容:http: //studiy.co/path/data-analysis/

谢谢您的帮助!

0 投票
3 回答
497 浏览

python-3.x - 关于特征选择技术的建议?

块引用

我是机器学习的学生和初学者。我想做
列的特征选择。我的数据集是 50000 X 370,这是一个二元分类问题。首先我删除了 std.deviation = 0 的列,然后我删除了重复的列,之后我检查了具有最高 ROC 曲线面积的前 20 个特征。除了进行 PCA 之外,下一步应该是什么?任何人都可以给出特征选择要遵循的一系列步骤吗?