问题标签 [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 - sklearn.decomposition.DictionaryLearning 中的 fit_transform 输出与 components_
我试图了解 fit_transform 方法和 sklearn.decomposition.DictionaryLearning 中的 components_ 数组返回的值。
从文档看来 fit_transform 返回稀疏表示的输入数据, components_ 包含原子。
我使用以下代码在数字数据集上运行 sklearn.decomposition.DictionaryLearning:
当我使用以下代码绘制 fit_transform 返回的 X_dict (根据文档是转换后的输入数据)时:
当我使用以下代码绘制 components_ 的内容(应该打印原子)时:
这就是我得到的:
现在我的问题是,这是正确的吗?从我对字典学习的理解来看,我觉得第一个图像看起来更像原子,而后者看起来更像是转换后的输入。
有人可以解释一下原子和转换后的数据之间的区别,并告诉我这些图像中的哪一个是哪一个?
python - 将一个 dask 数据帧包写入磁盘(使用 dask 和 featuretools 生成 200 万个特征)
我对 Dask 和 Featuretools 都很陌生,所以我在将它们结合起来以并行化特征工程时遇到了很多困难
简短版本:解决一个直接的问题我有一个 dask bagdfs
并pandas DataFrame
希望将它们输出为 csv,每个文件都以分区作为标识符。to_textfiles()引发错误,我似乎无法找到获取要使用的分区号的方法dfs.map(pd.to_csv, "[partition_num].csv")
。有没有办法做到这一点?
长版:对于那些想知道为什么我有一大包熊猫数据框的人,我把我的整个问题放在这里寻找更好的方法。我正在尝试使用特征工具为 22k 行的数据集生成 200 万个特征(稍后用于特征选择)。我正在尝试遵循参考资料(这篇文章和这个笔记本)。在 notebook 中,数据集很大(4500 万行),比我的 22k 行数据集大得多。
尽管如此,我确实将我的数据分成了 741 行的分区,因为将entity set
完整数据传递给calculate_feature_matrix的顺序组件花费了太长时间(可能要分配entity set
给工作人员)。即使我只用整个数据集生成一个特征,也会发生这种情况。在运行 20 分钟后,我的dask-workers
( LSFCluster ) 的 CPU 利用率都没有超过 5% calculate_matrix
,这导致了大量的错误跟踪:
使用具有一个特征的整个数据集:
除了拆分数据集,我还按特征拆分,一次做一个特征。我现在想将该功能写入磁盘,但想将它们组合成 1k 块而不是输出 2 mil csv 文件。以下是我到目前为止的方法,最终以 dfsdask bag
为pandas DataFrame
对于 741 行的每个分区,一次计算一个特征:
这是我的第一个 SO 问题,所以请让我知道要修复/添加什么以使我的问题更清楚。谢谢!
tensorflow - 为什么Tensorflow错误:`无法转换类型的对象Tensor 发生了,我该如何解决?
我正在做一项流量分析任务,但我的代码中出现了一些错误。我的数据行是这样的:
qurter | DOW (Day of week)| Hour | density | speed | label (predicted speed for another half an hour)
值是这样的:
这意味着在 15 点钟的某个特定街道1st
上19
,Friday
测量交通密度23
和当前速度53.32
。预测的速度将是45.23
。
任务是通过上面给出的预测器预测另外半小时的速度。
我正在使用此代码DNNRegressor
为数据构建 TensorFlow:
当我运行这段代码时,它会以这个结尾抛出一个错误:
TypeError: Failed to convert object of type <class 'dict'> to Tensor. Contents: {'label': <tf.Tensor 'fifo_queue_DequeueUpTo:6' shape=(?,) dtype=float64>}. Consider casting elements to a supported type.
首先错误的概念是什么?由于错误原因,我找不到处理它的来源。以及如何修改解决方案的代码?
其次,使用 tensorflowcategorical_column_with_identity
代替numeric_columns
表示星期几的 DOW 是否会提高模型性能?
我还想知道合并quarter
和hour
作为单个列是否有用day time
(quarter
是一小时中的分钟数,它将在 0 和 1 之间标准化)?
r - R:如何根据最近的 N 行的值生成具有行值的列
我正在寻找一种将前 N 行中基于列的信息编码到给定行的方法。数据集已排序。
简而言之,我想创建一个名为的列,如果该列在七行之后大于 0(或!NA),则oneweeksince
返回。TRUE
victims
换句话说,如果,对于row[i]
,在从到row[i]$victims > 0
的任何行内,那么应该是。该值还应位于其中或row[i - 7]
row[i]
row[i]$oneweeksince
TRUE
oneweeksince
TRUE
victims > 0
!is.na(victims)
如何自动创建此列/功能?也可以使用日期列来计算日期距离。由于 R 中的缓慢性能,我试图避免创建循环。
数据集应如下所示:
数据集长达很多年,所以我需要一种有效的方法来做到这一点。
python - ValueError 任何类的最小组数不能小于2
这是我从以下代码中得到的错误
我猜 cv_split 部分给了我问题
我找到了使用 train_test_split 的解决方案,但这不会像 cv_split 那样返回它
但奇怪的是我将此代码与其他 kaggle 问题一起使用得很好,
所以我尝试比较两个 kaggle 的数据框的形状
kaggle 没问题
print(X.shape)
print(y.shape)
(891, 9)
(891,)
array([0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 1.....])
==================================================== ===========
kaggle 有问题(错误)
print(X.shape)
print(y.shape)
(15035, 24)
(15035,)
array([221900., 180000., 510000., ..., 360000., 400000., 325000 .])
两个内核的形状对我来说看起来一样我
不知道这两个内核的 X,y 的区别。
有人知道为什么会出现以下错误吗?
r - R H2O 目标编码模型 - 保存和加载
我正在使用 H2O 目标编码来处理我的一些因子变量。但是,我想我遇到了一个问题。
我可以轻松使用该功能,因此创建并应用了目标编码“模型”。但是,我需要能够保存所述模型并在以后使用它(例如使用实际的 H2O 模型)。
我已经用 R 的保存功能保存了模型对象,现在加载后我无法使用它(得到
两个问题:
1 - 有没有办法仍然使用我以这种方式保存的编码?
2 - 我应该如何保存和加载它?
python - 对特征工程的建议
我在特征工程期间遇到问题。寻找一些建议。问题陈述:我有多个客户 3 天的使用数据。有些只有 1 天的使用量,有些是 2 天,有些是 3 天。数据与每天发送的电子邮件数量/添加的联系人数量等有关。
我将此时间序列数据转换为按列,即客户在第 1 天发送的电子邮件数量作为一项功能,客户在第 2 天发送的电子邮件数量作为一项功能,依此类推。但问题是,对于不同的客户,使用可以是递增顺序或递减顺序。
即,示例 1:客户 'A' --> ' 1st 发送的电子邮件数量。天' = 100 。'第 2 天发送的电子邮件数量'=0
示例 2:客户 'B' --> ' 1st 发送的电子邮件数量。天' = 0 。'第 2 天发送的电子邮件数量'=100
示例 3:customer 'C' --> 'number of emails sent on 1st . 天' = 0 。'第 2 天发送的电子邮件数量'=0
示例 4: customer 'D' --> 'number of emails sent on 1st . 天' = 100 。'第 2 天发送的电子邮件数量'=100
在前两种情况下 => 我的新功能将具有“-100”和“100”作为值。我想这有利于区分。但是当新特征值在两种情况下都为“0”时,第 3 列和第 4 列会出现问题任何人都可以建议一种方法来处理这个
python - 在(堆叠)分类器之上处理/特征工程时,您可以使用特征的多类分类器吗?
在堆叠分类器之上处理/特征工程时,您可以使用特征的多类分类器吗?
用例:您有 10 个特征可用于多类分类问题。其中一个特征是文本,其他特征是分类、数字和时间。
9 个功能通过典型的流水线步骤实现:
类似于具有混合类型示例的 sklearn Column Transformer:
文本特征通过包含特定领域的训练向量模型的文本管道进行“预处理”或设计。其输出是一个 100 维向量/数组,传入一个多类分类器,输出分类概率(“predict_proba”)。
然后,这些概率将与上述预处理器中的特征相结合,然后再传递给分类器/堆叠分类器:
在几种不同的方式中,我使用了 sklearn mixins(BaseEstimator、TransformerMixin、ClassifierMixin)来创建一个或多个自定义类来做到这一点,但我失败了。很多错误。似乎我无法让分类器在变压器类中工作。
这是我的许多尝试之一的示例
真正的问题是:您能否在堆叠集成中的数据子集上拟合然后预测作为转换的一部分?
在几种不同的方式中,我使用了 sklearn mixins(BaseEstimator、TransformerMixin、ClassifierMixin)来创建自定义类来做到这一点,但我失败了。
这真的会奏效吗?有没有人见过这样的事情,或者我只是在做疯狂的梦?
任何见解或想法将不胜感激。
谢谢!
python - Pandas reset_index() 在通过多种方法分组和聚合后不起作用
我有一个带有 2 个分组列和 3 个数字列的 pandas DataFrame。我将数据分组如下:
结果是预期的多级索引:
通常我会像这样展平一个多索引:
但是,当我检查列时,我仍然得到一个多索引。我已经尝试as_index=False
在我的 groupby 函数中包含,但这也不起作用。
有趣的是,如果我只使用 1 个数字列和一个聚合,则此过程按预期工作。
任何提示或建议将不胜感激。
architecture - 软件架构师如何对混合复杂项目进行原型设计
我在软件行业工作了将近 7 年。我一直在使用多种技术、工具、框架和不同的编程语言。但是当我在一个复杂的项目中工作时,显然是由一些特殊的软件架构师来设计的,我想知道他/她是如何将这么多第三方技术结合在一起并集成到项目中的。我想知道他/她是如何在开始之前更早地对这个项目进行原型设计的,或者你可以说我想知道他/她的思维过程以及他/她采取了哪些行动来完成。