`

自学习dag的改造

 
阅读更多


一. 自学习dag改造步骤:

(1)数据组+数据组合并
(2)选取时间范围的分片
(3)对账户慢变化和卡片慢变化表,要变成拉链表,即构造出VALID_FROM_DT和VALID_TO_DT
(4)对利辉提供的欺诈表,进行格式化处理。(由于利辉返回的欺诈表的ATH_DT格式是20190307,ATH_TM是121323666,所以通过字符串切割,转换成正常的格式)
(5)label字段是欺诈表拼接出来的。(由于交易表中也有该字段,所以一定要保留拼表后的label字段)
(6)保证字段有序。

  (7) 自学习的数据组的名称一定要和表名称一样,从而才能使用simon来导入数据。

         为了在自学习中控制白样本的数量。科学家的dag中,编程写上选取时间为2018-01月到2018-09月,并且抽样card_id为1%的。在未来自学习中,交易选取最近两年的,抽样为0.5%

 

二. 自学习遇到的问题:


(1)当前dag中的blacklist中没有TRACE_NBR和TIME_S字段,因为这是我们自己手动创建的,不是利辉生成的。所以要构造出来。
(2)发现3.5版本的先知,对分片了的数据组,策略是按时间选择,则在数据组合并的算子中,会导致分片选择的不全。该bug已经提交给了平台,平台预计在3.7版本中会修复。当前我们使用simon调度,所以绕过了该问题。
(3)自学习中的算子,无需创建字段或更新值,因为都是在利辉的程序中做的,只需要选择字段。

  (4)   如果dag中有任何一个数据组选片选不到数据,那么dag是无法运行的。

(5)在form.ui中如果没有配置方案名称和描述,则启动自学习会失败

 

三. 自学习使用simon后的选片策略:

表名 业务时间/数据组 选片策略 tag标记 选择的数据量
交易表 STD_INT,simon数据组 按repartition时间选择,[0,720] 最近2年
交易表2 无,普通数据组 按tag时间选择,[1,731] 数据第一次预入库时间 最近2年
欺诈表 无,普通数据组 按tag时间选择,[1,2] 数据第一次预入库时间 最近一片
卡片表 无,普通数据组 按tag时间选择,[0,到最早上传] 数据第一次预入库时间 全量
账户慢变化 无,普通数据组 按tag时间选择,[0,到最早上传] 数据第一次预入库时间 全量
卡片慢变化 无,普通数据组 按tag时间选择,[0,到最早上传] 数据第一次预入库时间 全量
Blacklist表 无,普通数据组 按tag时间选择,[1,2] 数据第一次预入库时间 最近一片

 

四. 给数据组增加tag的方法

对于场内存量的历史数据,由于是通过先知直接写入到数据组中的,都没有tag标记。目前打算是改先知的mysql表,手动的加上tag。

目前改为通过postman调用先知的api接口,添加tag。

地址:POST /telamon/v1/prns/tags

请求语法:

POST /telamon/v1/prns/tags HTTP/1.1
Host: gateway.qatest350cdh.qatest.4pd.io
User-Token: 247d746b-c3a6-4a76-9c7a-eba31638c794
Content-Type: application/json
X-Prophet-Workspace-Id: 1
Cache-Control: no-cache

[
    {
        "prn":"modelIDE/guyc-gu-1-DataSplit-212477.table",
        "tag":"business_date",
        "tagValue":"20180701"
    }
]

响应示例:

{
    "status": "0",
    "msg": "",
    "data": [
        {
            "prn": "modelIDE/guyc-gu-1-DataSplit-212477.table",
            "tag": "business_date",
            "tagValue": "20180701",
            "createdTime": 1551341909586
        }
    ]
}

五 自学习上线时,form.ui的配置信息要写入到simon

场景 alias(模型算子名称) model_group(模型组名称) model_name(模型前缀) namespace(工作区)
反欺诈自学习 fraud_learning fraud fraud simon
M2自学习 m2_learning m2 m2 simon

 

六 训练dag与自学习dag的区别

1)历史存量数据与增量数据之间的不同。(比如自学习dag中,要将VALID_FROM_DTVALID_TO_DT处理成拉链表,而训练不需要)

2)训练dag要考虑ETL,但是自学习不需要考虑,因为之前已经在先知外处理过了。(比如:字段的改变ACCPT_ID,字段的新增TIME_SSTD_INT等)

3)训练dag中会写死指定的时间,并根据这些时间进行抽样。自学习的dag中时间的选择要根据数据组的分片按照tag时间来选择。

4)选取的时间的范围不同,导致两个dag抽样的比率不同。

 

训练的dag中做了ETL处理,但是自学习DAG中不需要做的:

交易表

1)创建STD_INT

2)创建STD_INT3

3)创建ACCP_ID_KEY

4)创建ID

5TRACE_NBR字段的赋默认值

其他表

1)创建TIME_S

黑样本表

1TRACE_NBR字段赋默认值,

欺诈表

1TRACE_NBR字段赋默认值

账户慢变化表

1)创建VALID_FROM_DT_TIME,

2)创建VALID_TO_DT_TIME,

3)创建CREDITLIMIT_CHNG_DT_TIME

 

 

分享到:
评论

相关推荐

    airflow dag之间调用方法.docx

    1. **数据流水线**:在一个大数据处理流程中,可能需要先执行数据清洗任务(主 DAG),然后根据结果触发后续的数据分析或机器学习模型训练任务(子 DAG)。 2. **错误处理**:当某个任务失败时,自动触发一个包含...

    编译原理DAG的优化

    在编译原理中,DAG(有向无环图,Directed Acyclic Graph)是一种重要的数据结构,常用于表示中间代码,如三地址码或四元式。DAG优化是编译器优化的一个重要阶段,其目标是通过改进程序的结构来提高运行效率,减少...

    卸除DAG(Exchange)

    卸除DAG(Exchange):冗余机制与操作步骤详解 在Microsoft Exchange Server环境中,数据库可用性组(Database Availability Group,简称DAG)是一种高级的邮件数据库冗余和故障转移解决方案,它允许邮件数据跨多台...

    java实现简单的Dag图

    基于java进行的实现简单Dag图;附件中包含java根据配置的dagJson。1实现了filter过滤,返回指定的字段;2实现了按指定字段排序,返回指定的字段;可以自己添加mysql、Oracle、redis、hive、es、sparksql、clickhouse...

    基于DAG区块链的联邦学习框架实现去中心化和个性化python源码+项目说明.zip

    基于DAG区块链的联邦学习框架实现去中心化和个性化python源码+项目说明.zip 基于DAG区块链的联邦学习框架实现去中心化和个性化python源码+项目说明.zip 基于DAG区块链的联邦学习框架实现去中心化和个性化python源码+...

    DAG配置文档。超详细哦,亲

    ### DAG配置文档精解 #### 一、DAG(Database Availability Group)概念解析 DAG,即数据库可用性组,是Microsoft Exchange Server 2010及后续版本中引入的一个关键概念,旨在提供高可用性和灾难恢复解决方案。...

    本科毕设基于DAG区块链的联邦学习框架实现去中心化和个性化源码+使用说明.zip

    本科毕设基于DAG区块链的联邦学习框架实现去中心化和个性化源码+使用说明.zip 本科毕设。基于DAG区块链的联邦学习框架,实现了去中心化和个性化。 ## 安装 使用 conda 安装 环境 ```bash cd dagfl conda env ...

    前端开源库-ipld-dag-pb

    **ipld-dag-pb库详解** ipld-dag-pb是前端开发中一个重要的开源库,主要用于处理基于Protocol Buffers(protobuf)的Merkle DAG(有向无环图)节点。在分布式系统,尤其是区块链领域,如IPFS(InterPlanetary File ...

    dag service realated

    分布式任务调度(DAG服务相关)是现代企业级IT架构中的关键组成部分,尤其在大型的Service-Oriented Architecture(SOA)中起着至关重要的作用。DAG,即有向无环图(Directed Acyclic Graph),是一种数据结构,用于...

    DAG图网格依赖任务的调度算法

    DAG(Directed Acyclic Graph)图是一种有效表示任务间依赖关系的数据结构,每个节点代表一个任务,边则表示任务之间的依赖关系。本文将探讨在网格环境下,使用DAG图进行任务调度的算法,并基于Simgrid模拟平台进行...

    d3dag用于可视化有向无环图的布局算法

    **有向无环图(Directed Acyclic Graph, DAG)**是一种特殊的图数据结构,其中的边是有方向的,并且不存在任何循环。在计算机科学中,DAGs被广泛应用于各种领域,如任务调度、依赖关系分析、流程图表示等。本文将深入...

    前端开源库-ipld-dag-cbor

    **ipld-dag-cbor** 是一个前端开源库,它主要负责处理行星间链接数据(InterPlanetary Linking Data)的编码与解码工作,特别地,它关注于CBOR(Concise Binary Object Representation)格式。在分布式系统,尤其是...

    daggraph,面向android开发人员的匕首依赖图生成器.zip

    【daggraph】是一款专为Android开发人员设计的开源项目,其主要功能是生成匕首(Dagger)依赖图。这个工具对于理解复杂...总的来说,daggraph不仅是一个实用的工具,也是一个深入学习Android开发和依赖注入的好教材。

    matlab用于精确DAG学习的自适应骨架构建.zip

    在本资源中,"matlab用于精确DAG学习的自适应骨架构建.zip"是一个包含MATLAB源码的压缩包,其主要目标是介绍如何利用MATLAB进行精确的有向无环图(Directed Acyclic Graph, DAG)的学习,并通过自适应骨架构建来优化...

    DaG1.4+贴心a

    【标题】"DaG1.4+贴心a" 暗示这可能是一个软件或系统更新版本,其中“DaG”可能是项目或软件的缩写,而“1.4”代表其版本号,加上“+贴心a”可能意味着这是一个增强用户体验的版本,特别是增加了某些用户友好的特性...

    Laravel开发-laravel-dag-manager

    **Laravel 开发与 Laravel DAG Manager** 在 Laravel 开发中,`laravel-dag-manager` 是一个专门针对 Laravel 框架的有向无环图(DAG)管理工具。有向无环图(Directed Acyclic Graph,简称 DAG)是一种特殊的数据...

    由基本块构造DAG图的程序实现(编译原理课设报告)

    输入任意给定的基本块,构造与之等价的DAG图,并以图形方式输出。 基本要求 输入的形式和输入值的范围 以四元式的形式输入任意给定的基本块,即一个字符串,最左边和右边是两个括号(),四个符号之间用三个逗号...

    结合连续优化和反馈弧集启发式学习大型DAG_Learning Large DAGs by Combining Continuou

    总结来说,这篇论文提出了一种新的、适用于大规模连续变量贝叶斯网络学习的策略,通过结合连续优化和反馈弧集启发式,有效地解决了DAG学习中的计算复杂性和规模限制。这种方法对于那些需要处理大量变量的领域,如...

    基于任务分割的云计算动态多DAG调度方法.pdf

    云计算动态多DAG调度方法是在云计算环境中处理多DAG(有向无环图)任务的一种调度策略。在云计算背景下,DAG通常被用来表示多个任务及其依赖关系,因此,有效调度多DAG任务对提高云计算资源利用率和计算效率至关重要...

Global site tag (gtag.js) - Google Analytics