如何推导用户信用状态从守信到失信转变的判定指标
3个月内用户守信转失信判定指标生成方法
核心判定逻辑
目标指标仅需要识别是否存在「前一个时间节点为守信(1)、后一个相邻时间节点为失信(0)」的情况,存在则标记为1,不存在则标记为0。
实现步骤
- 第一步:按时间升序对齐用户的三个时间节点状态,依次记为
s1(2016-01-31状态)、s2(2016-02-29状态)、s3(2016-03-31状态) - 第二步:计算两组相邻节点的状态差:
diff1 = s2 - s1、diff2 = s3 - s2 - 第三步:如果
diff1 == -1或diff2 == -1,指标赋值为1,否则赋值为0
样例验证
你给出的样例数据如下:
2016-01-31 1
2016-02-29 1
2016-03-31 0
计算可得diff1 = 0、diff2 = -1,符合判定条件,最终指标值为1。
通用代码实现(Python)
如果需要批量处理多用户数据,可以参考以下实现逻辑:
def has_trust_to_break(status_list): # status_list 为按时间升序排列的用户状态序列 for idx in range(1, len(status_list)): if status_list[idx-1] == 1 and status_list[idx] == 0: return 1 return 0 # 样例测试 print(has_trust_to_break([1,1,0])) # 输出1 print(has_trust_to_break([1,1,1])) # 输出0 print(has_trust_to_break([0,1,0])) # 输出1
内容的提问来源于stack exchange,提问作者Rinat Devyatyarov
相关产品推荐
相关产品推荐

