跳转至

我的博客

构建数据分析指标体系

原文地址:https://mp.weixin.qq.com/s/zxZuDnY2nR3yovhNI8nR3Q

1. 数据分析指标体系的定义

指标体系 不是单个指标,而是由一系列相互关联、具有逻辑层次的指标构成的有机集合。它通常以树状结构呈现,从上至下,从宏观到微观,系统地衡量业务健康状况。

指标体系不同于单个指标:

  • 单个指标:如“日活跃用户(DAU)”,只能回答“有多少”的问题。
  • 指标体系:如用户增长指标体系”,它包含:
  • 顶层(衡量大盘健康度):DAU、新增用户数、留存率
  • 中层(分析问题来源):渠道来源质量、新用户激活率、用户粘性(深度)
  • 底层(指导具体行动):具体功能的使用时长、分享次数、付费转化漏斗

信贷反欺诈策略体系在智能风控中的应用

原文地址:https://mp.weixin.qq.com/s/zxZuDnY2nR3yovhNI8nR3Q

在数字金融时代,信贷业务的快速扩张与欺诈手段的智能化升级形成了激烈对抗。根据 ACAMS《2025 年全球金融犯罪威胁报告》,85% 的金融机构认为欺诈风险是当前最严峻的挑战之一,其中深度伪造技术、合成身份欺诈和跨平台协同作案成为新型威胁的典型代表。

在这样的大背景下,构建一套系统化、智能化的反欺诈策略体系,对于金融机构而言,不仅是保障自身资产安全的关键,更是维护整个金融生态健康发展的核心任务。

本文将从技术原理、实战应用和前沿趋势三个维度,深入剖析信贷反欺诈策略的底层逻辑与实践路径,并结合建设银行潍坊临朐支行、中邮消费金融等机构的实战案例,为广大风控从业者提供一套可落地的解决方案框架。

模型开发与评估

原文地址:https://mp.weixin.qq.com/s/OiHNIv7KpfrPn_zVvjtIYA

【风控模型专题:一文了解模型变量特征工程】 一文中已讲到变量挑选和变量降维的过程,完成变量降维后,入模变量的最终挑选和模型评估是确保模型性能、稳定性和业务可解释性的关键步骤。本期还是从业务实际的角度来讨论,介绍入模变量的挑选步骤和注意事项,以及模型评估的指标和业务解释,指标不从复杂公式的角度切入,主要从业务角度理解。

本期主要涉及以下两部分内容,指标涉及KS,AUC,Lift值,PSI等:

  1. 模型开发:入模变量挑选过程
  2. 模型评估:评估指标及业务解释

    • KS指标:正负区分能力
    • AUC指标:排序能力
    • PSI指标:稳定性指标
    • Lift指标:决策指标,用于指导策略动作

Git 常见问题

1. 连接GITHUB服务失败

最近在使用 git 时,发现 git pull 时经常会出现下面的报错 kex_exchange_identification: Connection closed by remote host,导致无法正常拉取代码。

$ git pull
kex_exchange_identification: Connection closed by remote host
Connection closed by 192.30.255.113 port 22
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

两数之和

LeetCode原题地址: https://leetcode-cn.com/problems/add-two-numbers

给出两个**非空**的链表用来表示两个非负的整数。其中,它们各自的位数是按照**逆序**的方式存储的,并且它们的每个节点只能存储**一位**数字。

如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。

示例

  • 输入: (2 -> 4 -> 3) + (5 -> 6 -> 4)
  • 输出: 7 -> 0 -> 8
  • 原因: 342 + 465 = 807

两数之和

LeetCode原题地址: https://leetcode-cn.com/problems/two-sum

给定一个整数数组 nums 和一个目标值 target,请在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。

示例

给定 nums = [2, 7, 11, 15], target = 9,因为 nums[0] + nums[1] = 2 + 7 = 9,所以返回 [0, 1]

1. 暴力解法

1
2
3
4
def two_sum(nums: list[int], target: int) -> list[int]:
    for i, e in enumerate(nums):
        if target - e in nums[i + 1:]:
            return([i, i + 1 + nums[i + 1:].index(target - e)])

2. 列表推导式

1
2
3
4
5
6
def two_sum(nums: list[int], target: int) -> list[int]:
    result = [
        [i, i + 1 + nums[i + 1:].index(target - e)] 
        for i, e in enumerate(nums) if target - e in nums[i + 1:]
    ]
    return  result[0] if len(result) > 0 else None

3. 排序

思路:先对数组进行排序,然后使用双指针进行查找。

def two_sum(nums: list[int], target: int) -> list[int]:
    sorted_id_nums = sorted(range(len(nums)), key=lambda x: nums[x])
    left = 0
    right = len(nums) - 1

    while left < right:
        two_sum = nums[sorted_id_nums[left]] + nums[sorted_id_nums[right]]
        if two_sum == target:
            return [sorted_id_nums[left], sorted_id_nums[right]]
        elif two_sum < target:
            left += 1
        elif two_sum > target:
            right -= 1

4. 哈希求解

def two_sum(nums: list[int], target: int) -> list[int]:
    hashmap = {}

    for i, e in enumerate(nums):
        diff = target - e

        if diff in hashmap:
            return [hashmap.get(diff), i]

        hashmap[e] = i

5. 排序+哈希

def two_sum(nums: list[int], target: int) -> list[int]:
    hashmap = {}
    sorted_id_nums = sorted(range(len(nums)), key=lambda x: nums[x])
    left, right = 0, len(nums) - 1

    while left <= right:
        lv = nums[sorted_id_nums[left]]
        rv = nums[sorted_id_nums[right]]
        ldiff = target - lv
        rdiff = target - rv

        if ldiff in hashmap:

            return [hashmap.get(ldiff), sorted_id_nums[left]]
        else:
            hashmap[lv] = sorted_id_nums[left]

        if rdiff in hashmap:
            return [hashmap.get(rdiff), sorted_id_nums[right]]
        else:
            hashmap[rv] = sorted_id_nums[right]

        left += 1
        right -= 1

三数之和

LeetCode原题地址: https://leetcode-cn.com/problems/3sum

给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 abc ,使得 a + b + c = 0,请你找出所有满足条件且不重复的三元组。注意,答案中不可以包含重复的三元组。

示例

示例: 给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为:

1
2
3
4
[
    [-1, 0, 1],
    [-1, -1, 2]
]

无重复字符的最长子串

给定一个字符串,请找出其中不含有重复字符的最长子串的长度。

序号 输入 输出 解释
1 "abcabcbb" 3 因为无重复字符的最长子串是 "abc",所以其长度为 3。
2 "bbbbb" 1 因为无重复字符的最长子串是 "b",所以其长度为 1。
3 "pwwkew" 3 因为无重复字符的最长子串是 "wke",所以其长度为 3。请注意,你的答案必须是 子串 的长度,"pwke" 是一个子序列,不是子串。

PyCharm 连接 Hive 和 Impala

PyCharm 没有 Impala 驱动,并且默认 Hive 驱动不能适配低版本的 Hive,我们需要下载匹配的驱动进行调整后,才能连接 Apache Hive 和 Apache Impala。