数学建模社区-数学中国
标题:
2020全国大学生数学建模比赛C题总结
[打印本页]
作者:
杨利霞
时间:
2021-5-24 15:54
标题:
2020全国大学生数学建模比赛C题总结
2020全国大学生数学建模比赛C题总结
+ I1 h4 \* j; G, n8 |/ Z
7 o) [. Y2 u7 p8 _/ x
首先瞎逼逼一番,吐槽一下题目和比赛经历,对这部分不感兴趣的可以跳过:
) t n+ r0 B* z3 u; m$ W* ~
虽然我是周六下午才开始做的… 总的比赛时间不到两天,不过好在一个人,不怕拖队友。至于题目,我第一眼就喜欢上了 C 题。我想,恐怕很多人都喜欢 C 题吧,因为赛后做了一个总结,发现学校选择 C 题的,比选 B、A 题的加起来还要多。
! B7 O* Z4 M. b9 H2 y8 i; y% Q
/ E1 N+ m$ k7 H! j" o' W8 e
5 Y% Y+ l! j* l2 _+ y2 a
为什么选择 C 题呢?因为有数据处理…
]/ n, W3 [# }% z
: s) N, s- D1 Y; b0 a1 Q2 I5 Z5 U
9 K( L9 {" ]) F1 P- y3 h" W
所以无论它多难,我都选它,哈哈哈。
7 {+ ^7 E5 Q! U- K, h4 P3 r; k5 K
; o6 O' q+ v( L1 l% K
; K9 n+ G/ x8 b+ u0 B
仔细看这一题,它与机器学习好像有区别啊。说起机器学习,我会想到:
: `" D/ {8 \1 n, w6 H4 P# w
8 }9 G8 Y3 X; q8 E6 y. c2 ^
- j. S5 h& [% P V, b
分类
z1 L5 h, d0 \. \
回归
: m) l) C- ]( ^
拟合
0 h) K+ j0 c1 l! ^
预测
7 O, Y9 I- o; N' P
但是,这题… 好像不是一种,用数据拟合,然后再预测的问题啊(机器学习的通俗定义)
3 N$ V% E D6 `; h
: S! ]7 H$ t& f+ e5 W* p1 g" g" l
3 _! y* P# q. a4 L. v. Y9 L$ M
好吧,选都选了,只能硬着头皮上了。
1 L4 l& R& `9 t5 x5 e# e {0 F
2 x0 ~& |- v7 ~2 u
1 I; Y- W1 C8 V2 L3 A5 S7 P0 P% w2 T
问题分析
# o9 h; P' E" t0 t
根据附件1,定制一个量化的信贷风险;
; L. N5 O$ n2 R6 D! @& X, X
为银行制定一个信贷策略
) @5 X7 j8 P4 F
有突发状况是,上面两个问题应该怎么重新规划?
9 q* K _! M2 v
三个问题,我们分别称之为问题一、问题二、问题三。
4 e' `7 s l# @5 j6 ~9 Z7 A
8 ]& P3 E. {$ Z, i0 m
' o2 `; d+ t& N& R
数据说明
4 l9 z# G% l5 {$ F. F7 y
附件1:sheet1:给出了企业的代号,企业有无违约的情况,信用等级
/ P6 p* O, e8 i1 s% a" ]! Y- Q, N
sheet2/3:给出了企业的大约 2 年的进/销 量的发票数据,
9 n2 _6 Y9 i/ l- c1 z
附件2:给出了企业的大约 2 年的进/销 量的发票数据。没有给是否违约、没有给信用等级
( e& A3 g S6 C7 ^
附件3:给出了银行的利率,以及相应利率下,不同信用等级的企业,不愿意贷款的概率(原作是比率,我感觉能用比率近似概率)
5 V$ c' M% v" z7 T0 R! [+ _
( `( n$ y" d9 D# J m
* Y; L. H( e$ Y4 T
问题一求解
! \+ A$ }5 I4 c' J5 c; u
你们看,附件1 比 附件 2 多了什么?信用等级、以及有无违约记录。而问题二是要我们求附件二中的企业的信用风险的。所以,仔细一想,肯定是在暗示我们,1、用进/销 量数据,来评价企业的信贷风险。2、信贷风险的量化指标,需要建立在企业信用等级、是否违约两个变量上。3、设法建立进/销 量数据与信用等级、是否违约的关系。
p# z7 @2 h& C
3 U+ s# X7 t2 b5 E! Y
( O# H. k* p( ]) T( r) [
好了,第一步咱们清楚了,就是要建立信贷风险与信用等级、是否违约的联系咯~
K- E/ ^. m% `8 Z
$ H4 T5 w0 J* O; Y- N
) U$ \- ^1 }% J, ~: O
我查阅了一些文献,虽然说得都很复杂,但概括来说,就是一句话,我银行借钱给你,你还的起吗?这就是信贷风险了(说得比较通俗了,有点对不起学金融的同学们)
* K" b: ^# D2 F
9 }9 u0 Q+ b! _4 o# f& a
, X6 n7 m+ m/ k0 b$ ^- o
于是,我将信贷风险定义为:企业违约(赖账不还)的概率。
; n7 ~. F3 w, N( {; n4 i/ B
. F. s3 R- m! U' l1 q( ?0 k8 F" p
- d- L4 n8 S7 y/ g9 R+ C* x
而机器学习的知识告诉我们,分类模型除了能够自动判断个体的类别之外,还能够计算出个体,属于该类别的概率。于是,这不就是一个机器学习问题了吗?
1 f) y- a; ~6 J/ _$ e2 \2 H
& f$ ]! c* M- C* o' X
. B$ a: u' @$ p0 Q) T
这个问题就是:根据进/销 量数据,训练一个分类模型,然后将模型的输出,确切的说,概率输出,作为信贷风险,Over。
# H3 r, O4 C+ W1 f
" ^" s! `! B: A& ^2 h! o
* r. B" e3 ?- M+ K# C- h- y! s
但是,进/出 量数据是时序性的呀,如果按照上面的思路,那肯定是要一个企业作为一个样本个体。可是…,这个样本个体也太奇怪了吧,是一个时序数据,哇,都能构成一个表格了。。。
, K! b; b. n- _7 }$ V; b3 i
; ^7 m( Q4 A6 l1 O7 R
7 G9 |: C% ]. _6 ^! D& ]6 ?
按照上面的说法,这有点接近自然语言处理了,也就是一片文章,对应一个类别。这里是一张时序数据表,对应一个类别。天!麻烦!
: |; g v( N6 Z% N4 f& @+ L
2 b6 z3 _- V9 F% b1 {! q
4 y1 b N R6 K# j& ^1 h) X
有些大佬可能已经豁然开朗,用 NLP 来解决啊!!!
# H6 U, V, J8 E- T# e4 u
9 z8 _8 K* k% {
+ [* p3 s l' V: K7 _
否也,这种跨越对我来说,有如天堑(虽然我是搞 NLP 的)
- N" o' K1 L0 E+ v! z0 W" g
7 G; L% v* m( N# L# Q
: V# M- ?4 C( Q9 Z# G7 Y
因此,我决定,转换一下我们的数据集。
) k: F! }& ]( s7 U3 h' ? T/ S! g9 N
6 h& m# L7 S, T1 g
, ]. @3 t# ~; N! I% x: a
数据处理
( g0 V/ u4 B' x0 o* o3 s
首先,如果按照上面的思路,用机器学习模型的输出,作为信贷风险。那么就要让数据变得简单一点。
5 A y4 Z& p) c2 a" ~
: N) H% }+ p5 M$ x L
. z) O7 G+ n* _( c
原始数据是这样的:多个企业,一个企业包含了大约 2 年的进/销数据,一个企业对应一个标签(是否违约)。
. h5 l) j; O7 ]+ ]
0 m8 x- I% T4 O- r7 `5 ^
' h! ]; ^7 h l& d0 C3 @( h
我们希望的数据是这样的:一个企业,对应一个向量(行列都行),并对应一个标签,这样才能用机器学习模型。
- h$ A( y$ Q5 L, `8 F$ c
9 s) x$ q( Y/ q: G% E
, ~3 j$ j5 k) S( z W9 g
因此,必须将时序数据弄掉!!!
# `, F* b& e$ T3 w
& a. W7 X5 J8 f# n( ^( u
5 i. ?9 X8 Z- ? o+ K3 z
由于数据是按天给出的,首先,为了简化,我们以 30 天为单位,将数据合并!
$ r1 _, S. @; U5 V
% @: X6 } e6 \- Z
7 ]. K- r; K( z8 _
然后,用一条曲线(我用的是 9 次多项式),拟合时序数据。有了曲线之后,我们不就可以用函数的系数,来替换原始数据了么?
: r& x( z0 z) I) y' r! M
& J0 T7 n2 d( ?* s+ g
# U) A8 ^/ N; i! X' W+ }' Y2 w
这样,一个企业的数据,就从对对应表格(时序数据表),转换为对应函数的系数(向量)了。
6 d9 e5 o0 T1 }; v) q# l
( O5 R# N) l2 n# S. s
2 G0 {3 _; x$ a
等一等,误差怎么办?用曲线拟合数据,肯定有误差的嘛。
4 U; a# u; w/ D! o) b" r
]" s7 {8 D# z2 J4 D
7 p" m2 I2 [2 ?* X+ T2 D
好,误差我们是用什么来度量的? 常用的有 R 方对吧。那就计算出 R 方,然后把 R 方也作为企业的数据之一,不就得了。
- t$ E, f6 |6 s0 W
! d" w! C: ?, r; R9 C: M( b6 T
+ W2 l3 r* O- p" s5 }
可能有人犹豫了,可以吗?
X& ~6 B0 _% U8 u9 Z8 ^4 T
( I" e- J+ c8 [( S4 p
4 g$ O4 t1 H& S+ ]- \" J
好,拟合的曲线可以一定程度代表企业进/销的基本规律,没问题吧?
+ Q" e1 r7 k# I" s H
$ y5 H, W2 Y9 }: Z$ k+ F5 N
' P- @6 }+ i7 m) m7 W2 u3 d
R 方计算了误差。换个角度想,可以代表企业的进/销,偏离拟合曲线的程度,对吧?
" m* L0 m) L: C$ f3 Y7 C) S) G
: P$ d% p' }/ A5 m1 I+ L- g) q* w! P
- a( z; ~" s' U$ `( Q
这不就得了么?
5 g1 t. ~0 {2 O! r
V$ o2 j% e! p
: j6 V& k; O) @2 U5 G0 @2 R
当然,误差是肯定会有的。但至少经过这样的计算,解决了我们的燃眉之急吧。为了方便讲解,我们将这个数据成为 一数据 吧。
6 F! l# T, g' v. v& m L
7 Q' D3 W! y9 z, M+ x
: L, u; m+ D( ]9 I. x8 ~ d
有人还会问,信用等级呢?我们不能忽视这个数据吧?da si ka ni。
' M) n7 R( _+ Z, n5 H+ s1 m6 W
; Q0 l7 x% W k" j Q
% p9 n* ]. M% W
且看我怎么处理,我们可以像 NLP 的 Word2Vec 那样。我们用一数据为输入、信用等级为输出,训练一个模型,然后用模型的参数,或者其他东西作为 二数据 不就得了么?
' s! p& v/ L) {; z" B
1 o( L& ^" Y; R: p1 O- q3 ?% ]
7 Q% U( R, S' r" d
之后再用 二数据 为输入,建立一个机器学习模型,用来计算企业是否违约的概率。 Case Close!
' B" [6 a' Y9 L/ y3 ^& n
2 C9 K/ V& D6 w! {
; E& V7 H6 U$ F, I
问题二 求解
- s! w+ Y" o* y9 U' ~9 E
制定银行信贷策略是吧?
" Q9 t. A3 T! _% h) u
7 N' ?8 J5 w% q1 K" @/ d
. f& x( O: f. A
怎么制定?无非是利率、期限、额度咯~
& x7 J& y. m7 n
L1 m* w! ~! h; s% s% i
2 ^5 q" B p1 Q9 w. c& R
期限我们不管,因为没依据。利率和额度紧密相连,都是钱的问题嘛。
D R! J' B/ W4 R2 |. K
' [7 I, ^$ D; b) f6 Q
]9 I8 b( ]4 B7 j& k
让我们想象银行是为了干什么的。商业银行肯定是为了赚钱啊,哈哈哈哈。
% M) _# L; S5 j( V9 \
% H" U9 K% m5 E9 P; k, a) h
; Y! l% P- [4 w% j" m' x
于是,问题转换为,求解一个优化问题,即选择合适的利率、额度,使得银行的利润最高。
: z# i9 b2 b7 p
6 S8 S* ~; ]% N! l) D
0 I4 Z8 z0 l5 Y# W; m
so easy?ok?
0 ^ U- m. A% G7 q S
% S E3 K6 u' Q) @' G9 h
& L4 E L8 o* j- v$ r! J% x
于是,最根本的问题,就要对银行的利润建模咯~~
( S' V% z* X$ L9 |
; i5 G* ^6 A) p) Q/ l
) g3 o; {. |$ \
利润的期望 = (1+利率)^(时间) X(企业不违规的概率)X(企业愿意借钱的概率)
, m: K3 x. q# w; l3 g
! k# q1 j: _3 B* y! q$ K" o
9 ?, [5 ~9 t' E
用期望近似利润,case close,say goodbye。
# s1 v# j! D0 w, h1 d, i. F
2 w+ I# q8 m! E" o; W: d, s- z
* d* Y" X8 G2 B' x+ b: k# S* v5 r
至于优化问题,加上题目约束后,就是一个约束优化问题了,怎么求解?方法实在太多了。我们训练机器学习模型,不就是求解一个优化问题吗?作为弄机器学习的,你不会连求解一个优化问题都不会吧?
3 I! l1 f! x, ^- j
1 r$ z% P& l( B
5 x$ r3 d" j' t5 p
有的人会再次反驳:可我们这次求的是一个约束优化问题啊!
' h$ |/ j/ s* E- l
# ?& [$ b: I3 H2 f
4 B* X+ I2 n, N: n' t* v' |
我会答:你用罚函数的方法,不就可以将约束优化问题,转化为无约束优化问题了吗?
8 @& ?2 Q5 |3 m, \
, S; W- c2 S; k" n" e
* x2 r: g K q
问题三
% L4 b8 E* U3 |7 l/ P2 l# w
突发状况会影响企业的运营状况,所以我们只要将 一数据 的 R 方微调一下,不就得了吗?????
- i' }/ H( f5 N% ?7 Z
" `6 A+ Q' q. `# H
$ I! u ^+ E4 E4 |* \
有点简答吧?
% W4 l5 V( k! G* Y
{0 s9 @9 p/ a
: a, h( `- r+ `% @: L
最终总结
9 D/ t2 _" t" ?" `0 ^
C 题,似乎是最简单的。但处理数据,比较麻烦,可能很多人卡在这里的吧。最难的一个点就是:如何将一个时序表,对应到一个标签的问题了吧。
. h' N; q: C: g
& y1 n) D; `& \0 m2 g# z
9 w6 F5 B7 ] X) ?
好了,最后一次数学建模比赛了,大家江湖再见吧。
. k3 o' E; D1 t6 e: O6 }
————————————————
/ m& x% f, Y8 e5 N7 [
版权声明:本文为CSDN博主「zhuo木鸟」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
2 L2 }2 e, e& P( S# n
原文链接:https://blog.csdn.net/weixin_42141390/article/details/108580140
9 E+ w6 ~+ p$ Q0 B$ V
2 B) ^5 @. O; t7 F( \
( a1 [* c) t1 j9 F
风控大赛.jpg
(209.44 KB, 下载次数: 0)
2021-5-24 15:54 上传
点击文件名下载附件
售价:
1 点体力
[
记录
] [
购买
]
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5