问题标签 [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 投票
2 回答
494 浏览

machine-learning - 随机森林中的循环序数特征

您如何为随机森林算法准备循环序数特征,例如一天中的时间或一周中的一天?

通过仅用午夜后的分钟编码时间,23:55 和 00:05 之间的信息差异将非常大,尽管只有 10 分钟的差异。

我在这里找到了一个解决方案,其中使用午夜后秒数的余弦和正弦将时间特征分成两个特征。但这适用于随机森林吗?使用随机森林不能确定每次拆分都会出现所有特征。所以通常会有一半的时间信息丢失用于决策。

期待你的想法!

0 投票
0 回答
230 浏览

r - 基于 r 中的多个类特征将数据集划分为训练和测试

我有 5 个分类变量(v1-v5)和 1 个数值变量(v6),每个变量有 6 个以上的类别,我想将整个数据分成训练(70%)和测试(30%)。

我一直在安静地面对这个问题,因为我使用的是分类变量并且我使用的是随机抽样。每次我拆分数据时,我都会面临其中一个变量的一些问题。当我在这里预测时,由于数据级别不同或缺少测试集中的数据级别,因此我正在使用决策树构建模型。

如果您能建议我一些解决此类问题的聪明方法,那将有很大帮助。

我经历了许多堆栈溢出问题,但没有遇到与我类似的问题。

样本数据:

示例代码:

错误:

xlev = attr(object, : 因子 v3 有新的水平

0 投票
1 回答
56 浏览

pyspark - 将历史路径特征添加到 PySpark 数据框

我的原始数据框中有“事件”列,我想添加其他 2 列。

事件 事件滞后 历史事件
0 ñ ñ
0 0 N0
1 0 N00
0 1 N001
0 投票
0 回答
57 浏览

r - 使用 MARS 算法的地球功能错误

我运行我的 ML 算法:

我有:

Error in leaps.setup(x = bx, y = y, force.in = 1, force.out = NULL, intercept = FALSE, : NA/NaN/Inf in foreign function call (arg 3)

当我尝试使用时train<-train[(1:dim(train)[1]-2),],没关系。我在我的火车数据集上搜索最后两行,但我没有看到错误。

请问你能帮帮我吗?

0 投票
1 回答
524 浏览

python - 在python中将字典转换为二进制

我有一个字典,其中键作为我的客户 ID,值作为我的电影 ID。尽管客户已经多次观看同一部电影,但我希望它成为一部。在这里,我需要将我的字典转换为二进制数据。在所有行中,我需要客户 ID 和列作为电影 ID,如果客户看过电影,则为 1,否则为 0。

期望的输出:

我试过使用计数向量器()

代码 :

输出 :

客户 ID 非常匹配,我数了一下他看了多少次电影。

0 投票
0 回答
163 浏览

machine-learning - 使用多种特征的机器学习 - 文本处理

我有如下数据:

我浏览了http://scikit-learn.org/stable/modules/preprocessing.html#preprocessing但我只能找到对 col3 进行矢量化并将其传递给分类的信息。在我的场景中,我在 col1 和 col2 中也有数字信息。

如果没有矢量化我通过 col1、2 和 3,我会收到 col3 的错误,因为它是字符串。

如果我对 col3 进行矢量化,则输出是一个稀疏矩阵。我需要将 col1 和 col2 添加到矢量化数据中。我怎么做?

我正在使用 scikit-learn。

0 投票
2 回答
602 浏览

python - 使用 dask hdf/parquet 的 Python 大数据集特征工程工作流程

SO中已经有一个很好的问题,但最好的答案现在是5岁,所以我认为2018年应该有更好的选择。

我目前正在寻找大于内存数据集的特征工程管道(使用合适的 dtypes)。

初始文件是不适合内存的 csv。以下是我的需求:

  1. 创建特征(主要是在多列上使用 groupby 操作。)
  2. 将新特征合并到以前的数据(在磁盘上,因为它不适合内存)
  3. 为某些 ML 应用程序使用子集(或所有)列/索引
  4. 重复 1/2/3(这是一个迭代过程,例如第 1 天:创建 4 个特征,第 2 天:再创建 4 个......)

尝试使用镶木地板和 dask:

首先,我将大 csv 文件拆分为多个小的“镶木地板”文件。有了这个,dask 对计算新特征非常有效,但是,我需要将它们合并到初始数据集和 atm,我们不能向 parquet 文件添加新列。逐块读取 csv,合并和重新保存到多个 parquet 文件太耗时,因为特征工程在这个项目中是一个迭代过程。

尝试使用 HDF 和 dask:

然后我转向 HDF,因为我们可以添加列并使用特殊查询,而且它仍然是二进制文件存储。我再次将大 csv 文件拆分为多个 HDF,并使用相同的 key='base' 作为基本功能,以便使用 DASK 的并发写入(HDF 不允许)。

附件问题:指定 data_columns 似乎对 dask 没用,因为 dask.read_hdf 中没有“哪里”?

与我的预期不同,我无法使用如下代码将新功能合并到多个小文件中:

使用 dask.threaded 2% 后我得到“python 停止工作”。使用 dask.multiprocessing.get 它需要永远创建新文件

最适合此工作流程的工具(存储和处理)是什么?

0 投票
1 回答
713 浏览

scala - 如何将带有键的值映射到 Spark DataFrame 中的列

我正在使用 Scala 在 Spark 2.3 中进行一些特征工程。

我在 Spark DataFrame 的一列中有 IP 地址,看起来像

IP 列示例.

然后我用来data.groupBy("ip").count()获取每个 IP 地址的频率列表。这看起来像

IP 计数频率

现在我想将这些频率中的每一个映射到原始数据帧。我会在哪里

解决此类问题的有效方法是什么?

0 投票
2 回答
72 浏览

r - Rstudio 列多个二进制特征

我想将一列拆分为多个二进制虚拟列。我的数据框:df

目前我有这个代码包 qdaptools 和插入符号:

我的问题:我怎样才能给这些虚拟列起一个标题,所以我得到了这个:

0 投票
1 回答
18 浏览

string - 字符串中的项目 - 创建新列

所以我找到了这个问题的其他一些答案,这些答案涉及使用运算符有条件地选择,但我还没有找到涉及包含语句的解决方案。

我想要完成的是在数据框内

如何根据第二列是否包含“a”将第三列设置为一个值?