问题标签 [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.
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 之间的序列化和转换在执行所有这些步骤时发生),这几乎是令人望而却步的。我主要是在寻找更快的替代品。对此的任何帮助表示赞赏。
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] 视为数字特征吗?还是应该将它们视为分类特征,例如先进行一次热编码,然后将其提供给模型?
scala - 如何根据列包含的值过滤火花数据框?
在数据集中,我有一些字符串列的 None 或 NA 值,我想计算数据集中包含多少个这些 null 值?根据该决定使用哪种方法来处理缺失值。
我尝试了一种非常有效的方法,用 or 表达式过滤每一列的数据框。我想以更有效和更整洁的方式过滤它们。最好不转成rdd,但是如果不能使用dataframe做这种过滤rdd的方式也是可以接受的。
我发现这个线程Spark SQL 过滤多个字段与我的问题非常相似,但我想要一种更简洁优雅的方式来编写它,因为我有很多列
我想看看哪一列有多少空值。
python - df.groupby('A').agg('min') 如何转换为特征工具?
假设我有这个简单的代码片段。我将对数据框进行分组、聚合和合并:
使用熊猫:
数据
东风:分组和聚合
df_result:合并
df_new:使用功能工具的尝试:
特征矩阵:
Pandas 的操作如何转化为功能工具(最好不添加另一个表)?
我对 featuretools 的尝试没有给出正确的输出,但我相信我使用的过程有些正确。
featuretools - FeatureTools TypeError: unhashable type: 'set'
我正在为功能工具尝试此代码:
但我有这个错误
我还尝试了最简单的深度特征合成(dfs)代码,如下所示,但仍然遇到相同的错误
features, feature_names = ft.dfs(entityset = es, target_entity = 'demo')
我不太确定为什么会遇到这个错误,任何关于如何从这里开始的帮助或建议都非常感谢。在此先感谢您的帮助!
python - 如何为 tensorflow 服务的导出 tensorflow 2.0 keras 模型的输入层设计/预处理特征
我使用 TensorFlow-2.0-beta1 创建了一个模型。这使用 Keras 功能 API 对输入数据执行回归。数据需要对分类特征进行一次性编码,并将数字输入归一化。在过去使用 TF1.11 中的 Estimators API 时,这可以通过使用特征列并将工程应用于 ServingInputReceiver 中的特征来解决。从 keras 导出模型时,有没有办法做类似的事情?
我想要的是有一个模型,我可以使用 TensorFlow 服务来提供服务,它将获取训练数据中的特征,其中 13 个并在模型本身中对它们进行预处理。因此不需要使用像 Flask 这样的东西作为中间人
scala - 使用 Scala 在 Spark 中进行空值插补
我正在尝试通过 NA 估算空值,并且代码仅使用 Scala 可以正常工作,但是当我在 Spark 中运行代码时它无法正常工作
我期望 NA 而不是 Empty 值。
machine-learning - 聚合一热编码
我收集了有关天气预报的每小时数据。我收集的特征是数字的——“温度”、“降水”以及分类的——“天气预报”(例如“晴天”、“晴天”、“多云”、“雨”、“大雨”等)。我需要创建每日天气预报统计数据。虽然对于数值特征很容易(最小值、最大值、平均值、标准等),但我正在努力处理分类数据。我正在考虑每小时对“weather_forecast”功能进行一次热编码,然后将这些值加在一起。
例如,对于以下数据:
在一次热编码中
我会得到类似的统计数据
这可能会让我获得关于一天中天气的汇总统计数据。
我想知道这种方法是否存在任何陷阱/问题或需要注意的事项。这种编码有名字吗(我在网上找不到)。
python - 是否有另一种方法可以用 NaN 替换零和一等值?
我正在尝试用 NaN 值替换像 -1 和 0 这样的整数值。这是代码:
但是数据框很大:
我运行它需要很多时间。
有没有比这段代码更快的替代方法?