数学建模社区-数学中国

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

作者: 杨利霞    时间: 2021-5-24 15:54
标题: 2020全国大学生数学建模比赛C题总结
2020全国大学生数学建模比赛C题总结3 d3 E  u+ X6 u+ n
/ t( q4 k4 ~2 d6 ?
首先瞎逼逼一番,吐槽一下题目和比赛经历,对这部分不感兴趣的可以跳过:, p  ]0 o1 Y' c2 Y
虽然我是周六下午才开始做的… 总的比赛时间不到两天,不过好在一个人,不怕拖队友。至于题目,我第一眼就喜欢上了 C 题。我想,恐怕很多人都喜欢 C 题吧,因为赛后做了一个总结,发现学校选择 C 题的,比选 B、A 题的加起来还要多。
5 k7 S0 P% K. p
( x) z9 M' I, J+ A* N- D
, p( [/ U, [% E! m8 S
为什么选择 C 题呢?因为有数据处理…
7 d4 {/ Y5 `; S
7 S& q, W0 ]# `% s

5 `; b) i8 I- \; _3 b5 H+ \所以无论它多难,我都选它,哈哈哈。3 z$ y" j6 G# D: @4 M9 n
) I8 |& D2 p( E9 y& @
- ?- p2 x8 c% h
仔细看这一题,它与机器学习好像有区别啊。说起机器学习,我会想到:( N' R# @  D0 H" }9 k$ V6 M, U
: n/ x/ Q) f9 J/ A( D; p$ m" w

! A$ X  n; K" H# y分类
* Q0 s0 [* L+ ]3 r* L  `回归$ d2 Q' n  s, f( c1 P
拟合
7 S" ]0 D& h# k预测
1 M  H  B. H2 E8 ^$ N8 L" u% b  O但是,这题… 好像不是一种,用数据拟合,然后再预测的问题啊(机器学习的通俗定义): d+ H+ F( r/ X, ?1 w

& y/ L5 Q9 _+ X8 j* \- U
8 L& b! E! B: }& g
好吧,选都选了,只能硬着头皮上了。; Y! p* y0 W3 R9 R8 c, f9 [
& Z/ \+ o: g6 \" l
' M/ _2 U8 y. G0 {. [
问题分析+ w2 ~7 V- o! G& \6 |2 [+ z
根据附件1,定制一个量化的信贷风险;9 D, O4 |  {5 B6 l
为银行制定一个信贷策略
  `+ O' |7 u9 H有突发状况是,上面两个问题应该怎么重新规划?
: Z3 ]. k. U8 y三个问题,我们分别称之为问题一、问题二、问题三。7 J* z& ~) k5 Z( {8 u' X+ a5 u7 D
2 R' \! w+ V+ Z1 ]! l

8 r& |) k! A3 E& M2 E# h$ P! P$ ~8 m数据说明5 G: U2 f) O6 F' `# P- b4 g  n
附件1:sheet1:给出了企业的代号,企业有无违约的情况,信用等级
4 t& z& L& B4 Y4 D3 G: T2 J, Tsheet2/3:给出了企业的大约 2 年的进/销 量的发票数据,
, B1 g  C% [) _/ `+ D附件2:给出了企业的大约 2 年的进/销 量的发票数据。没有给是否违约、没有给信用等级
; f5 g, d2 R4 C% {! W) Y$ W# _  ?附件3:给出了银行的利率,以及相应利率下,不同信用等级的企业,不愿意贷款的概率(原作是比率,我感觉能用比率近似概率)! I4 m) q$ R. w

' W. V) J5 j/ I

$ _9 p$ c! p) C7 c( c问题一求解
: d" M7 r' i# w你们看,附件1 比 附件 2 多了什么?信用等级、以及有无违约记录。而问题二是要我们求附件二中的企业的信用风险的。所以,仔细一想,肯定是在暗示我们,1、用进/销 量数据,来评价企业的信贷风险。2、信贷风险的量化指标,需要建立在企业信用等级、是否违约两个变量上。3、设法建立进/销 量数据与信用等级、是否违约的关系。% I; s- e. Z$ b# ]1 c+ M* R* E

& u" n, i' t$ x3 x+ V( ]

- p  N) ?+ N8 e$ b$ g& q! d好了,第一步咱们清楚了,就是要建立信贷风险与信用等级、是否违约的联系咯~
+ g; p0 e3 ], [# K3 k' s# l0 M
4 S6 C3 V) b. F3 C& |2 g
( m. L. R; D2 c7 a8 N1 Z
我查阅了一些文献,虽然说得都很复杂,但概括来说,就是一句话,我银行借钱给你,你还的起吗?这就是信贷风险了(说得比较通俗了,有点对不起学金融的同学们)1 \- L- @# C6 m- [4 R' u1 }

" v! e7 v) X. U1 ]6 {* a7 u  v

1 a% k- j5 g8 B' Q于是,我将信贷风险定义为:企业违约(赖账不还)的概率。1 W! n8 y# Q5 Q3 g9 h5 D

: d% j2 V5 G7 W) Y: j

! p2 y4 x2 e# }1 r- S8 X3 ~而机器学习的知识告诉我们,分类模型除了能够自动判断个体的类别之外,还能够计算出个体,属于该类别的概率。于是,这不就是一个机器学习问题了吗?' k4 ~# I; D: ^  s/ h

) m  I8 K! k! k: b7 x( ]) m. I
# q  n( ~5 ^; m) l; a. c
这个问题就是:根据进/销 量数据,训练一个分类模型,然后将模型的输出,确切的说,概率输出,作为信贷风险,Over。" [& d8 C) Z5 t' j- n
* c2 t( f6 B) `: G8 b
! d4 }; w4 [) f' }5 L% `
但是,进/出 量数据是时序性的呀,如果按照上面的思路,那肯定是要一个企业作为一个样本个体。可是…,这个样本个体也太奇怪了吧,是一个时序数据,哇,都能构成一个表格了。。。
+ k; }+ V" q9 g$ h# {9 K! w
1 j: n3 N9 `& H( T* ]( O+ o3 j8 L/ P& x
; I1 K$ T8 X/ c/ m; R
按照上面的说法,这有点接近自然语言处理了,也就是一片文章,对应一个类别。这里是一张时序数据表,对应一个类别。天!麻烦!3 f& V1 W8 ~4 s+ O
# H$ k. T$ a4 V( Y6 e" y) _
+ e9 ~( }5 s; O2 [$ Z
有些大佬可能已经豁然开朗,用 NLP 来解决啊!!!5 W9 ^: K# T+ E5 M0 P# e

, D) t( B  T# }6 k4 ~) s2 ]% P/ H
. ~, ]# f, H, g" e4 t* A, N
否也,这种跨越对我来说,有如天堑(虽然我是搞 NLP 的)
. s# [( ?6 z' h& P' R9 {! u7 \0 t& N  U! m! s

4 }8 `1 B4 y# M1 N因此,我决定,转换一下我们的数据集。0 }/ t7 o0 q- s7 b( o5 @2 H$ V
8 }7 t  e# M6 q. d) H- T
% ?; r" x; R8 _  N1 w
数据处理
/ I' [* t6 O  o; g$ Y3 ]3 M首先,如果按照上面的思路,用机器学习模型的输出,作为信贷风险。那么就要让数据变得简单一点。
# D* ~: c  F* V# a. `
/ _  e# ^% N2 X( q5 K1 H

; Y, R+ ?" c5 D1 D$ {- K原始数据是这样的:多个企业,一个企业包含了大约 2 年的进/销数据,一个企业对应一个标签(是否违约)。
: Z% o9 o1 m) T7 l/ _: m+ Q3 P" s, n2 Y% D5 P1 t

, Q7 {( L( ~. L' m% h4 j$ O' X我们希望的数据是这样的:一个企业,对应一个向量(行列都行),并对应一个标签,这样才能用机器学习模型。
- x( ^5 M# T6 \& {% T3 F: T
! ~, i. d5 s0 @% Z& e5 I6 w  R8 ]
' U% r0 r7 H! F4 M3 q. p  v
因此,必须将时序数据弄掉!!!
5 U, f7 w+ A% q! G6 j& A& p" b  H' D

' K* X, V4 x8 M由于数据是按天给出的,首先,为了简化,我们以 30 天为单位,将数据合并!9 j7 \. U( I8 k* m

2 i6 P, K$ R, j" A# ?& D/ e
5 ^0 M5 A$ I1 F! @- d+ a
然后,用一条曲线(我用的是 9 次多项式),拟合时序数据。有了曲线之后,我们不就可以用函数的系数,来替换原始数据了么?7 W% R& F' {1 z* |' x: c1 K# s) Y. U0 Y$ `+ k
/ n4 }/ Y# m2 u2 L" y4 k

+ d! W$ A, j5 d这样,一个企业的数据,就从对对应表格(时序数据表),转换为对应函数的系数(向量)了。
( j, j) k: ~6 D0 @) J) }- j2 A
9 @* E1 W$ f6 r) t2 V# |) P

8 t2 L$ I$ e9 {  _/ [等一等,误差怎么办?用曲线拟合数据,肯定有误差的嘛。
; L3 }+ n# p7 H9 i& _
( m+ j9 j7 L# R9 e+ W
! v& n3 C' `& G1 C/ k
好,误差我们是用什么来度量的? 常用的有 R 方对吧。那就计算出 R 方,然后把 R 方也作为企业的数据之一,不就得了。
. d4 j4 s" b1 Y' j" T4 y& x1 O$ o3 A/ \" [( R

) |0 B1 f: N2 d) B; L可能有人犹豫了,可以吗?$ C% I2 L' ^. A: @) c" W
6 Z1 V* w- w, I' C- o7 Z

8 O3 u/ k# E$ c! E" A好,拟合的曲线可以一定程度代表企业进/销的基本规律,没问题吧?: x7 f! q2 A% _# m$ u

2 r! }/ `2 f: h# P  [9 c3 H# A
" a; g  c: D( C/ C) V
R 方计算了误差。换个角度想,可以代表企业的进/销,偏离拟合曲线的程度,对吧?8 _7 Q! F9 z* }3 x$ J8 e
" T( ]* y2 x2 |

$ a* X; D3 E& f. @: S这不就得了么?
$ n$ {; Q$ j0 |0 n  W4 N; M3 `$ E- N; j: |6 `3 b( W+ P. k
: p; Z8 S, ~% K; _( w* M
当然,误差是肯定会有的。但至少经过这样的计算,解决了我们的燃眉之急吧。为了方便讲解,我们将这个数据成为 一数据 吧。
6 g5 i1 L7 d0 V; E1 p
2 }" y4 ~7 d  ?) j. S

" i  n) c/ v8 C( d5 X有人还会问,信用等级呢?我们不能忽视这个数据吧?da si ka ni。2 G$ @+ Q$ n8 u# {  d

( ^& b: P: d; `3 j/ ?3 c( }6 c
$ ~5 H5 O0 h3 d+ X/ y4 O* n
且看我怎么处理,我们可以像 NLP 的 Word2Vec 那样。我们用一数据为输入、信用等级为输出,训练一个模型,然后用模型的参数,或者其他东西作为 二数据 不就得了么?
7 ~& Z( X! X0 g# D9 x8 J4 ~* V  i( Z; e. ~
( P7 p9 l" F3 r3 T, l- ~$ S) t
之后再用 二数据 为输入,建立一个机器学习模型,用来计算企业是否违约的概率。 Case Close!
0 v  p6 }; C; C$ W- t4 T$ z' P4 Q$ ~, \8 _- n) `, |

3 E: @* H7 V, R$ [  S5 g/ S问题二 求解5 l0 h+ Q, b2 p  v
制定银行信贷策略是吧?5 s% X7 M- j) V- e3 [
- ~: E2 n- ]7 B: J0 y* M& E( B
/ Z: P9 _) d( u) M) m
怎么制定?无非是利率、期限、额度咯~
8 T3 ?) ^" p" k# b
" y4 t3 C  n  h

" H" B- x: q( O6 Q! |期限我们不管,因为没依据。利率和额度紧密相连,都是钱的问题嘛。" A0 K' e+ A1 ^- b) Q
. L/ C0 z3 p: a- O

9 c& c2 l- o. I' ?1 c, r让我们想象银行是为了干什么的。商业银行肯定是为了赚钱啊,哈哈哈哈。; o9 d; y3 W" @1 F
" Y) y0 j; B0 C7 `9 B
5 m, X0 C9 H. c7 O. |/ q$ b
于是,问题转换为,求解一个优化问题,即选择合适的利率、额度,使得银行的利润最高。& r! O6 t, h( ?" r/ z6 S( Y

/ {2 T9 s8 M: @5 e" M7 v4 `( _. z$ j
8 a4 k- e* s% I4 I7 i7 M5 C
so easy?ok?
* X$ n6 z# }# y5 P7 f7 a( E6 D+ e* X
$ j, ]* P2 J3 _( C! t3 n. C2 P3 O" w
于是,最根本的问题,就要对银行的利润建模咯~~
9 b6 U6 n+ Q% q& U/ N8 g
: D& O, U; r4 p" N9 ^
4 I, {6 Z9 ~* @2 T( S
利润的期望 = (1+利率)^(时间) X(企业不违规的概率)X(企业愿意借钱的概率)
7 e+ N& h  O, D6 r6 i! j# d, f  _3 v# ]' E: D! W& n
- b9 \$ Z  w4 N2 u# F% w
用期望近似利润,case close,say goodbye。
8 g' X/ K1 N0 M7 u
! m1 Z& v. P$ E

  U3 j) `% c/ U5 C& L5 o' b至于优化问题,加上题目约束后,就是一个约束优化问题了,怎么求解?方法实在太多了。我们训练机器学习模型,不就是求解一个优化问题吗?作为弄机器学习的,你不会连求解一个优化问题都不会吧?
/ e5 u- W: }+ V! W& V/ G1 x4 `; n+ q5 T; c6 N

% P" x7 j! u6 a- j. |有的人会再次反驳:可我们这次求的是一个约束优化问题啊!
" _( W% h+ Y" m9 X! k+ t7 \9 `8 \/ V& K# ]0 G5 W2 l& g# Y# A

4 N' U& U1 U" y我会答:你用罚函数的方法,不就可以将约束优化问题,转化为无约束优化问题了吗?
4 c, l0 ?8 L% g5 ~! h' W/ \' D
: [6 M- c' ~1 a3 e. n
% `7 w5 [; G6 E4 ]) E- Z
问题三& f: x( c2 s! f  O
突发状况会影响企业的运营状况,所以我们只要将 一数据 的 R 方微调一下,不就得了吗?????
% c) I  x1 Y' X' E; ]1 ~9 R& }* L1 a) c: K* c% t
% q& [' W7 d' O" P& x
有点简答吧?- J8 e. i$ A! b$ x* ?' d

# u$ Z1 `: h0 F0 |
9 x$ W" B  X7 P7 R9 d
最终总结. i- \" e& ]5 A
C 题,似乎是最简单的。但处理数据,比较麻烦,可能很多人卡在这里的吧。最难的一个点就是:如何将一个时序表,对应到一个标签的问题了吧。
! [7 p! C% w9 B/ ?4 C& Q$ ?4 ?4 D  g$ ]

8 M9 |( Y( v( m6 Q& a& a% n2 U; R7 _+ x好了,最后一次数学建模比赛了,大家江湖再见吧。. Q# O1 `/ F7 o" y7 @$ @9 a
————————————————, J- A  O6 _% @6 m' g! y' p0 g
版权声明:本文为CSDN博主「zhuo木鸟」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。5 Y3 m' D2 b5 \/ m: D
原文链接:https://blog.csdn.net/weixin_42141390/article/details/108580140$ j* p8 I) e3 `9 M, \: V/ z: R5 \7 |
/ E! g0 m* O3 R! B/ u* g
9 G, ?: H* W0 [" n" B% g* s

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

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






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