问题标签 [discretization]

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 投票
1 回答
986 浏览

weka - 在 Weka 中,如何阻止 CfsSubsetEval 离散化训练实例?

我正在尝试编写一个 java 程序,它在 Weka 中调用 CfsSubsetEval 类来执行特征子集选择。CfsSubsetEval 离散化数据集,我试图避免这种情况,因为数据集已经离散化。以下是 CfsSubsetEval.java 中执行离散化的行。

由于类属性在arff文件中定义如下:

该属性不是数字的,因此执行离散化。

虽然我对 Weka 的实现有一点了解,但我尝试注释掉这些行以跳过离散化。但是,它不起作用,并报告了以下异常:

问题是:如何更改 CfsSubsetEval.java 使其不离散数据集?

非常感谢您的帮助。

0 投票
3 回答
213 浏览

r - 在R中将邮政编码离散化到美国地区

我想将带有邮政编码的数据离散化为区域

我有角色数据

样本:

ETC

我有 6 个有规则的类别:

1区-东北:01000-19999

区域 2 - SE:20000-39999

区域 3 - MW:40000-58999,60000-69999

区域 4 - 西南:70000-79999,85000-88499

区域 5 - MT: 59000-59999,80000-84999,88900-89999

区域 6 - PC:90000-99999

我希望我的输出是因子数据:

ETC

显然,我知道很多离散化数据的方法,但没有一个是干净和优雅的(比如循环、ifelse 等)

有没有一种优雅的方法来应用具有 6 个类别的案例来离散化这些数据?

0 投票
3 回答
61 浏览

r - 相对于均值离散化分数

我有日期、邮政编码和分数的数据。我想对数据进行离散化,以使同一月份的所有行和同一邮政编码高于同一月份的平均值,邮政编码为 1,所有其他行均为零。

示例(数据框称为 score_df):

输出:

到目前为止,我一直在使用低效的解决方案:

1.遍历所有月份并使用 ifelse 语句应用二进制条件

2.我还尝试使用聚合生成平均表,然后将平均列加入原始数据框,然后应用二进制条件

我想在功能上做到这一点。我知道如何在一个条件下(只是日期或只是 zip)在功能上做到这一点,但不是两个。我可以连接这两个字段以创建一个唯一字段。这将是一个快速解决方案,但我想知道是否有一种方法可以使用 apply 函数或 plyr 简单有效地完成此操作。

0 投票
0 回答
103 浏览

python-2.7 - 如何离散化数据(SIFT 特征)?

我的输入数据看起来像

[1,1,0,0,0,0,1,0,24,3,0,0,0……]

这些是图像的 SIFT 特征,每个样本有 128 个维度,同样我有大约 100,000 个样本,每个样本有 128 个维度。我想离散化这些特征。有没有简单的python包可以用来做这件事?提前致谢!

0 投票
0 回答
34 浏览

matlab - 具有两个特征的bins matlab

我存储了N=1000元素(空调、空调)的数据。

每个元件都有许多特性,主要是它们的温度和 ON/OFF 开关的二进制状态。所有这些数据都已按以下方式生成和存储:

  • cell每个 AC 都是数组中的一个条目。
  • 每个 AC 都有不同的死区温度limits_deadband(这是上层cell数组的一个条目)。
  • 对于温度,我有另一个cell数组,其中包含来自模拟的向量,维度为8641x1
  • 对于 ON/OFF 二进制状态,我有另一个cell数组,其中包含来自模拟的向量,维度为8641x1

我想生成的是以下内容:

  • limits_deadband将每个 AC划分为N/2bin(20例如)。
  • 然后N用来表示温度ON/OFF状态。
  • 8641在测量数据点上绘制每个 bin 中的 AC 数量和 ON/OFF 状态。

到目前为止我所拥有的:

limits_deadband是我想存储温度的箱子 的边缘。ON_OFF_state给出状态。

关于如何正确绘制这个的任何想法?我想使用histogram,但不知道如何做到这一点。

0 投票
1 回答
288 浏览

c++ - 基于区间的数据结构(类似于 boost icl)

我的目标是表示一个 3D 空间,该空间被离散化为不同的 bin。

bin 包含任意类型的元素(类型已确定)。
当添加一个 bin(或 bin 所在的区间)并且它与先前添加的 bin 相交时,两者都应该合并。

现在我只添加箱(间隔),然后我正在迭代以获取属于正确箱的元素,但也许将来我可能需要同时更改元素/间隔和访问元素。
使用这种数据结构的算法应该是高效的。

到目前为止,我倾向于尽可能使用现有的库和数据结构。
Boost::ICL 接缝很方便,但问题可能出在合并上。

现在我正在用一个包装器来做这个。Fe 只有两个维度 (Y,Z) 和一个集合作为 bin:

这对我来说有点 hacky :-)

另一种选择是使用 b 树或区间树(来自 cgal 的 fe)编写我自己的数据结构。或调整或扩展 boost::icl。但我不是最先进的程序员。

所以我的问题是:

尽管我的方法很丑陋……这会奏效还是可能会出现某些问题?

有没有更合适的数据结构?

在实现自己的数据结构时我必须考虑什么?

非常感谢您的帮助

0 投票
2 回答
2210 浏览

r - 间隔中的切割函数和受控频率

我的问题很简单:cut() 函数允许选择中断,沿着这些中断我可以将向量的范围划分为间隔。我希望能够控制新创建的区间内的观察次数,其方式类似于使用 cut() 函数调用中的分位数参数可以获得的方式。但是我不想使用分位数参数,因为我希望选择固定的间隔,以便我可以在不同数据库之间匹配它们以进行进一步比较,并且我希望在标签中找到相同的离散值新切割的向量。

我曾经将其用于分位数方法:

这很简单。我的新方法甚至更简单,因此类似于以下示例:

然后我有另一个变量,我想根据离散变量的水平计算一些统计数据。

所以它会是这样的:

但是为了让我能够在 y 值的每个“池”上计算这种 t 检验置信区间(其数量与离散变量区间内的观察值相同),我需要能够控制 z 的每个创建间隔内的值的数量,以便我的测试保持有效,至少就观察数量而言。

简而言之,我需要一个自动化程序来为 z 变量创建中断向量,以便每个变量都包含最少数量的观察值。作为一个额外的复杂因素,两个不同的数据库应该是相同的中断,我不知道这是否可能。

欢迎任何关于此事的帮助,在此先感谢您。

编辑:这是我的 x 数据示例。

假设我想要每个间隔 30 个值('n'),这是我使用的代码:

这给了我:

我想要的是与分位数相似的结果:

除了我希望这对于另一个数据库是可重现的,所以我不能使用分位数函数,因为我不会在不同的数据库上得到相同的间隔。

第二次编辑:这是来自另一个数据库的第二个示例。'x' 是同一个变量,它们具有相似的范围。

0 投票
0 回答
193 浏览

r - 用 cut 对 R 中的连续变量进行分类,但元素属于错误类别

我对 R 非常陌生,我正在尝试将连续变量分为两类。假设如下:

我对出现在向量末尾的值6.7特别感兴趣。为什么 6.7 属于区间 (6.7, 8.203] 而不是 (5.197, 6.7]?据我了解,6.7 不应该属于区间 (6.7, 8.203]。我错过了什么吗?感谢您的帮助!

编辑:

正如评论中指出的6.7实际上是6.7000000000000001776

另一个问题:

我将保存区间范围以供以后参考,因为我想检查新元素落入哪个区间。所以想象我有(5.197,6.7] (6.7,8.203]cut 生成的间隔,现在我将得到一个新元素x = 6.7,我想检查它会落在哪个间隔。当我检查5.197 < x <= 6.7它是否会落入第一个区间,而我原来的向量 6.7 落入第二个区间时。

cuts = cut(y, breaks=2, dig.lab=17)真的是我让两个元素进入相同间隔的方法吗?

0 投票
1 回答
539 浏览

r - .C() 不适用于包“dprep”的“点”

我想执行离散化,以便为监督学习 R 执行基于互信息的特征选择。

我收到以下错误:

.C("Points", as.double(x), as.integer(n), mpoint = double(n), 中的错误:"Points" 不适用于包 "dprep" 的 .C()

任何帮助,将不胜感激。

0 投票
1 回答
465 浏览

weka - WEKA 交叉验证离散化

我正在尝试通过应用无监督离散化滤波器来提高我的 WEKA 模型的准确性。我需要决定 bin 的数量以及是否应该使用等频 binning。通常,我会使用训练集对此进行优化。

但是,如何确定 bin 大小以及在使用交叉验证时是否应使用等频 binning?我最初的想法是在多个交叉验证测试中使用分类器的准确度结果来找到最佳的 bin 大小。但是,尽管使用了交叉验证,但使用相同的集合来测试模型的准确性,这不是错的吗,因为我有一个过度拟合的模型?那么确定垃圾箱大小的正确方法是什么?

我还尝试了监督离散化过滤器来确定 bin 大小,但这只会导致单个 bin。这是否意味着我的数据过于随机,因此无法聚集到多个 bin 中?