数学建模社区-数学中国

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

作者: 杨利霞    时间: 2021-5-24 15:54
标题: 2020全国大学生数学建模比赛C题总结
2020全国大学生数学建模比赛C题总结
# \" l9 C2 q6 [' r7 l* R  p2 I
" ~, ?; N8 ~9 ]# z首先瞎逼逼一番,吐槽一下题目和比赛经历,对这部分不感兴趣的可以跳过:6 k4 \. |) m4 Q2 O' |$ y
虽然我是周六下午才开始做的… 总的比赛时间不到两天,不过好在一个人,不怕拖队友。至于题目,我第一眼就喜欢上了 C 题。我想,恐怕很多人都喜欢 C 题吧,因为赛后做了一个总结,发现学校选择 C 题的,比选 B、A 题的加起来还要多。- r' O/ I; s5 Y$ }3 v* j6 Q
/ F( ~9 P. d: n* w! y8 @4 d; u

1 z  z' \( i' s, `为什么选择 C 题呢?因为有数据处理…( U. G& r1 ~7 n# O, p6 o2 [1 m+ @

9 d: b3 y3 C) a& [' a

  o" v: s" [% o, }2 ]. I  z所以无论它多难,我都选它,哈哈哈。/ k+ E7 h! ?+ r! l, s3 M& j

- B$ I5 J) J/ a& g2 N: L

: n+ N8 T) U& C4 z! w7 |仔细看这一题,它与机器学习好像有区别啊。说起机器学习,我会想到:1 c8 b' O8 W4 Q! I
9 d0 y* w* u" O. U: z
0 ]2 x3 g% A6 n  U( T
分类
" c7 X: ]5 n. x* l. f! R/ {! b回归
) v) U& [0 ^7 |  j, G& z* K3 I$ r拟合- @- V6 I% x: E4 V
预测
# k, x9 b9 k! k) r# h1 D* g但是,这题… 好像不是一种,用数据拟合,然后再预测的问题啊(机器学习的通俗定义)# a' K; u5 h" y* P  ^. }/ c" C  u
) b% B) F0 b9 L4 M# Z/ X  e
8 O7 M7 o, o' f
好吧,选都选了,只能硬着头皮上了。/ l) Z& ~5 M! }$ P* y( x

( b) c# v2 _4 J0 h
+ Y  U* ~7 d6 g# z2 ]% R2 i
问题分析7 @/ S! k! b8 c: S' _
根据附件1,定制一个量化的信贷风险;
$ V/ v2 j( K1 h4 p7 n9 K为银行制定一个信贷策略
% V9 [7 f7 B, L有突发状况是,上面两个问题应该怎么重新规划?3 L4 n* t2 d2 ^8 Y4 O. `
三个问题,我们分别称之为问题一、问题二、问题三。
" [1 F( n+ V+ c4 y+ D
# _7 m! [  c4 [- d0 s

) f/ H9 H) ~$ U; b" j/ H" O数据说明
* @- Y9 _: T9 J  h0 u: ~" p" N附件1:sheet1:给出了企业的代号,企业有无违约的情况,信用等级
0 K9 B3 V% S+ D7 f+ usheet2/3:给出了企业的大约 2 年的进/销 量的发票数据,; i4 P* u# Y$ G8 a8 _1 w( ~
附件2:给出了企业的大约 2 年的进/销 量的发票数据。没有给是否违约、没有给信用等级8 q2 E7 G, `$ h6 h' C  a
附件3:给出了银行的利率,以及相应利率下,不同信用等级的企业,不愿意贷款的概率(原作是比率,我感觉能用比率近似概率)
; H8 S* b- _8 B4 Y5 ^  F6 u+ H. t" |+ N: v
* w; C3 A$ _# e4 y0 }2 f
问题一求解
, _6 H" c( J1 O5 j; k你们看,附件1 比 附件 2 多了什么?信用等级、以及有无违约记录。而问题二是要我们求附件二中的企业的信用风险的。所以,仔细一想,肯定是在暗示我们,1、用进/销 量数据,来评价企业的信贷风险。2、信贷风险的量化指标,需要建立在企业信用等级、是否违约两个变量上。3、设法建立进/销 量数据与信用等级、是否违约的关系。! D# p3 P3 M, L3 \/ O, f2 w

, K% M- L8 L# M  Z! z2 a- T$ C

/ P5 Y- H: S, Y* [) H3 r! y好了,第一步咱们清楚了,就是要建立信贷风险与信用等级、是否违约的联系咯~
0 Y* M7 z" R% d* p; N  C; ?; d+ b: B

; n! N) @, G* g, X' w我查阅了一些文献,虽然说得都很复杂,但概括来说,就是一句话,我银行借钱给你,你还的起吗?这就是信贷风险了(说得比较通俗了,有点对不起学金融的同学们)6 |/ N5 J9 m) m" t5 d# ?) u

! X) e& z1 _9 C5 S' i8 ?

) K) O" {. f- I; a/ b5 o于是,我将信贷风险定义为:企业违约(赖账不还)的概率。. s/ e; P$ X; s( R8 N

# R" u( o1 E+ W/ i4 @. f3 e+ H
- c' |" J# C% Y/ Z
而机器学习的知识告诉我们,分类模型除了能够自动判断个体的类别之外,还能够计算出个体,属于该类别的概率。于是,这不就是一个机器学习问题了吗?: T! P& {7 G& A, d  V  x$ y
! @2 D$ O( a7 Z) l2 D" ~6 ]

$ H5 ~7 C5 Z! V* N$ w这个问题就是:根据进/销 量数据,训练一个分类模型,然后将模型的输出,确切的说,概率输出,作为信贷风险,Over。
( m/ D8 B; h2 S1 o6 y3 F4 ~% P9 b  i3 ~; @
6 I0 c5 R, ^! i; k! A( P
但是,进/出 量数据是时序性的呀,如果按照上面的思路,那肯定是要一个企业作为一个样本个体。可是…,这个样本个体也太奇怪了吧,是一个时序数据,哇,都能构成一个表格了。。。8 `, P7 h, Y/ e  O/ I/ d% o) z
, \2 i* U* C$ L/ J' v9 g# g
# P: C; W/ O/ M8 a2 u
按照上面的说法,这有点接近自然语言处理了,也就是一片文章,对应一个类别。这里是一张时序数据表,对应一个类别。天!麻烦!
0 k8 ~2 l9 P0 I4 b( m+ C) I' @
# Y! v& {; B- f1 ?7 }
! U# m9 ], l3 A
有些大佬可能已经豁然开朗,用 NLP 来解决啊!!!. \+ j( y( n- B% I7 q' a

8 ~  D# A" x. e+ P7 Q! ?

4 j2 N2 _* K! B/ r3 q4 w  ~- Z否也,这种跨越对我来说,有如天堑(虽然我是搞 NLP 的)8 _% ^  `) @7 _. n8 g1 I8 \) }8 n5 ?0 R

/ j6 B2 N6 F! ^

' x2 D7 ^7 o! D: \5 O. E  o: u因此,我决定,转换一下我们的数据集。: L3 L7 U5 X3 [" U
% G) W: L2 t' a6 i* w

  ^, A6 ?  q" z! @: u* m数据处理1 F/ I( U; A, u& r. U' H
首先,如果按照上面的思路,用机器学习模型的输出,作为信贷风险。那么就要让数据变得简单一点。. k& E2 \# ~/ `/ L
. P2 \. Y" S1 U8 p. }
9 R" S2 w7 @" {- I0 D- o  e
原始数据是这样的:多个企业,一个企业包含了大约 2 年的进/销数据,一个企业对应一个标签(是否违约)。& y: D* H: c: u9 r7 F9 e
% _( ^% O' ]* |

2 l  T+ {0 O: T7 f. E8 T' d我们希望的数据是这样的:一个企业,对应一个向量(行列都行),并对应一个标签,这样才能用机器学习模型。6 t! g& G* w# r4 o
8 n; A4 v  q# M  I6 g4 w/ f

' J+ \# @8 ]- C因此,必须将时序数据弄掉!!!, @4 l5 R* U. J) R  b0 e
( a0 {# T3 w5 O$ ]& c  b: P

3 S0 q. x) x) u' b4 Y" n$ P由于数据是按天给出的,首先,为了简化,我们以 30 天为单位,将数据合并!3 {$ N% U$ Y  |

3 h! I* U# j2 V! _9 R

9 ?7 ?  r6 L# d5 J然后,用一条曲线(我用的是 9 次多项式),拟合时序数据。有了曲线之后,我们不就可以用函数的系数,来替换原始数据了么?
3 x0 S0 i& n# r6 ?6 f5 y/ v* ^" _: @7 [2 t( ~; T: G

. F2 k2 s7 H, p这样,一个企业的数据,就从对对应表格(时序数据表),转换为对应函数的系数(向量)了。
: V2 Y1 n4 C8 q) e; i
: v  i  u6 w+ n+ K; ^
& |+ h  S8 g2 m4 T
等一等,误差怎么办?用曲线拟合数据,肯定有误差的嘛。
" U; D- U' V2 T. @; N2 {: T6 ^/ y; S6 D" p

+ k; R4 q1 g; I  y好,误差我们是用什么来度量的? 常用的有 R 方对吧。那就计算出 R 方,然后把 R 方也作为企业的数据之一,不就得了。
; ?. j; F$ }0 P* d6 M
. d7 z8 e2 [* X7 N
' C- N& z& Z8 [, ?
可能有人犹豫了,可以吗?
% B( Y; x+ t& P- K9 s
0 s% o, d$ `/ R, c& l2 Y" O: D. z
. p" N$ K* }) k; f. r# u
好,拟合的曲线可以一定程度代表企业进/销的基本规律,没问题吧?
' Z% H+ k/ `7 J- F3 u
: N- k. ]) D9 w, f" K: ?

, g& {$ ]2 |9 j8 J* e; LR 方计算了误差。换个角度想,可以代表企业的进/销,偏离拟合曲线的程度,对吧?
7 m9 J. X! U0 c3 M% G5 {* k+ k$ E* w0 E: p+ m4 |

/ T6 [3 e! \9 x5 T& m" f, O这不就得了么?2 a+ {$ [. A3 Y7 W2 U8 F

- H0 W' Y6 i: o- i, U! [& Q7 V
4 O2 {4 [) W' l" V+ S, P( j
当然,误差是肯定会有的。但至少经过这样的计算,解决了我们的燃眉之急吧。为了方便讲解,我们将这个数据成为 一数据 吧。' U9 Z1 H; o# h  J* _) M
: o% l1 y% y1 |0 J' g

8 J5 m' I; g0 e+ k0 {/ h有人还会问,信用等级呢?我们不能忽视这个数据吧?da si ka ni。4 b( b3 @  C% x( D

# O- `$ @2 J1 D$ N6 _3 t

8 G; h& Y0 ^  ]& _且看我怎么处理,我们可以像 NLP 的 Word2Vec 那样。我们用一数据为输入、信用等级为输出,训练一个模型,然后用模型的参数,或者其他东西作为 二数据 不就得了么?' M: Z7 C, {$ \+ W8 O% K" t
! O1 H. @1 m. c0 x5 M, i+ l3 _

+ Q) x2 h6 z* G' |, B3 S之后再用 二数据 为输入,建立一个机器学习模型,用来计算企业是否违约的概率。 Case Close!. t9 h3 l2 |1 O& n' h4 [
5 b0 r- B6 k% h: h( I* R7 A" a/ m7 }& K
: a2 w! N8 U3 {5 V) s2 W2 i
问题二 求解7 q" Z+ O4 O1 Z# P
制定银行信贷策略是吧?
( B* S. P! ]/ E5 A9 e- K5 Q
1 K. |; o" m) B! m, q
0 ~, @9 Q1 f1 \9 ]4 R
怎么制定?无非是利率、期限、额度咯~0 n  k) P; [. a# q% w1 U9 ?' g
5 K& S- K, }. g: }

2 m# C: K+ @* v, B; J& E& q0 F, G期限我们不管,因为没依据。利率和额度紧密相连,都是钱的问题嘛。
1 a' O) X* v4 E: R
# i% H! _( }9 \0 {0 @
0 b# F: O2 A  I" a1 H; N& p$ u
让我们想象银行是为了干什么的。商业银行肯定是为了赚钱啊,哈哈哈哈。; G) @+ ~! D1 V5 e& E: [
$ i$ S& I% d, q1 g" B6 Z& D$ K6 \

) ?6 O$ i9 W; E% N& l于是,问题转换为,求解一个优化问题,即选择合适的利率、额度,使得银行的利润最高。
6 V! G* ?$ k( d8 t& E! ^* X4 w/ _+ f) h8 [) ?
% A, [8 V& j4 _3 P& [5 f
so easy?ok?7 I1 N3 [* S3 G& \

3 w  e7 _! Q9 Q/ r4 v7 |# c- ]
! |, k! F% T. N+ |9 g5 Q( d
于是,最根本的问题,就要对银行的利润建模咯~~
: E# S6 y1 q; h. u
& R5 v6 [) ?. S" ~% T0 e
, t8 m4 [5 f  H5 [. @
利润的期望 = (1+利率)^(时间) X(企业不违规的概率)X(企业愿意借钱的概率)
% A7 f) r' t$ o7 o7 u7 t8 X6 F5 B* ?8 O( J

8 L) [; ]; r$ Y# {' n用期望近似利润,case close,say goodbye。
: i7 A( B1 K( F& Q) a
4 m, U9 {9 f( L8 c1 Q

6 s9 B$ s' l/ n+ J$ q# h7 s8 p  n至于优化问题,加上题目约束后,就是一个约束优化问题了,怎么求解?方法实在太多了。我们训练机器学习模型,不就是求解一个优化问题吗?作为弄机器学习的,你不会连求解一个优化问题都不会吧?9 I. {! a. |1 ?

6 V* N$ p0 t6 Z7 w1 x3 K
  B, ]; u9 z) k+ Q
有的人会再次反驳:可我们这次求的是一个约束优化问题啊!
1 Y) X5 t5 w* b( n3 Q
1 a* I1 p$ D) z' d6 ]6 \

. c- l5 q4 z$ f$ Q9 b我会答:你用罚函数的方法,不就可以将约束优化问题,转化为无约束优化问题了吗?* l  T3 Y. c( P0 S

2 q7 D$ k4 g6 H" H. ~) f7 E6 S  Z
  A5 y8 ]8 S( q! e. z/ Z
问题三4 u. }% G7 m  M- k* m, W5 A
突发状况会影响企业的运营状况,所以我们只要将 一数据 的 R 方微调一下,不就得了吗?????
2 t1 g( v' ?. Z0 c' v) g1 G8 J& [$ q  y" E6 s2 [

' b, ?! d: e$ R+ v) ]2 ^* P有点简答吧?
" q" K2 K+ q- n2 x) j3 {, C
1 j2 U3 a0 `  |. `
0 `9 z" K" b$ O+ Y
最终总结% G0 a) m) v: c8 f+ p  i+ K- w2 J
C 题,似乎是最简单的。但处理数据,比较麻烦,可能很多人卡在这里的吧。最难的一个点就是:如何将一个时序表,对应到一个标签的问题了吧。
$ S: X$ K) w& j8 k- A! v' N$ V" s- C! K" Z

) ?: R( I6 h# D' c$ t7 m好了,最后一次数学建模比赛了,大家江湖再见吧。+ D: P3 z' ?# q. \& S% b
————————————————  U: K  G+ W% {) O1 p' U( Y3 H9 V
版权声明:本文为CSDN博主「zhuo木鸟」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
7 F* u9 @" L4 z. K3 j% J' }9 b原文链接:https://blog.csdn.net/weixin_42141390/article/details/108580140
: x: m, d. }; ~- X5 L6 s/ b/ X2 F5 L. q- G
6 S6 Y1 B' F/ A& l! T; W

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

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






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