问题标签 [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.
c++ - 在哪里放置我的功能?进入我的母语 Gui 还是进入我的主持人?
我有以下场景:我在 Gui 层中有 Button 和 PreviewButton,它们有一个名为 BasedButton 的公共部分。Button只知道IButtonPresenter,ButtonPresenter的接口。按钮应该没有逻辑,演示者可以包含一些逻辑。问题是 PreviewButton 是一个非常简单的类,它不需要任何演示者。除了一件事: hasLed() 函数根据按钮类型(简单的开关情况)确定 Button 和 PreviewButton 是否有 LED。这个常见的 hasLed() 函数应该在哪里? 我的想法:
PreviewButton 也应该有presenter,hasLed() 函数应该在Button 和PreviewButton 的presenter 的共同部分。问题:我应该只为这一个功能介绍演示者,这似乎是过度设计。
把它放在这个逻辑:hasLed() 到 BasedButton(在 Button 和 PreviewButton 的共同部分)。问题:我试图避免在我的母语 Gui 中加入任何逻辑。
创建一些命名空间(或使用按钮类型枚举命名空间!)并将这个简单的函数作为内联函数放入其中。问题:“逻辑”被放置在一个“奇怪”而不是预期的类中。
将 hasLed() 函数放入我的演示者层中的一个管理器类中。优点:所有原生 Gui 类都可以访问管理器接口。并且代码保持通用(没有代码重复)。缺点:我的经理有这样的功能似乎有点奇怪。
其他想法?
也许现在我会选择第四个...
feature-engineering - 使用 Deep Feature Synthesis 时如何记录 FeatureTools 派生的常量
当 FeatureTools 执行深度特征合成时,有没有办法记录它导出的常量值?
例如,我有很多这样的行:
| loan_id | loan_term |
|---------|:---------:|
| a | 12 |
| ... | ... |
| z | 18 |
DeepFeatureSynthesis 工程师features
包括<Feature: loan_term.COUNT(loan)>
:
| loan | loan_term | loan_term.COUNT(loan) |
|---------|:---------:|:---------------------:|
| a | 12 | 2000 |
| ... | ... | ... |
| z | 18 | 800 |
我希望能够重新设计单个实体的功能,以便单个贷款期限12
具有 a loan_term.COUNT(loan)
of2000
而无需重新计算所有loan_term
s。*
我可以通过将实体与训练数据重新组合来做到这一点
ft.calculate_feature_matrix(features, my_entity_set_with_one_new_entity_added)
,但这效率低下且速度慢。
有没有办法指示 FeatureTools 记录在深度特征合成过程中发现的常量,并将它们用于未来的特征生成?
*现在将单个新贷款实体包括在计算中对我来说并不重要。所以12
不必成为2001
。
python - 没有为我在功能工具中设置的实体集生成功能
我在尝试创建实体集之间的关系时遇到了一个问题(使用我自己的数据)。没有错误,但它只是没有为我的一个实体(“prods”实体)创建功能,尽管一切都应该连接得很好。
我不能分享我的数据,但我用一些模拟数据创建了一个最小的例子:
创建模拟数据
定义实体集
创建关系
生成特征
输出:
这也应该向我展示产品变量的功能,但事实并非如此。
所以我希望 SUM 将每个客户的产品价格相加。相反,什么都没有。
最终,我想为有趣的值创建特征。但是由于没有显示产品变量,因此添加有趣的值也不起作用。
输出:
希望有人可以提供帮助:)
python - 如何在python的数据框中快速生成二次数值特征?
使用 python 和标准库,我想快速生成机器学习模型(分类器或回归器)的交互功能。因为手工进行特征工程可能很耗时,所以我正在寻找可以半自动化某些过程的标准 python 库和方法。例如,要生成用于分析的二次特征,我有以下代码:
我想简化这段代码,因为这种特征工程应该更加标准化和快速部署。它也不足,因为它需要更多的代码行来从特征列的加法、减法或除法中生成派生特征。
如何简化上面的代码?是否有标准的 Python 方法或库可以更有效地生成用于构建模型的派生特征?
r - 如何从非数字变量创建多项式特征?
我想创建一个多项式特征(GarageGrade),通过乘法将车库质量(GarageQual)与车库条件(GarageCond)结合起来。GarageQual 和 GarageCond 的值以字符形式给出:Po(差)、Fa(一般)、TA(典型)、Gd(良好)、Ex(优秀)。
返回:chr [1:2919] “TA” “TA” “TA” “TA” “TA” “TA” “TA” “TA” “Fa” “Gd” “TA” ...
返回:chr [1:2919] “TA” “TA” “TA” “TA” “TA” “TA” “TA” “TA” “TA” “TA” “TA” ...
首先,我考虑了它们:
返回:因子 w/ 5 个级别 "Ex","Fa","Gd",..: 5 5 5 5 5 5 5 5 2 3 ..
返回: > 因子 w/ 5 个级别 "Ex","Fa","Gd",..: 5 5 5 5 5 5 5 5 5 ...
现在我想替换因子级别名称的向量
带有数字向量
所以这些变量可以相乘以创建一个组合特征,如下所示:
实现结合 GarageQual 和 GarageCond 的综合 GarageGradevariable 最终目标的最佳方法是什么?我是否应该从一开始就考虑级别,还是应该直接用数字替换字符?如果是这样,我该怎么做?
r - 如何使用 apply 创建多个多项式变量?
我有几个变量,
每列由相同的五个 chr 值组成:
我想数字化
为了乘以创建新变量,如下所示:
有哪些方法可以实现这一目标?
注意:我是编程的初学者,所以夸大其词是值得赞赏的。
例子:
价值等价物将是 (6, 4, 6, 4, 6, 4)
价值等价物将是 (4, 4, 4, 4, 4, 4)
machine-learning - one-hot 编码是否会导致特征不平衡的问题?
我们知道,在数据挖掘中,我们经常需要 one-hot encoding 来对分类特征进行编码,因此,一个分类特征将被编码为几个“0/1”特征。
有一个特殊情况让我感到困惑:现在我的数据集中有一个分类特征和一个数字特征。我将分类特征编码为 300 个新的“0/1”特征,然后使用 MinMaxScaler 对数字特征进行归一化,所以我所有的特征值在0到1的范围内。但可疑的现象是分类特征与数值特征的比例似乎从1:1变为300:1。
我的编码方法正确吗?这让我对one-hot编码产生了怀疑,我认为这可能会导致特征不平衡的问题。
谁能告诉我真相?任何词将不胜感激!谢谢!!!
python - 机器学习:当多行属于同一个 ID 时,为分类构建特征
这是我的问题: 例如,我有一个表包含人们一个月内的行为信息(多个特征),每个人都有唯一的 ID 和唯一的标签(0 和 1)。我想要做的是使用这些功能来预测客户是否属于组 0 / 1。
但是,问题是每个ID的特征被多次收集和记录,这意味着我有多个行属于同一个ID。那么如何构建我的数据并构建一个特征矩阵,其中一个 ID 对应于一行特征和一个标签?
特征
标签
示例:两个数据框
有没有办法可以尽可能的把这些多行特征考虑进去,并创建一个一一对应的特征矩阵呢?
到目前为止我的个人想法:首先,计算每个 ID 显示为新特征的时间。其次,将每个 ID 聚类为两个簇,并使用大多数 ID 的簇中心作为该 ID 的特征数组。
任何人都可以帮助我吗?非常感谢!
python - 如何获取熊猫数据框列在给定月份的天数?
尝试为 ML 算法编码循环特征,其中时间戳特征作为特征非常重要。
我想将 day_in_month (cyclic_df 的'day' 列)转换为循环变量,以便一个月的第一天在前一天的最后一天之后。所以 01. 二月 (01.02) 更接近 1 月 31 日 (31.01),因此 2 天之间的差异,如果你只考虑天列,是 1 而不是 30!
问题在于我划分的那 30 个。不是每个月都有 30 天,有些月有 30、31、28 或 29 天。在cyclical_df 的每一行中,我有一列“月”、一列“年”和一列“日”。所以从理论上讲,应该有一个解决方案来读取给定月份的正确天数。如何用正确的变量替换 30(上面代码中的第 5 行和第 6 行),以便它从其他列中读取年份和月份,并替换为正确的值,而不总是 30?
PS:如果有人能告诉我,如果我在每分钟、每小时和每月的时间里做得对的话,那就太好了,也可以在上面的代码中找到。
编辑(评论后):是的,我有一个“年”列。并将这两行更改为:
我收到以下错误: