问题标签 [feature-engineering]

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 回答
97 浏览

python - 从聚合数据的主要 DCT 系数创建特征的最有效方法 - PySpark

我目前正在为一个数据集创建特征,该数据集包含一些设备的各种传感器读数的时间序列数据,这些数据可能与相同的故障事件有关。该数据的基本结构是我们有一个表,它结合了设备 ID、时间戳和传感器读数。

现在的想法是根据循环聚合数据以创建与这些循环相对应的序列(和相应的特征)。原始数据量很大,需要使用 spark,但是聚合后的结果数据集足够小,可以将其存储在 Pandas DF 中并使用 keras 构建模型。除其他外,一个想法是为某些传感器收集领先的 DCT 组件,以便将它们用作一项功能。为了做到这一点,我们(除其他外)进行以下聚合:

这给了我,对于每个设备的每个周期,传感器时间序列分别作为一个数组。现在的想法是对其执行 DCT,只保留前导n系数,并将它们分别添加为新的特征列。我想出了一种方法来做到这一点,但是,性能似乎很糟糕,这就是我寻求帮助的原因。

由于不幸的是无法在数组上使用 Pyspark 的 DCT(根据文档,该功能必须是 DenseVector 类型),我们需要将收集的数组转换为 DenseVector。在我看来,没有有效的方法,所以我使用 UDF 来做到这一点:

下一步是执行 DCT 本身,使用如下所示:

现在到了我担心陷阱的地方:我们需要将 DCT 向量截断为一定数量的系数,然后将这些系数分解为单独的列,以便稍后将它们传递到 Pandas DF/Numpy 数组中。

我担心使用 UDF 在性能方面并不好;无论如何, DenseVector 不表示为数组类型。所以这在这里不起作用:

所以我最后做的是将一个合适的函数映射到上述 DF 的 RDD 版本,并将其作为数据帧返回。这就是我现在正在使用的:

问题是这似乎运行起来非常慢(可能是由于 JVM 和 python 之间的序列化和转换在执行所有这些步骤时发生),这几乎是令人望而却步的。我主要是在寻找更快的替代品。对此的任何帮助表示赞赏。

0 投票
1 回答
335 浏览

machine-learning - 对数值特征进行分箱后该怎么办?

我想知道分箱后该怎么做。例如,特征之一是年龄。所以我的数据是 [11, 12, 35, 26]。

然后我应用大小为 10 的分箱:

箱子,名字

[0, 10) --> 1

[10, 20) --> 2

[20, 30) --> 3

[30, 40) --> 4

然后我的数据变成 [2, 2, 4, 3]。现在假设我想将此数据置于线性回归模式。我应该将 [2, 2, 4, 3] 视为数字特征吗?还是应该将它们视为分类特征,例如先进行一次热编码,然后将其提供给模型?

0 投票
1 回答
531 浏览

scala - 如何根据列包含的值过滤火花数据框?

在数据集中,我有一些字符串列的 None 或 NA 值,我想计算数据集中包含多少个这些 null 值?根据该决定使用哪种方法来处理缺失值。

我尝试了一种非常有效的方法,用 or 表达式过滤每一列的数据框。我想以更有效和更整洁的方式过滤它们。最好不转成rdd,但是如果不能使用dataframe做这种过滤rdd的方式也是可以接受的。

我发现这个线程Spark SQL 过滤多个字段与我的问题非常相似,但我想要一种更简洁优雅的方式来编写它,因为我有很多列

我想看看哪一列有多少空值。

0 投票
1 回答
99 浏览

python - 使用分类列作为条件的特征工程工资数据

考虑到分类列,需要将工资金额转换为年薪:

  • 'M' - 每月
  • 'Y' - 每年
  • 'W' - 每周
  • 'B' - 双周刊

https://i.stack.imgur.com/INXva.png

0 投票
1 回答
472 浏览

python - df.groupby('A').agg('min') 如何转换为特征工具?

假设我有这个简单的代码片段。我将对数据框进行分组、聚合和合并:


使用熊猫:


数据

东风:

分组和聚合

df_result:

合并

df_new:

使用功能工具的尝试:


特征矩阵:

Pandas 的操作如何转化为功能工具(最好不添加另一个表)?

我对 featuretools 的尝试没有给出正确的输出,但我相信我使用的过程有些正确。

0 投票
2 回答
208 浏览

featuretools - FeatureTools TypeError: unhashable type: 'set'

我正在为功能工具尝试此代码:

但我有这个错误

我还尝试了最简单的深度特征合成(dfs)代码,如下所示,但仍然遇到相同的错误

features, feature_names = ft.dfs(entityset = es, target_entity = 'demo')

我不太确定为什么会遇到这个错误,任何关于如何从这里开始的帮助或建议都非常感谢。在此先感谢您的帮助!

0 投票
1 回答
241 浏览

python - 如何为 tensorflow 服务的导出 tensorflow 2.0 keras 模型的输入层设计/预处理特征

我使用 TensorFlow-2.0-beta1 创建了一个模型。这使用 Keras 功能 API 对输入数据执行回归。数据需要对分类特征进行一次性编码,并将数字输入归一化。在过去使用 TF1.11 中的 Estimators API 时,这可以通过使用特征列并将工程应用于 ServingInputReceiver 中的特征来解决。从 keras 导出模型时,有没有办法做类似的事情?

我想要的是有一个模型,我可以使用 TensorFlow 服务来提供服务,它将获取训练数据中的特征,其中 13 个并在模型本身中对它们进行预处理。因此不需要使用像 Flask 这样的东西作为中间人

0 投票
1 回答
244 浏览

scala - 使用 Scala 在 Spark 中进行空值插补

我正在尝试通过 NA 估算空值,并且代码仅使用 Scala 可以正常工作,但是当我在 Spark 中运行代码时它无法正常工作

我期望 NA 而不是 Empty 值。

0 投票
3 回答
769 浏览

machine-learning - 聚合一热编码

我收集了有关天气预报的每小时数据。我收集的特征是数字的——“温度”、“降水”以及分类的——“天气预报”(例如“晴天”、“晴天”、“多云”、“雨”、“大雨”等)。我需要创建每日天气预报统计数据。虽然对于数值特征很容易(最小值、最大值、平均值、标准等),但我正在努力处理分类数据。我正在考虑每小时对“weather_forecast”功能进行一次热编码,然后将这些值加在一起。

例如,对于以下数据:

在一次热编码中

我会得到类似的统计数据

这可能会让我获得关于一天中天气的汇总统计数据。

我想知道这种方法是否存在任何陷阱/问题或需要注意的事项。这种编码有名字吗(我在网上找不到)。

0 投票
1 回答
60 浏览

python - 是否有另一种方法可以用 NaN 替换零和一等值?

我正在尝试用 NaN 值替换像 -1 和 0 这样的整数值。这是代码:

但是数据框很大:

我运行它需要很多时间。

有没有比这段代码更快的替代方法?