数学建模社区-数学中国

标题: 2020全国大学生数学建模比赛C题总结 [打印本页]

作者: 杨利霞    时间: 2021-5-24 15:54
标题: 2020全国大学生数学建模比赛C题总结
2020全国大学生数学建模比赛C题总结9 V$ k2 t6 i, w7 [/ n
0 p0 N- b. ^' q: |4 N6 C
首先瞎逼逼一番,吐槽一下题目和比赛经历,对这部分不感兴趣的可以跳过:
- X( N7 U9 r0 O9 u# v虽然我是周六下午才开始做的… 总的比赛时间不到两天,不过好在一个人,不怕拖队友。至于题目,我第一眼就喜欢上了 C 题。我想,恐怕很多人都喜欢 C 题吧,因为赛后做了一个总结,发现学校选择 C 题的,比选 B、A 题的加起来还要多。. ~! q. t1 a* }* R, t8 e9 f

8 I- V& [4 [, _& c% h" L
( o/ e# m$ c* h% ^$ z' V8 h: E
为什么选择 C 题呢?因为有数据处理…  T- i3 a5 A  B# f

3 s- r5 r! t* ]

) i: u, \2 P( R* C# x所以无论它多难,我都选它,哈哈哈。1 W/ `* e: R! f8 Y0 h' x
5 ~9 w! c  l2 l4 E2 z3 L! @
$ x4 I. _  `! n6 `3 W
仔细看这一题,它与机器学习好像有区别啊。说起机器学习,我会想到:
' v) B9 K8 k& ?$ A  d, W+ d: g+ P) {, P% @2 B/ |9 V

- x* T" ~5 p3 a2 n9 n! U" q2 h( r分类& P5 O" q9 r+ j4 R3 H( \( [
回归" o7 V9 ~0 t6 z  h* \% A
拟合
: ^! V! c0 H2 F+ P6 e* _预测
- b$ a% V' e5 w但是,这题… 好像不是一种,用数据拟合,然后再预测的问题啊(机器学习的通俗定义)3 v( p0 P5 S7 c, c& ?
8 f$ z* k9 W( P

4 M0 R4 e5 M, \2 K% O好吧,选都选了,只能硬着头皮上了。
, J" Z' V- n0 W$ f
6 r3 L5 p" h% |
* \4 |. ]: L* P( E$ T9 Y+ P
问题分析% @  m) f' m5 ]. _' {. i) p
根据附件1,定制一个量化的信贷风险;: a! h; J# V, A
为银行制定一个信贷策略
( Q3 Z4 Q& I4 P  [4 ^' f# b& I6 b2 ~有突发状况是,上面两个问题应该怎么重新规划?
. {5 A% j/ ~( p3 J1 |三个问题,我们分别称之为问题一、问题二、问题三。7 V* ~6 x4 p5 T9 D2 e4 e
0 f' f/ {8 X6 N3 K% Y8 u

. \  G. p0 q6 R" ~/ f+ z3 ^7 M2 j数据说明7 y8 {3 T" L5 c9 U0 N$ |3 x+ A
附件1:sheet1:给出了企业的代号,企业有无违约的情况,信用等级2 g- R7 A. \4 v( ^' X! X2 G; M: V
sheet2/3:给出了企业的大约 2 年的进/销 量的发票数据,
, i0 G3 y( h7 x: V2 k附件2:给出了企业的大约 2 年的进/销 量的发票数据。没有给是否违约、没有给信用等级
" f! [$ Q$ w2 R' [" r附件3:给出了银行的利率,以及相应利率下,不同信用等级的企业,不愿意贷款的概率(原作是比率,我感觉能用比率近似概率)2 _; h* p  D0 N1 H" ]
, a& n" t2 t% t1 c; F0 B
$ E9 t  z- D) `5 `
问题一求解
6 k2 b+ P7 [* T3 }/ p. V你们看,附件1 比 附件 2 多了什么?信用等级、以及有无违约记录。而问题二是要我们求附件二中的企业的信用风险的。所以,仔细一想,肯定是在暗示我们,1、用进/销 量数据,来评价企业的信贷风险。2、信贷风险的量化指标,需要建立在企业信用等级、是否违约两个变量上。3、设法建立进/销 量数据与信用等级、是否违约的关系。
$ T0 B3 P7 Y0 w" C" e4 e' Z5 j- p" r4 k$ k

6 `2 N5 a6 O2 }+ o: E( [* \好了,第一步咱们清楚了,就是要建立信贷风险与信用等级、是否违约的联系咯~
7 A* H) K3 g/ I  K9 Z: L+ v
- n  q0 ~: y: d5 j. g, R( H
' N* E2 Q5 N+ V# ^
我查阅了一些文献,虽然说得都很复杂,但概括来说,就是一句话,我银行借钱给你,你还的起吗?这就是信贷风险了(说得比较通俗了,有点对不起学金融的同学们)7 J1 z4 {. d6 F" B6 K7 p( V

/ S! O/ p8 I  W. \- s: G
0 p' S. o( y0 V3 ]5 I
于是,我将信贷风险定义为:企业违约(赖账不还)的概率。
9 @+ ~9 O' P7 L1 s) E8 ^; O6 L# S6 u+ E% T% o( u
9 e( f4 P' m6 l5 z
而机器学习的知识告诉我们,分类模型除了能够自动判断个体的类别之外,还能够计算出个体,属于该类别的概率。于是,这不就是一个机器学习问题了吗?; ^* G& `& I# n" y3 _* R( \

3 F; Q" s- D( ]( S
' k: c0 E9 |1 ]' }
这个问题就是:根据进/销 量数据,训练一个分类模型,然后将模型的输出,确切的说,概率输出,作为信贷风险,Over。
  b% C/ U8 D: l& ^+ ]; Z2 _8 k$ D6 d, ^: w/ Z1 R/ j

( J- L- L9 I$ h& F6 j但是,进/出 量数据是时序性的呀,如果按照上面的思路,那肯定是要一个企业作为一个样本个体。可是…,这个样本个体也太奇怪了吧,是一个时序数据,哇,都能构成一个表格了。。。
$ K5 C; ~' V8 ?; F4 e$ D7 t
0 i" s; R. ^  T
( O2 E) M) C& N% j) n; s2 M& m8 }+ ]1 V/ @
按照上面的说法,这有点接近自然语言处理了,也就是一片文章,对应一个类别。这里是一张时序数据表,对应一个类别。天!麻烦!
% D5 C1 z0 |- H9 T' g: G, ^6 M- }! V: N9 E# U8 _" n3 B7 ]

) u3 R; x( C8 J2 s2 X' u有些大佬可能已经豁然开朗,用 NLP 来解决啊!!!6 T! s, D: a# z
" A( A3 X" P  N$ D& l& `
& V: C, N3 A2 K& ~  e
否也,这种跨越对我来说,有如天堑(虽然我是搞 NLP 的)
/ N: [& N+ g1 G: s" ~  D1 `! X8 J
4 ~% L+ F9 G- @5 }

! y  Q0 v) o$ v) j6 ~因此,我决定,转换一下我们的数据集。! b8 ]7 A' P0 x5 O$ j. u3 B
* j; m4 f, ]+ k9 F9 i4 Y

" z  t+ |0 D8 W/ Z) }  v数据处理; m4 x; D+ s& Q) {  K0 _
首先,如果按照上面的思路,用机器学习模型的输出,作为信贷风险。那么就要让数据变得简单一点。, E9 b6 l8 b/ `/ S9 G; s% {
# O6 r/ B4 a1 t* g! g: p
( u0 E8 k# K' Q. N* b9 v
原始数据是这样的:多个企业,一个企业包含了大约 2 年的进/销数据,一个企业对应一个标签(是否违约)。  I. o# n0 k) Z! ^8 y5 o8 Y

" F# ?9 Y8 o( J1 _

- v6 v: Q1 z; B6 S& d) d我们希望的数据是这样的:一个企业,对应一个向量(行列都行),并对应一个标签,这样才能用机器学习模型。) |! s% F! w; a- u
$ g/ G; e, H% P

$ D6 x' o( e( S, \因此,必须将时序数据弄掉!!!/ G9 D' \4 _( f; {- t( C

  n/ m) _6 \- ?7 l
6 W6 j4 U5 w) T" z3 A, @" i; _
由于数据是按天给出的,首先,为了简化,我们以 30 天为单位,将数据合并!! |+ `4 p$ _2 @5 W! W; \
0 R- ^* P1 T- ?  {& I

& P2 o( W' Y1 Z2 w: Z7 G然后,用一条曲线(我用的是 9 次多项式),拟合时序数据。有了曲线之后,我们不就可以用函数的系数,来替换原始数据了么?+ a7 R5 O$ Z- y, n  n1 F5 C

6 {8 E+ h2 ]3 Y" ~

8 J5 }3 d8 J' o6 T5 F/ m: p这样,一个企业的数据,就从对对应表格(时序数据表),转换为对应函数的系数(向量)了。' d; p; |- H- D( d4 V
. q* d6 Q" W. o: Z# u
+ o" w" Z5 D0 N, X; E! E
等一等,误差怎么办?用曲线拟合数据,肯定有误差的嘛。
: j3 `2 T, N1 X/ h+ g$ n0 Y) d2 g9 @6 O/ P8 R& x/ S
& f) e( C* `: L$ e5 X8 P
好,误差我们是用什么来度量的? 常用的有 R 方对吧。那就计算出 R 方,然后把 R 方也作为企业的数据之一,不就得了。0 A$ g- C3 J- ~, [3 Y  `7 B
$ k% c$ E) v% D% v$ e& d
$ \8 X! _: B/ ]2 E2 n7 ~6 g
可能有人犹豫了,可以吗?' E% W  b( l1 |& {; Y/ ^( [  ]6 W

! B5 m1 b8 }$ j/ n, m) n+ R
  c2 w  ~& M# E$ {
好,拟合的曲线可以一定程度代表企业进/销的基本规律,没问题吧?/ B( }/ u! u5 C% Z5 b
) X, I- h3 Y: Z

, P0 B/ d1 K3 ?! p# D4 H( Y, iR 方计算了误差。换个角度想,可以代表企业的进/销,偏离拟合曲线的程度,对吧?
- W5 i1 J  t2 \8 T6 @& X
$ C4 s5 Z4 E) [7 ~& t+ D1 ]; l  _8 Z

: B5 z) D2 N3 m8 D这不就得了么?! Z4 ]7 B( w3 `& X# H' B: t- m
1 W8 X% H9 A# ]+ W# L$ }4 ^

; \9 f9 Y) N( r; {2 \/ o当然,误差是肯定会有的。但至少经过这样的计算,解决了我们的燃眉之急吧。为了方便讲解,我们将这个数据成为 一数据 吧。  p4 T$ p  v4 H! i  \/ _
- v. l* r2 z2 D

$ `; Y. S7 m1 B5 f3 M6 V, n有人还会问,信用等级呢?我们不能忽视这个数据吧?da si ka ni。
- P5 h* H& k# u; I" @6 L: C. y5 s  D
6 `% b1 ~! c/ B( z4 ]  z
且看我怎么处理,我们可以像 NLP 的 Word2Vec 那样。我们用一数据为输入、信用等级为输出,训练一个模型,然后用模型的参数,或者其他东西作为 二数据 不就得了么?
8 ~& p4 j! a; L) c% A+ S5 X5 l. K3 M' o
# C9 l6 K. \6 ?: X' R' A

& `- D3 R& G3 e8 [) S; ~1 ^5 V8 j之后再用 二数据 为输入,建立一个机器学习模型,用来计算企业是否违约的概率。 Case Close!- y. e3 d0 P4 p5 X# T9 p# g5 C% e4 G
6 Z# U+ e% d/ a# E
7 }' D7 L3 ^9 L
问题二 求解
0 G$ Z4 s) L1 c# v* B  e制定银行信贷策略是吧?
& m/ n& {! o6 I5 Y
* g- i6 ]8 R$ X7 {8 p

3 V1 F  g4 l5 L/ A怎么制定?无非是利率、期限、额度咯~
0 X3 T# X" K3 C: u9 X/ h+ L# S, ?& c) f$ S* u# |( G

  w& e" r8 B8 _: O2 D: i. L期限我们不管,因为没依据。利率和额度紧密相连,都是钱的问题嘛。
! |# J6 r2 j7 B3 i+ s) K$ v! T7 O3 ?) r- j" y, N

7 _# M) K1 u! C% M; \- e; l4 b+ _让我们想象银行是为了干什么的。商业银行肯定是为了赚钱啊,哈哈哈哈。
! w; A3 ^/ v. w$ v
6 A6 W2 f* e" M3 s0 |1 R: u
8 Q  H) k2 R+ S, M
于是,问题转换为,求解一个优化问题,即选择合适的利率、额度,使得银行的利润最高。
3 Q9 ]1 K- ?8 f9 k* \0 T7 K* ^
' }7 h8 ]9 m! t, i/ T& K
8 ?* }; p% T; F* g/ q/ Y9 J' _, J1 I3 A
so easy?ok?
3 |' e3 u' X! b" i" ~; k3 {8 b1 t$ V3 [! O5 p6 X9 F  _9 r; E+ p8 N

/ X, o& u! T9 ~; I$ m" W于是,最根本的问题,就要对银行的利润建模咯~~
) Y1 e/ x" B2 \; m2 {, E2 h$ {* b; j+ o" _) }
# l, s5 P9 ]: K$ H- N1 S
利润的期望 = (1+利率)^(时间) X(企业不违规的概率)X(企业愿意借钱的概率)
: _4 N, e4 A8 K+ O' D: q8 o2 d
  Q, [* [# _( ~, W, c9 j

; ]# ^3 G' U8 R/ i" O5 v用期望近似利润,case close,say goodbye。7 M! j% E! B. n
9 G- d6 `" _( C( O: ^9 |; w

$ P4 c0 H) u6 B& l/ ?* u至于优化问题,加上题目约束后,就是一个约束优化问题了,怎么求解?方法实在太多了。我们训练机器学习模型,不就是求解一个优化问题吗?作为弄机器学习的,你不会连求解一个优化问题都不会吧?6 A8 F8 d* L: _3 q
' X0 ?% c+ A# U0 O7 [' X- l
' y6 q' f, [$ V1 C: w0 ]8 _1 m* S
有的人会再次反驳:可我们这次求的是一个约束优化问题啊!
5 f" i" }9 x7 p5 R( ^$ t! e  C6 ~& H+ C

2 x# w2 ~4 J$ A( ^% @, ]+ x我会答:你用罚函数的方法,不就可以将约束优化问题,转化为无约束优化问题了吗?
$ X$ \7 E6 l' `  k+ p7 b
) R# \- y- G& p% \
/ t" p2 \* m# t1 H' c0 x# H
问题三6 O( X8 W; B; h8 m- G) i4 X7 l8 x* G
突发状况会影响企业的运营状况,所以我们只要将 一数据 的 R 方微调一下,不就得了吗?????$ K5 [: Q. E" O0 v) x

& y2 i$ i$ Q  n7 ~* z6 p
0 T  n, H  Q3 K* Y
有点简答吧?* ]7 n8 v7 e. z5 m9 {  r! }/ V

/ D0 P' S3 l1 i( c9 [; z, \3 c

, u# q- z( J5 ]% N) f$ t* C最终总结
1 i+ D" ?% {. Z  K8 Y' g/ UC 题,似乎是最简单的。但处理数据,比较麻烦,可能很多人卡在这里的吧。最难的一个点就是:如何将一个时序表,对应到一个标签的问题了吧。
. ^, S( U6 x/ t* a$ A9 A8 C/ C8 W$ }7 O* x' A

% E9 j3 x3 H/ A( ?好了,最后一次数学建模比赛了,大家江湖再见吧。
5 |( @9 C* g6 l* r3 w- R————————————————$ C$ O+ h: R' _& l: k/ o/ c
版权声明:本文为CSDN博主「zhuo木鸟」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。* l( y5 {8 [( o9 N5 Z$ f
原文链接:https://blog.csdn.net/weixin_42141390/article/details/108580140
8 ?4 \5 T; H: k, r5 ^* E8 L: C7 s2 J: U! ]! M" X3 S: |
  X& _! f2 K% P& z, Q0 U2 w

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

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






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