一. 自学习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后的选片策略:
交易表 | 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
反欺诈自学习 | fraud_learning | fraud | fraud | simon |
M2自学习 | m2_learning | m2 | m2 | simon |
六 训练dag与自学习dag的区别
(1)历史存量数据与增量数据之间的不同。(比如自学习dag中,要将VALID_FROM_DT、VALID_TO_DT处理成拉链表,而训练不需要)
(2)训练dag要考虑ETL,但是自学习不需要考虑,因为之前已经在先知外处理过了。(比如:字段的改变ACCPT_ID,字段的新增TIME_S、STD_INT等)
(3)训练dag中会写死指定的时间,并根据这些时间进行抽样。自学习的dag中时间的选择要根据数据组的分片按照tag时间来选择。
(4)选取的时间的范围不同,导致两个dag抽样的比率不同。
训练的dag中做了ETL处理,但是自学习DAG中不需要做的:
交易表
(1)创建STD_INT
(2)创建STD_INT3
(3)创建ACCP_ID_KEY
(4)创建ID
(5)TRACE_NBR字段的赋默认值
其他表
(1)创建TIME_S
黑样本表
(1)TRACE_NBR字段赋默认值,
欺诈表
(1)TRACE_NBR字段赋默认值
账户慢变化表
(1)创建VALID_FROM_DT_TIME,
(2)创建VALID_TO_DT_TIME,
(3)创建CREDITLIMIT_CHNG_DT_TIME
相关推荐
1. **数据流水线**:在一个大数据处理流程中,可能需要先执行数据清洗任务(主 DAG),然后根据结果触发后续的数据分析或机器学习模型训练任务(子 DAG)。 2. **错误处理**:当某个任务失败时,自动触发一个包含...
在编译原理中,DAG(有向无环图,Directed Acyclic Graph)是一种重要的数据结构,常用于表示中间代码,如三地址码或四元式。DAG优化是编译器优化的一个重要阶段,其目标是通过改进程序的结构来提高运行效率,减少...
卸除DAG(Exchange):冗余机制与操作步骤详解 在Microsoft Exchange Server环境中,数据库可用性组(Database Availability Group,简称DAG)是一种高级的邮件数据库冗余和故障转移解决方案,它允许邮件数据跨多台...
基于java进行的实现简单Dag图;附件中包含java根据配置的dagJson。1实现了filter过滤,返回指定的字段;2实现了按指定字段排序,返回指定的字段;可以自己添加mysql、Oracle、redis、hive、es、sparksql、clickhouse...
基于DAG区块链的联邦学习框架实现去中心化和个性化python源码+项目说明.zip 基于DAG区块链的联邦学习框架实现去中心化和个性化python源码+项目说明.zip 基于DAG区块链的联邦学习框架实现去中心化和个性化python源码+...
本科毕设基于DAG区块链的联邦学习框架实现去中心化和个性化源码+使用说明.zip 本科毕设。基于DAG区块链的联邦学习框架,实现了去中心化和个性化。 ## 安装 使用 conda 安装 环境 ```bash cd dagfl conda env ...
**ipld-dag-pb库详解** ipld-dag-pb是前端开发中一个重要的开源库,主要用于处理基于Protocol Buffers(protobuf)的Merkle DAG(有向无环图)节点。在分布式系统,尤其是区块链领域,如IPFS(InterPlanetary File ...
分布式任务调度(DAG服务相关)是现代企业级IT架构中的关键组成部分,尤其在大型的Service-Oriented Architecture(SOA)中起着至关重要的作用。DAG,即有向无环图(Directed Acyclic Graph),是一种数据结构,用于...
DAG(Directed Acyclic Graph)图是一种有效表示任务间依赖关系的数据结构,每个节点代表一个任务,边则表示任务之间的依赖关系。本文将探讨在网格环境下,使用DAG图进行任务调度的算法,并基于Simgrid模拟平台进行...
**有向无环图(Directed Acyclic Graph, DAG)**是一种特殊的图数据结构,其中的边是有方向的,并且不存在任何循环。在计算机科学中,DAGs被广泛应用于各种领域,如任务调度、依赖关系分析、流程图表示等。本文将深入...
**ipld-dag-cbor** 是一个前端开源库,它主要负责处理行星间链接数据(InterPlanetary Linking Data)的编码与解码工作,特别地,它关注于CBOR(Concise Binary Object Representation)格式。在分布式系统,尤其是...
【daggraph】是一款专为Android开发人员设计的开源项目,其主要功能是生成匕首(Dagger)依赖图。这个工具对于理解复杂...总的来说,daggraph不仅是一个实用的工具,也是一个深入学习Android开发和依赖注入的好教材。
在本资源中,"matlab用于精确DAG学习的自适应骨架构建.zip"是一个包含MATLAB源码的压缩包,其主要目标是介绍如何利用MATLAB进行精确的有向无环图(Directed Acyclic Graph, DAG)的学习,并通过自适应骨架构建来优化...
【标题】"DaG1.4+贴心a" 暗示这可能是一个软件或系统更新版本,其中“DaG”可能是项目或软件的缩写,而“1.4”代表其版本号,加上“+贴心a”可能意味着这是一个增强用户体验的版本,特别是增加了某些用户友好的特性...
**Laravel 开发与 Laravel DAG Manager** 在 Laravel 开发中,`laravel-dag-manager` 是一个专门针对 Laravel 框架的有向无环图(DAG)管理工具。有向无环图(Directed Acyclic Graph,简称 DAG)是一种特殊的数据...
输入任意给定的基本块,构造与之等价的DAG图,并以图形方式输出。 基本要求 输入的形式和输入值的范围 以四元式的形式输入任意给定的基本块,即一个字符串,最左边和右边是两个括号(),四个符号之间用三个逗号...
总结来说,这篇论文提出了一种新的、适用于大规模连续变量贝叶斯网络学习的策略,通过结合连续优化和反馈弧集启发式,有效地解决了DAG学习中的计算复杂性和规模限制。这种方法对于那些需要处理大量变量的领域,如...
云计算动态多DAG调度方法是在云计算环境中处理多DAG(有向无环图)任务的一种调度策略。在云计算背景下,DAG通常被用来表示多个任务及其依赖关系,因此,有效调度多DAG任务对提高云计算资源利用率和计算效率至关重要...