【金融风控】相关业务介绍及代码详解

news2024/11/23 21:10:48

金融风控相关业务介绍

【了解】项目整体介绍

1.风控业务和风控报表</span>
零售金融产品
相关的指标
风控建模流程
​
#2.特征工程
特征构造
特征筛选
​
3.评分卡模型构建
逻辑回归
集成学习 XGBoost LightGBM
模型评估
​
#4.样本不均衡问题/异常点检测

【了解】今日内容介绍

  • 知道常见信贷风险

  • 知道机器学习风控模型的优势

  • 知道信贷领域常用术语含义

  • 了解风控业务报表(SQL)

【理解】信贷&风控介绍

  • 信贷业务,就是贷款业务,是商业银行和互联网金融公司最重要的资产业务和主要赢利手段

    • 通过放款收回本金和利息,扣除成本后获得利润。

    • 贷款平台预测有信贷需求用户的还款情况,然后将本金借贷给还款概率大的用户

  • 信贷业务中的风险控制

    • 信贷业务中,使用信用来预支金钱,在小额贷业务中往往没有抵押物,那么贷款方就会承担一定风险(用户不还钱)

    • 风控就是对用户的信用风险进行管理与规避,对于预测信用较差的人,不向其放款,即便放款,也会是较小的贷款额度和较高的利率

    • 信贷领域有两类风险

      • 信用风险:借款人的的还款能力和还款意愿在贷款后出现问题的风险

      • 欺诈风险:借款人压根没想还钱,以诈骗为目的

    • 风控业务主要针对这两类风险

      • 信用评分系统:针对信用风险

      • 反欺诈系统:针对欺诈风险

    • 基于机器学习的人工智能风控模型对比传统人工审批

      • 人工审批:效率低,对人员业务能力要求高,不适合金融零售业务场景

      • 机器学习模型:批量,迅速,准确,同时处理大量贷款请求(几万,几十万,上百万/天)

申请中信信用卡的经验:

A,信用好,有征信纪录,没有预期,违约等,没有太多的申请纪录和拒绝的纪录,结果秒批。

B,信用很差,征信记录上有逾期,有其他网贷纪录,没有安全还款,结果秒拒。

C,信用好,但是他有很多网贷纪录,同时网贷纪录也保持按期还款,纪录良好,结果是人工打电话过来,审核通过。

综上,目前银行/互金公司,一般如上两种情况都有。

【理解】常见信贷产品及常见风险介绍

  • 信贷产品介绍

    个人信贷产品
    大额借贷房贷车贷
    小微企业贷
    小额借贷消费贷蚂蚁花呗,京东白条
    现金贷蚂蚁借呗,京东金条,微粒贷,各类网贷
    数据服务信用分服务芝麻信用分,京东小白分
    信用数据服务同盾数据,百融,集奥,大峰...
    • 现金贷

    申请借款->放款给客户->客户还款

    额度500~3000
    利率24%~36%
    期限714,30天
    放款形式借给现金,不限场景
    可选功能订单展期
    现金贷产品年化利率现金贷产品年化利率
    苏宁金融24%国美易卡34%
    蚂蚁借呗24%马上消费35%
    微粒贷24%招联金融36%
    有钱花24%桔子分期36%
    京东金条24%拍拍贷36%
    360借条24%趣店36%
    小米金融24%捷信36%
    美团生活费24%宜人贷44%
    分期乐24%玖富50%
    • 消费贷

    信用卡,花呗,白条等产品,备用金(500),有账单日,还款日

信用卡/花呗:假设账单日为每个月1号。出账单的日子。

还款日:15号是还款日。还款的日子。

13日还款,提前还款。

申请消费贷 -> 额度授信->客户使用消费贷消费

额度1000~10000
利率24%
账期30天
放款形式指定消费场景
可选功能最低还款,账单展期,账单分期,停息挂账,临时额度,备用金
  • 产品类型

    • 单期产品

    • 多期产品

    • 循环额度产品

  • 还款方式

    • 砍头息:短期产品(服务费)

    • 等额本金

      • 10w,10个月,每个月1w,1w+10w的利息,1w+9w的利息

      • 每个月还款额度依次递减

    • 等额本息

      • 利息多,本金少

      • 每个月还款是一样的,整个贷款利息要比等额本金多一些

  • 信贷领域风险类别

    • 信用风险:借款人的的还款能力和还款意愿在贷款后出现问题的风险

    • 欺诈风险:借款人压根没想还钱,以诈骗为目的

  • 常见风险形式

    • 冒名顶替,黑产骗贷

    • 多头借贷,借新还旧

      • 客户:工行信用卡,招商信用卡... n张信用卡,网贷平台1,网贷平台2,网贷平台n

      • 用新借来的钱还已有的负债: 负债变多 -> 需新借更多 -> 设法提额 -> 信用资质不够 -> 出现流动性风险 -> 逾期

      • 特点:第三方数据:多头申请记录

        APP安装:大量借款类APP

        短信:大量申请短信,提醒还款,催收短信

    • POS机套现,以少换多

      • 购买有支付牌照机构的POS机进行套现,手续费0.6%

    • 针对风控模型,制作数据

      • 使用花呗在天猫购物,对花呗账单做分期

      • 买入存金宝,一个礼拜后追加存金宝资金

      • 购买***元基金

      • 保持余额宝XXX元不动,余额宝累计收益做到 XX元

      • 购买XXXX保险

【理解】风控相关术语介绍

术语解释
DPDDay past due 逾期天数 DPD0为到期当日,DPD1为逾期一日,DPD7为逾期一周
FPDFirst time past due 首次逾期天数
F/S/T/QPD首次 二次 三次 四次 逾期天数
M1逾期 [1, 30)天 M 是英文“Months”的首写字母
M1+逾期[30, inf]天
default坏账
delinquency拖欠
flow rate流动率 一般指M1向M2,M2向M3转移的比例
bad rate坏账率 当月不良资产数/总资产数
vintage账龄分析

【实现】风控业务案例

案例背景介绍

  • 通过对业务数据分析了解信贷业务状况

  • 数据集说明

    • 从开源数据改造而来,基本反映真实业务数据

    • 销售,客服可以忽略

    • 账单周期,放款日期

    • 账单金额-实收金额 = 未收金额

    • 应付日期为还款时间

    • 账期分成两种:60天和90天

    • 实际到账日为空白,说明没还钱

  • 通过对贷后业务数据的分析要分析出如下内容

    • 每个季度账单金额和坏账率(逾期90天以上)

      • 所有未收金额/所有账单金额

      • 未收金额 = 账单金额-实收金额

    • 每个季度60天账期的入催率,90天账单的入催率

      • 入催率 = 入催金额/账单金额

    • 历史逾期天数的回款情况(回收账单数)

      • 历史逾期天数:历史有逾期,但是相对现在来说,钱已经还完了

      • 当前逾期天数:现在还欠着钱,也就是说钱没还完

代码实现

  • 加载数据

import pandas as pd
from pyecharts.charts import *
from pyecharts import options as opts
df1 = pd.read_excel('../data/业务数据.xlsx') 
#要使用原始数据构建新指标,所以保留原始数据,copy新的数据,在新的数据中创建新指标
df2 = df1.copy()
df2.head()

显示结果

销售账单状态账单周期账单金额开票金额实收金额未收金额预计付款日应付日期商务催收日期账期实际到账日开票日期客服
0s101未确认2019-0529805.0NaNNaNNaN2019-07-312019-07-312019-08-1560NaNNaNa201
1s102未确认2019-051572.6NaNNaNNaN2019-07-312019-07-312019-08-1560NaNNaNa202
2s103已确认2019-04487551.2487551.2NaN487551.22019-06-302019-06-302019-07-1560NaN05-16a203
3s104已确认2019-04378835.0378835.0NaN378835.02019-07-312019-07-312019-08-1590NaN05-08a204
4s105已确认2019-04326866.0326866.0NaN326866.02019-07-312019-07-312019-08-1590NaN05-10a205
  • 查看数据基本情况

df2.info()

显示结果

<class 'pandas.core.frame.DataFrame'>
RangeIndex: 5257 entries, 0 to 5256
Data columns (total 14 columns):
 #   Column  Non-Null Count  Dtype  
---  ------  --------------  -----  
 0   销售      5257 non-null   object 
 1   账单状态    5257 non-null   object 
 2   账单周期    5257 non-null   object 
 3   账单金额    5257 non-null   float64
 4   开票金额    5010 non-null   float64
 5   实收金额    4470 non-null   float64
 6   未收金额    5010 non-null   float64
 7   预计付款日   5256 non-null   object 
 8   应付日期    5257 non-null   object 
 9   商务催收日期  5257 non-null   object 
 10  账期      5257 non-null   int64  
 11  实际到账日   4387 non-null   object 
 12  开票日期    4996 non-null   object 
 13  客服      5257 non-null   object 
dtypes: float64(4), int64(1), object(9)
memory usage: 575.1+ KB

df2.describe()

显示结果

账单金额开票金额实收金额未收金额账期
count5.257000e+035.010000e+034.470000e+035.010000e+035257.000000
mean4.073241e+044.096896e+044.082419e+044.684636e+0364.539661
std8.176172e+048.007245e+047.970628e+042.888464e+0415.622765
min0.000000e+002.500000e+010.000000e+000.000000e+000.000000
25%5.103000e+035.300000e+035.112250e+030.000000e+0060.000000
50%1.436500e+041.486560e+041.434000e+040.000000e+0060.000000
75%4.178000e+044.220250e+044.170750e+040.000000e+0075.000000
max1.508796e+061.356215e+061.301665e+061.277098e+0690.000000
  • 数据处理,填充缺失值,将日期时间类型转换成datetime类型

# 获取最大的日期,作为当前时间
today_time = pd.to_datetime(df2.实际到账日.fillna('0').max())

#给缺失值填充0
df2['实收金额'] = df2.实收金额.fillna(0)
df2['开票金额'] = df2.开票金额.fillna(0)
df2['未收金额'] = df2.未收金额.fillna(0)

#把时间类型转换为datetime类型
df2['账单周期'] = pd.to_datetime(df2.账单周期)
df2['应付日期'] = pd.to_datetime(df2.应付日期)

df2['实际到账日'] = pd.to_datetime(df2.实际到账日).fillna(today_time)
  • 为了后续计算,在原始数据基础上构造新的字段:是否到期,是否到期90天,未收金额2(校验原始数据中的未收金额),历史逾期天数,当前逾期天数

df2['是否到期'] = df2.apply(lambda x : 0 if x.应付日期 > today_time else 1,axis=1)

#map可以看做是apply,效果类似
df2['是否到期90天'] =  ( today_time - df2.应付日期 ).map(lambda x : 1 if x.days >= 90 else 0)

df2['未收金额2'] =  (df2.账单金额 - df2.实收金额)

df2['历史逾期天数'] = df2.apply(lambda x : (x.实际到账日 -  x.应付日期).days if x.未收金额2 == 0  else  (today_time - x.应付日期).days,axis=1)

df2['当前逾期天数'] = df2.apply(lambda x : (x.历史逾期天数) if x.未收金额2 > 0  else 0 ,axis = 1)
  • 查询实际到账日期字段得知当前最近的到账日为2019年5月17日,如果以2019年5月17日为观察点,有些贷款还没到还款日,没法统计DPD90的数据,所以,这里只统计2019年之前的情况,下面将对应时间段的数据取出

df3 =df2.copy()
#创建’账单季度‘字段,将日期转换成季度,to_period函数可以转换为季度信息
df3['账单季度'] = df3['账单周期'].map(lambda x : x.to_period('Q'))
#提取2017年3季度到2018年4季度数据
df3 = df3[(df3['账单季度']<='2018Q4') & (df3['账单季度']>='2017Q3')]
df3.shape

显示结果

(3856, 20)
  • 按照季度统计账单金额,到期金额,和逾期金额

#账单金额
fn1 = df3.groupby('账单季度')[['账单金额']].sum()
fn1.columns = ['账单金额']
fn1

显示结果

账单金额
账单季度
2017Q38247952.62
2017Q411643604.99
2018Q117149674.79
2018Q231097661.29
2018Q338292071.12
2018Q451963089.64
#90天到期金额
df4 = df3[(df3.是否到期90天 == 1)]
fn2 = df4.groupby('账单季度')[['账单金额']].sum()
fn2.columns = ['到期金额']
fn2

显示结果

到期金额
账单季度
2017Q38247952.62
2017Q411643604.99
2018Q117149674.79
2018Q231097661.29
2018Q338292071.12
2018Q428265677.59
#当前逾期90+金额
df4 = df3[(df3.是否到期90天 == 1)]
fn3 = df4.groupby('账单季度')[['未收金额2']].sum()
fn3.columns = ['当前逾期90+金额']
fn3

显示结果

当前逾期90+金额
账单季度
2017Q363883.0
2017Q457380.0
2018Q164283.0
2018Q2106930.0
2018Q3412920.1
2018Q4304183.0
  • 合并数据计算坏账率

dfs = [fn1,fn2,fn3]
final1 = pd.concat(dfs,axis=1)
final1

显示结果

账单金额到期金额当前逾期90+金额
账单季度
2017Q38247952.628247952.6263883.0
2017Q411643604.9911643604.9957380.0
2018Q117149674.7917149674.7964283.0
2018Q231097661.2931097661.29106930.0
2018Q338292071.1238292071.12412920.1
2018Q451963089.6428265677.59304183.0
final1['90+净坏账率'] = round(final1['当前逾期90+金额'] / final1.到期金额,3)
final1

显示结果

账单金额到期金额当前逾期90+金额90+净坏账率
账单季度
2017Q38247952.628247952.6263883.00.008
2017Q411643604.9911643604.9957380.00.005
2018Q117149674.7917149674.7964283.00.004
2018Q231097661.2931097661.29106930.00.003
2018Q338292071.1238292071.12412920.10.011
2018Q451963089.6428265677.59304183.00.011
  • pyecharts绘图

bar = (
    Bar()
    .add_xaxis(list(final1.index.values.astype(str)))
    .add_yaxis(
        "账单金额",
        list(final1.账单金额),
        yaxis_index=0,
        color="#5793f3",
    )
    .set_global_opts(
        title_opts=opts.TitleOpts(title="90+净坏账率"),
    )
    .extend_axis(
        yaxis=opts.AxisOpts(
            name="90+净坏账率",
            type_="value",
            min_=0,
            max_=0.014,
            position="right",
            axisline_opts=opts.AxisLineOpts(
                linestyle_opts=opts.LineStyleOpts(color="#d14a61")
            ),
            axislabel_opts=opts.LabelOpts(formatter="{value}"),
        )
    )
)
line = (
    Line()
    .add_xaxis(list(final1.index.values.astype(str)))
    .add_yaxis(
        "90+净坏账率",
        list(final1['90+净坏账率']),
        yaxis_index=1,
        color="#675bba",
        label_opts=opts.LabelOpts(is_show=False),
    )
)
bar.overlap(line).render()

显示结果

  • 计算每个季度的60天账单金额、60天入催金额,90天账单金额、90天入催金额

#60天账期的账单金额
df4 = df3[(df3.账期 == 60)]
fn1 = df4.groupby('账单季度')[['账单金额']].sum()
fn1.columns = ['60天账期的账单金额']
#60天账期的入催金额
df4 = df3[(df3.账期 == 60)]
fn2 = df4.groupby('账单季度')[['未收金额2']].sum()
fn2.columns = ['60天账期的入催金额']
#90天账期的账单金额
df4 = df3[(df3.账期 == 90)]
fn3 = df4.groupby('账单季度')[['账单金额']].sum()
fn3.columns = ['90天账期的账单金额']
#90天账期的入催金额
df4 = df3[(df3.账期 == 90)]
fn4 = df4.groupby('账单季度')[['未收金额2']].sum()
fn4.columns = ['90天账期的入催金额']
  • 计算入催率

dfs = [fn1,fn2,fn3,fn4]
final2 = pd.concat(dfs,axis=1)
# final2 = fn1.merge(fn2,on='账单季度').merge(fn3,on='账单季度',how='left').merge(fn4,on='账单季度')
final2['60天账期入催率'] = round(final2['60天账期的入催金额'] / final2['60天账期的账单金额'],3)
final2['90天账期入催率'] = round(final2['90天账期的入催金额']/final2['90天账期的账单金额'],3)
final2

显示结果

60天账期的账单金额60天账期的入催金额90天账期的账单金额90天账期的入催金额60天账期入催率90天账期入催率
账单季度
2017Q34854770.9436983.02769264.01900.00.0080.001
2017Q46737327.9952750.03921491.00.00.0080.000
2018Q112106356.7962460.04244304.0800.00.0050.000
2018Q219234086.8713590.08427775.00.00.0010.000
2018Q322830710.42380265.19835629.08235.00.0170.001
2018Q426337959.52584789.517706430.0325141.00.0220.018
  • pyecharts绘图

line = (
    Line()
    .add_xaxis(list(final1.index.values.astype(str)))
    .add_yaxis(
        "60天账期入催率",
        list(final2['60天账期入催率']),
        yaxis_index=0,
        color="#675bba",
        label_opts=opts.LabelOpts(is_show=False),
    )
    .set_global_opts(
    title_opts=opts.TitleOpts(title="不同账期入催率"),
    )
    .add_xaxis(list(final1.index.values.astype(str)))
    .add_yaxis(
        "90天账期入催率",
        list(final2['90天账期入催率']),
        yaxis_index=0,
        color="#d14a61",
        label_opts=opts.LabelOpts(is_show=False),
    )
)
line.render()

显示结果

  • 历史逾期天数的回收情况(回收账单数)

df5 = df3[(df3.未收金额2 == 0)&(df3.是否到期 == 1)].copy()
#使用cut,讲数据按照逾期天数分箱,然后添加分箱之后结果标签
df5['历史逾期天数'] = pd.cut(df5['历史逾期天数'],bins=[-999,0,5,10,15,20,30,60,90,999],right=True,
                       labels=['0','1-5','6-10','11-15','16-20','21-30','31-60','61-90','91+'])
final3 = df5.groupby('历史逾期天数')[['账期']].count()
final3.columns = ['回收账单数']
final3

显示结果

回收账单数
历史逾期天数
02400
1-5358
6-10235
11-15215
16-2092
21-30189
31-60156
61-9060
91+88
  • pyecharts绘图

ydata = final3['回收账单数'].values.tolist()
bar = (
    Bar()
    .add_xaxis(list(final3.index.values.tolist()))
    .add_yaxis("收回账单数",ydata,yaxis_index=0,color="#675bba")
    .set_global_opts(
    title_opts=opts.TitleOpts(title="不同逾期天数的已收回账单数"),
    )
)
bar.render()

显示结果

业务解读

  • 从数据中看出,在2018年Q2季度之前,运营策略比较保守,坏账金额和入催率都比较低,

  • 2018年Q2之后,有可能是由于运营策略调整,给更多的人放贷,但坏账率和入催率均在3%一下,在合理范围内

  • 不同逾期天数收回账单的数据看,30天内能收回绝大部分账单

【理解】信贷业务涉及部门

市场:获客 (新客, 老客)

风控:把逾期率控制在合理范围,尽可能提高通过率

催收:回款(内催 , 外催)

小结

  • 知道常见信贷风险

    • 信用风险

    • 欺诈风险

  • 知道机器学习风控模型的优势

    • 批量,迅速,准确,同时处理大量贷款请求

    • 在零售信贷业务场景下,与人工审核相比优势显著

  • 知道信贷领域常用术语含义

    • DPD 逾期天数

    • FPD 首次逾期天数

    • bad rate 坏账率

    • M1 逾期一个月以内

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2234895.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

了解数据库设计中的反规范化

反规范化是指通过增加冗余数据来提高数据库的读取效率。也就是说,反规范化通过在表中增加冗余字段来减少数据库中的表连接,以提高查询速度。规范化和反规范化是关系型数据库设计中的两个重要方面,它们分别代表了数据组织方式上的两个不同方向。规范化是为了减少数据冗余和提…

Perforce《2024游戏技术现状报告》Part2:游戏引擎、版本控制、IDE及项目管理等多种开发工具的应用分析

游戏开发者一直处于创新前沿。他们的实践、工具和技术受到各行各业的广泛关注&#xff0c;正在改变着组织进行数字创作的方式。 近期&#xff0c;Perforce发布了《2024游戏技术现状报告》&#xff0c;通过收集来自游戏、媒体与娱乐、汽车和制造业等高增长行业的从业者、管理人…

JAVA基础:数组 (习题笔记)

一&#xff0c;编码题 1&#xff0c;数组查找操作&#xff1a;定义一个长度为10 的一维字符串数组&#xff0c;在每一个元素存放一个单词&#xff1b;然后运行时从命令行输入一个单词&#xff0c;程序判断数组是否包含有这个单词&#xff0c;包含这个单词就打印出“Yes”&…

通过 SSH 连接远程 Ubuntu 服务器

目录 安装 SSH 服务器允许 SSH 通过防火墙远程 SSH 连接&#xff08;选&#xff09;重启向日葵 安装 SSH 服务器 更新软件包列表 sudo apt update安装 OpenSSH 服务器 sudo apt install openssh-server检查 SSH 服务器状态 sudo systemctl status ssh如果 SSH 服务器正在运…

http请求响应详解

http介绍 http协议&#xff1a; Http”协议称为是“超文本传输协议”&#xff08;HTTP-Hypertext transfer protocol&#xff09;。它定义了浏览器怎么向万维网服务器请求万维网文档&#xff0c;以及服务器怎么样把文档传送给浏览器。 https协议&#xff1a; 传统的HTTP协议…

使用 OpenCV 实现图像的透视变换

概述 在计算机视觉领域&#xff0c;经常需要对图像进行各种几何变换&#xff0c;如旋转、缩放和平移等。其中&#xff0c;透视变换&#xff08;Perspective Transformation&#xff09;是一种非常重要的变换方式&#xff0c;它能够模拟三维空间中的视角变化&#xff0c;例如从…

Oracle视频基础1.4.4练习

1.4.4 [dbs] 删干净上次创建的bbk ll rm -f *dbf ll rm -f spfilebbk.ora clear ll创建bbk的pfile&#xff0c;准备对应的目录 ll strings spfilewilson.ora | more strings spfilewilson.ora > initbbk.ora :%s/wilson/bbk :%s/*\.//g :wq ll vi initbbk.ora####### 创…

【spring】Cookie和Session的设置与获取(@CookieValue()和@SessionAttribute())

&#x1f490;个人主页&#xff1a;初晴~ &#x1f4da;相关专栏&#xff1a;程序猿的春天 获取Cookie 使用 Servlet 获取Cookie&#xff1a; Spring MVC 是基于 Servlet API 构建的原始 Web 框架&#xff0c;也是在 Servlet 的基础上实现的 RestController RequestMapping…

神经网络基础--什么是神经网络?? 常用激活函数是什么???

前言 本专栏更新神经网络的一些基础知识&#xff1b;案例代码基于pytorch&#xff1b;欢迎收藏 关注&#xff0c; 本人将会持续更新。 神经网络 1、什么是神经网络 人工神经网络&#xff08; Artificial Neural Network&#xff0c; 简写为ANN&#xff09;也简称为神经网络…

030集——分组法——C# CAD二次开发

重叠的图行进行分组&#xff0c;效果如下&#xff1a; 纵向投影重叠&#xff08;横向移动冲突&#xff09;可以分组: 纵向冲突也可以分组&#xff1a; 也可根据颜色不同分组&#xff1a; 部分代码如下&#xff0c;完整代码见文章下方名片 public class Class1{[CommandMethod(…

Edge 浏览器插件开发:图片切割插件

Edge 浏览器插件开发&#xff1a;图片切割插件 在图片处理领域&#xff0c;按比例切割图片是一个常见需求。本文将带你开发一个 Edge 浏览器插件&#xff0c;用于将用户上传的图片分割成 4 个部分并自动下载到本地。同时&#xff0c;本文介绍如何使用 cursor 辅助工具来更高效…

关于圆周率

关于圆周率 大约20年前的2005年&#xff0c;我在上大学的时候&#xff0c;网上流传这样一段程序&#xff0c;被称之为“外星人计算圆周率程序”。程序如下&#xff1a; long a 10000, b, c 2800, d, e, f[2801], g; main() {for (; b - c;) f[b] a / 5; for (; d 0, g …

【docker】6. 镜像仓库/镜像概念

Docker Registry&#xff08;镜像仓库&#xff09; 什么是 Docker Registry 镜像仓库 (Docker Registry) 负责存储、管理和分发镜像&#xff0c;并且提供了登录认证能力&#xff0c;建立了仓库的索引。 镜像仓库管理多个 Repository&#xff0c; Repository 通过命名来区分。…

debian系统安装qt的时候 显示xcb相关文件缺失

如果是安装之后的问题 我们可以选择使用ldd的命令查看当前依赖的so那些文件确实 ldd /home/yinsir/Qt/5.15.2/gcc_64/plugins/platforms/libqxcb.so 本人在进行打包的时候 出现则会个报错 ERROR: ldd outputLine: “libxcb-util.so.1 > not found” ERROR: for binary: “/…

怎么查看navicat的数据库密码

步骤1:打开navicat连接数据库工具&#xff0c;顶部的文件栏-导出结果-勾选导出密码-导出 步骤2&#xff1a;导出结果使用NotePad或文本打开&#xff0c;找到&#xff0c;数据库对应的的Password"995E66F64A15F6776“”的值复制下来 <Connection ConnectionName"…

清华大学提出Mini-Omni2:开源多模态模型,功能与GPT-4o媲美!

&#x1f310; 在人工智能领域&#xff0c;多模态模型的发展正如火如荼。今天&#xff0c;我们要介绍的是由清华大学提出的Mini-Omni2&#xff0c;这是一个开源的多模态语言模型&#xff0c;它在功能上与GPT-4o相媲美&#xff0c;能够理解和生成视觉、听觉和文本内容&#xff0…

webrtc前端播放器完整案例

https://download.csdn.net/download/jinhuding/89961792

网管平台(进阶篇):如何正确的管理网络设备?

网络设备作为构建计算机网络的重要基石&#xff0c;扮演着数据传输、连接和管理的关键角色。从交换机、路由器到防火墙、网关&#xff0c;各类网络设备共同协作&#xff0c;形成了高效、稳定的网络系统。本文将详细介绍网络设备的种类&#xff0c;并探讨如何正确管理这些设备&a…

深入理解 Spring AOP:面向切面编程的原理与应用

一、概述 AOP&#xff08;Aspect Orient Programming&#xff09;是一种设计思想&#xff0c;是软件设计领域中的面向切面编程&#xff0c;它是面向对象编程(OOP)的一种补充和完善。它以通过预编译方式和运行期动态代理方式&#xff0c;实现在不修改源代码的情况下给程序动态统…

ML 系列:机器学习和深度学习的深层次总结( 19)— PMF、PDF、平均值、方差、标准差

一、说明 在概率和统计学中&#xff0c;了解结果是如何量化的至关重要。概率质量函数 &#xff08;PMF&#xff09; 和概率密度函数 &#xff08;PDF&#xff09; 是实现此目的的基本工具&#xff0c;每个函数都提供不同类型的数据&#xff1a;离散和连续数据。 二、PMF 的定义…