数学建模社区-数学中国

标题: 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& C3 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& @+ L2 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 N6 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  L7 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) u7 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/1085801409 E+ w6 ~+ p$ Q0 B$ V

2 B) ^5 @. O; t7 F( \
( a1 [* c) t1 j9 F

风控大赛.jpg (209.44 KB, 下载次数: 0)

售价: 1 点体力  [记录]  [购买]






欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5