- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我们正在努力对数据进行正确建模以便在 Kedro 中使用 - 我们正在使用推荐的 Raw\Int\Prm\Ft\Mst 模型,但正在努力解决一些概念......例如
我很欣赏数据建模没有硬性规定,但这些都是重大的建模决策,任何有关 Kedro 建模的指导或最佳实践都会非常有帮助,我可以在 Kedro docs 中找到一张定义各层的表。
如果有人可以提供任何有关 Kedro 数据建模的进一步建议或博客\文档,那就太棒了!
最佳答案
很好的问题。正如您所说,这里没有硬性规定,意见也各不相同,但让我作为一名 QB 数据科学家和 kedro 维护者分享我的观点,他曾多次使用过您提到的分层约定。
首先,我要强调的是,如果 kedro 建议的数据工程约定不适合您的需求,那么绝对没有理由坚持它。 99% 的用户不会更改 data
中的文件夹结构。这并不是因为 kedro 默认结构适合他们,而是因为他们只是不想改变它。您绝对应该添加/删除/重命名图层以适合自己。最重要的是选择一组适合您的项目的图层(甚至是非分层结构),而不是尝试硬塞数据集以适应 kedro 默认建议。
现在,假设您遵循 kedro 的建议结构 - 解决您的问题:
When is a dataset a feature rather than a primary dataset? The distinction seems vague...
对于简单特征,特征数据集可能与主要数据集非常相似。如果您考虑更复杂的功能,例如通过在时间窗口内聚合而形成。主数据集将有一列提供原始数据的清理版本,但无需对其进行任何复杂的计算,只需进行简单的转换。假设原始数据是一周内驶过您家的所有汽车的颜色。当数据处于主要状态时,它将是干净的(例如,将“rde”更正为“红色”,可能将“深红色”和“红色”映射为相同的颜色)。在主要层和特征层之间,我们将对其进行一些不那么简单的计算,例如每天查找最常见的汽车颜色 one-hot 编码。
Is it OK for a primary dataset to consume data from another primary dataset?
在我看来,是的。如果您想将多个主表连接在一起,这可能是必要的。一般来说,如果您正在构建复杂的管道,如果您不允许这样做,将会变得非常困难。例如在要素图层中,我可能希望根据两个输入 feature_1
和 feature_2
形成一个包含 composite_feature = feature_1 * feature_2
的数据集。如果要素层中没有多个子层,则无法做到这一点。
但是,通常值得避免的是消耗来自许多不同层的数据的节点。例如一个节点,它从要素层获取一个数据集,从中间层获取一个数据集。这看起来有点奇怪(为什么后面的数据集没有通过要素层?)。
Is it good practice to build a feature dataset from the INT layer? or should it always pass through Primary?
从中间层构建功能并非闻所未闻,但似乎有点奇怪。主层通常是重要的一层,它构成了所有特征工程的基础。如果您的数据处于可以构建特征的形状,那么这意味着它可能已经是主要层。在这种情况下,也许您不需要中间层。
以上几点可以总结为以下规则(毫无疑问,在需要时应该打破这些规则):
L
层中节点的输入数据集应全部位于同一层,可以是 L
或 L-1
L
中节点的输出数据集应全部位于同一层L
,可以是L
或L+1
If anyone can offer any further advice or blogs\docs talking about Kedro Data Modelling that would be awesome!
我也有兴趣看看其他人的想法!需要注意的一件可能有用的事情是 kedro 受到 cookiecutter 数据科学的启发,并且 kedro 层结构是 what's suggested there 的扩展版本。 。也许其他项目已经采用了这个目录结构并以不同的方式对其进行了调整。
关于Kedro 数据建模,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67925860/
假设我们有多个长期运行的管道节点。 检查点或缓存中间结果似乎很简单,所以当检查点之后的节点被更改或添加时,只有这些节点必须再次执行。 Kedro 是否提供功能来确保,当我运行管道时,只有这些步骤是 已
我们正在 10 多家公司之间部署一个数据联盟。 Wi 将为所有公司部署多个机器学习模型(一般为高级分析模型),我们将管理所有模型。我们正在寻找一种管理多个服务器、集群和数据科学管道的解决方案。我喜欢
我们正在努力对数据进行正确建模以便在 Kedro 中使用 - 我们正在使用推荐的 Raw\Int\Prm\Ft\Mst 模型,但正在努力解决一些概念......例如 什么时候数据集是要素而不是主要数据
我们正在努力对数据进行正确建模以便在 Kedro 中使用 - 我们正在使用推荐的 Raw\Int\Prm\Ft\Mst 模型,但正在努力解决一些概念......例如 什么时候数据集是要素而不是主要数据
我有一个包含相同数据格式的多个文件的目录(每天 1 个文件)。这就像一个数据分成多个文件。 是否可以在不指定每个文件的情况下将所有文件传递给 A Kedro 节点?那么它们都是根据运行程序顺序或并行处
输入是一个数据框列表。如何将其保存到 ExcelLocalDataSet 中,其中每个数据框都是单独的工作表? 最佳答案 目前 ExcelLocalDataset 实现目前面向写一张纸,这为您提供了两
kedro建议将参数存储在 conf/base/parameters.yml 中。让我们假设它看起来像这样: step_size: 1 model_params: learning_rate:
CSVS3DataSet/HDFS3DataSet/HDFS3DataSet 使用 boto3,已知它不是线程安全的 https://boto3.amazonaws.com/v1/documentat
我未能成功禁用 kedro 日志。我尝试将 disable_existing_loggers: True 添加到logging.yml 文件,并将disable:True 添加到所有现有日志,但它似乎
在 Kedro 中,我们可以管道化不同的节点并部分运行一些节点。当我们部分运行一些节点时,我们需要将一些来自节点的输入保存在某个地方,以便当另一个节点运行时它可以访问前一个节点生成的数据。但是,我们在
在 Kedro 管道中,节点(类似于 python 函数)是按顺序声明的。在某些情况下,一个节点的输入是前一个节点的输出。但是,有时在命令行中调用 kedro run API 时,节点不会按顺序运行。
在 IO section of the kedro API docs我找不到相关功能。存储经过训练的模型(例如 .pkl、.joblib、ONNX、PMML)?我错过了什么吗? 最佳答案 有pickl
我想通过命令行控制kedro参数。 根据docs ,kedro可以指定运行时参数,如下: kedro run --params key:value > {'key': 'value'} 它有效。以同样
将 kedro 与 MongoDB 或其他文档数据库结合使用的最佳实践是什么?例如,MongoDB 没有类似于 SQL 的查询语言。 Python 中的大多数 Mongo“查询”(使用 PyMongo
我有数百个 CSV 文件要类似地处理。为简单起见,我们可以假设它们都在 ./data/01_raw/ 中。 (如 ./data/01_raw/1.csv 、 ./data/02_raw/2.csv )
我启动了 ipython session 并尝试加载数据集。 我正在运行 df = Catalog.load("test_dataset") 遇到以下错误 NameError:名称“目录”未定义 我也
我目前正在使用 kedro,版本 0.15.4 和 pipenv,版本 2018.11.26。 目前,如果我想使用 Pipenv ,我必须执行以下操作(对于本示例,我希望该项目驻留在 kedro-pi
我的管道发出大量 HTTP 请求。这不是一个 CPU 密集型操作,我想旋转比 CPU 内核数量更多的进程。我该如何更改? 最佳答案 ParallelRunner 支持 max_workers 参数,但
我们使用的是 kedro 版本 0.15.8,我们以这种方式从目录中加载一个特定项目: from kedro.context import load_context get_context().cat
我在我阅读和处理的 S3 存储桶中有多个文本文件。因此,我在 Kedro 数据目录中定义了 PartitionedDataSet,如下所示: raw_data: type: Partitioned
我是一名优秀的程序员,十分优秀!