在线时间 1630 小时 最后登录 2024-1-29 注册时间 2017-5-16 听众数 82 收听数 1 能力 120 分 体力 564692 点 威望 12 点 阅读权限 255 积分 174630 相册 1 日志 0 记录 0 帖子 5313 主题 5273 精华 3 分享 0 好友 163
TA的每日心情 开心 2021-8-11 17:59
签到天数: 17 天
[LV.4]偶尔看看III
网络挑战赛参赛者
网络挑战赛参赛者
自我介绍 本人女,毕业于内蒙古科技大学,担任文职专业,毕业专业英语。
群组 : 2018美赛大象算法课程
群组 : 2018美赛护航培训课程
群组 : 2019年 数学中国站长建
群组 : 2019年数据分析师课程
群组 : 2018年大象老师国赛优
2020全国大学生数学建模比赛C题总结
# r0 F% E! F. V2 k3 O
. o" J c5 \/ K, y1 k# {1 G 首先瞎逼逼一番,吐槽一下题目和比赛经历,对这部分不感兴趣的可以跳过:
}. |1 H: ~, z$ T/ Z 虽然我是周六下午才开始做的… 总的比赛时间不到两天,不过好在一个人,不怕拖队友。至于题目,我第一眼就喜欢上了 C 题。我想,恐怕很多人都喜欢 C 题吧,因为赛后做了一个总结,发现学校选择 C 题的,比选 B、A 题的加起来还要多。 4 x, n. t1 ^* D6 M
$ Z) A2 {; M" x+ m$ U9 ~9 ? 1 G( G5 M; E2 g {, O
为什么选择 C 题呢?因为有数据处理…
) g. j9 q1 M3 G, ~2 S : ]: ~* l0 T# M5 E( p+ S
: h8 E! U0 L% t0 ` Y
所以无论它多难,我都选它,哈哈哈。
F" b- J x7 Z0 u
. R! Q: e9 g% W# \6 G$ L8 U# h
* w3 h5 e P, i5 k+ \ 仔细看这一题,它与机器学习好像有区别啊。说起机器学习,我会想到: & X: |7 }! \. W
3 L [5 {% V1 O
n5 `: B# x: ]0 {1 |7 Z$ ?& | 分类 2 y3 m$ [: ?3 Z; k! Y" ?
回归
/ V9 d' t; _* _2 M 拟合 6 k; l+ x/ J8 Q4 f' P
预测
" `$ m! `2 Y# X' d/ O' [& E 但是,这题… 好像不是一种,用数据拟合,然后再预测的问题啊(机器学习的通俗定义) 9 i, ~' q1 a0 u
* D7 t* R# v4 `2 l) F
1 S3 Z6 v: }3 m* e" h
好吧,选都选了,只能硬着头皮上了。 6 \, {, V- n8 Z
3 {6 f1 A3 e6 q5 u0 K3 O
" F0 H" Z) A; ?/ |7 N 问题分析
' M/ r7 T' V5 j( w% r/ B' X( D* u$ T 根据附件1,定制一个量化的信贷风险; $ k; i# f: H1 P, k+ g+ r5 w# j" ^; }
为银行制定一个信贷策略
4 v. A3 }6 u. ^; c2 \ 有突发状况是,上面两个问题应该怎么重新规划? & D# r0 a6 F- H; X1 ]- m& v( x: z
三个问题,我们分别称之为问题一、问题二、问题三。 % h2 o" [+ K- u3 k& W
" T B, q2 t2 J/ W1 d' l6 @1 @ + d7 j4 n: K" r) S# U" H, g7 h% n
数据说明
# p; k. f8 \3 a* O 附件1:sheet1:给出了企业的代号,企业有无违约的情况,信用等级
+ _% K4 i9 J, e% x0 t4 A sheet2/3:给出了企业的大约 2 年的进/销 量的发票数据, ) ^& W% o5 t7 ^1 z8 Y U6 R
附件2:给出了企业的大约 2 年的进/销 量的发票数据。没有给是否违约、没有给信用等级 3 x3 S4 i8 y3 p7 h7 G" [
附件3:给出了银行的利率,以及相应利率下,不同信用等级的企业,不愿意贷款的概率(原作是比率,我感觉能用比率近似概率)
- B- d6 U% U8 c' s7 L8 U
d" q9 v1 w3 \/ n ( n; R3 k3 D) b) c: c/ b& \
问题一求解 0 t& N0 ]; Y+ x$ {, W9 \
你们看,附件1 比 附件 2 多了什么?信用等级、以及有无违约记录。而问题二是要我们求附件二中的企业的信用风险的。所以,仔细一想,肯定是在暗示我们,1、用进/销 量数据,来评价企业的信贷风险。2、信贷风险的量化指标,需要建立在企业信用等级、是否违约两个变量上。3、设法建立进/销 量数据与信用等级、是否违约的关系。 - y+ {7 J( L" I% e
& D: d( o6 I0 j4 M* ? |
4 Q' } o% h+ Q6 m5 G8 m 好了,第一步咱们清楚了,就是要建立信贷风险与信用等级、是否违约的联系咯~
, a# [: f: {& s4 U5 t6 E& _ ( r \. o5 {2 n/ `2 _
9 z t9 H- `, Z+ |/ q
我查阅了一些文献,虽然说得都很复杂,但概括来说,就是一句话,我银行借钱给你,你还的起吗?这就是信贷风险了(说得比较通俗了,有点对不起学金融的同学们)
/ h* x" F# _' F/ W: }+ [7 J5 F2 J
! \$ H1 ?0 x5 s! ~7 h 4 | b n1 |2 h' X9 ^% t
于是,我将信贷风险定义为:企业违约(赖账不还)的概率。
9 y5 k% D, [/ e, h$ f ! m: j4 d4 W J" G; e* r
0 r' |4 z6 X( e# I# o: j- S 而机器学习的知识告诉我们,分类模型除了能够自动判断个体的类别之外,还能够计算出个体,属于该类别的概率。于是,这不就是一个机器学习问题了吗?
% R# R7 P: f7 S5 d: n
* G2 i& F' A l% G8 _ % ~( z9 o' `1 b5 N6 h& P2 Q
这个问题就是:根据进/销 量数据,训练一个分类模型,然后将模型的输出,确切的说,概率输出,作为信贷风险,Over。 - T5 {! x O& i# g* C1 y7 }
2 N! p# L9 {* M% y ( y* e: s3 D! [. h+ }! v2 q% z
但是,进/出 量数据是时序性的呀,如果按照上面的思路,那肯定是要一个企业作为一个样本个体。可是…,这个样本个体也太奇怪了吧,是一个时序数据,哇,都能构成一个表格了。。。
1 c2 y' K2 U% D
- a% ]# i# G' V+ w- a 7 p* c; Q4 J" F4 Y2 Y
按照上面的说法,这有点接近自然语言处理了,也就是一片文章,对应一个类别。这里是一张时序数据表,对应一个类别。天!麻烦! 5 X) X. j3 }1 p5 { h! U! K
* }" i: A; M( V
T7 q" K' E/ B: ~7 [( E
有些大佬可能已经豁然开朗,用 NLP 来解决啊!!! / z5 s: B( r( s9 v1 c
$ K0 }6 ]4 u6 T4 v 1 G3 a$ M% V7 W* Q9 b. o# n
否也,这种跨越对我来说,有如天堑(虽然我是搞 NLP 的) % B8 g; ?+ S% c# M6 c
0 S1 r6 H4 n3 W+ P3 n% a8 s ( T( k- P8 f; s6 x. j* g6 q
因此,我决定,转换一下我们的数据集。 2 k' e, |$ A, A( g$ s- J
- J1 r8 Q: C' V/ ^; W% Z 7 y/ q' F% ~' b6 l( t6 c
数据处理
1 q) @% U5 P+ h* W9 A3 \ 首先,如果按照上面的思路,用机器学习模型的输出,作为信贷风险。那么就要让数据变得简单一点。
9 }) D: l/ f1 M* M5 d H$ b1 I8 c$ r+ g- _0 J( V
- Q/ r) h4 ?! T4 N
原始数据是这样的:多个企业,一个企业包含了大约 2 年的进/销数据,一个企业对应一个标签(是否违约)。
4 X" K4 z1 ~! e: r. X
- i5 G0 z) @. B" ^+ Q9 T % P2 B9 z3 a& C; `( o4 y
我们希望的数据是这样的:一个企业,对应一个向量(行列都行),并对应一个标签,这样才能用机器学习模型。
) Z* n7 G+ ^. q. _7 e ' M; e" p1 E' s' k! ]& \8 E
3 r. g. v2 i3 h* n$ t( K
因此,必须将时序数据弄掉!!!
@/ D( m5 D+ \, s& }
! Q- Y F& T- } Q+ ? d- c6 U/ F B- q5 f8 n% d# W6 r( T( a
由于数据是按天给出的,首先,为了简化,我们以 30 天为单位,将数据合并! # c) Q% e1 Q) x1 l& c6 N! p, x% ^! A
# s( _% o L% q0 S6 O 2 D0 N. w% `. N( B( d0 Y6 ~
然后,用一条曲线(我用的是 9 次多项式),拟合时序数据。有了曲线之后,我们不就可以用函数的系数,来替换原始数据了么?
+ h! |( `4 s/ `; T, }5 ?
- A3 t2 @# V; H9 c/ H7 k( x |5 A" y* \- w- _/ z$ m% T4 ~ Y
这样,一个企业的数据,就从对对应表格(时序数据表),转换为对应函数的系数(向量)了。 U ]/ W# H% j m- w+ [
& _1 ~) w2 ~: Q# o1 Z, t
6 X# K+ [8 _& H3 P3 N- Y# @% i 等一等,误差怎么办?用曲线拟合数据,肯定有误差的嘛。 4 P2 W% c8 O: T# P" X
2 x6 }* ~, }* P* u# R
8 Q* r Y) r% c* Z6 p2 [ 好,误差我们是用什么来度量的? 常用的有 R 方对吧。那就计算出 R 方,然后把 R 方也作为企业的数据之一,不就得了。
4 S; Q- h- B& c# E9 R# e: z2 a) N
, }' Y, K' m3 M; J
6 h" c u% b! x8 @ 可能有人犹豫了,可以吗?
, [0 U# o, k6 e. O$ Q , i& e, H" D3 P& \/ B; w" B$ G$ Z
h3 N. Y! K: ~$ |3 ^ 好,拟合的曲线可以一定程度代表企业进/销的基本规律,没问题吧?
3 |4 p7 L# x; g, R4 `0 @5 V3 l6 i + g r0 b" l5 H( ? O! [; b0 t
0 ?% p* k6 I$ P) `! s H! ]
R 方计算了误差。换个角度想,可以代表企业的进/销,偏离拟合曲线的程度,对吧? _3 k. q v* Q& G! W- `. s
" V# B. j0 i9 n0 I. `6 H- I 5 w2 E x V X( Q6 z$ J
这不就得了么? $ \, C6 A; n; H4 o) s, j/ k
+ D% z C# Z; y- y8 ^
4 e$ y( h# g; x& F
当然,误差是肯定会有的。但至少经过这样的计算,解决了我们的燃眉之急吧。为了方便讲解,我们将这个数据成为 一数据 吧。 + @' _. h/ C" j2 b! ~, \) V" s
; C9 P$ j2 [. N0 o1 {
0 O7 M* I! Q( K# |8 ]+ S 有人还会问,信用等级呢?我们不能忽视这个数据吧?da si ka ni。
1 b& D3 T& q! c; D8 [ % ~# L; ^+ z! w* M" f4 z; O1 L
" x+ E! Y# i) c* t F 且看我怎么处理,我们可以像 NLP 的 Word2Vec 那样。我们用一数据为输入、信用等级为输出,训练一个模型,然后用模型的参数,或者其他东西作为 二数据 不就得了么? 7 `! }. N3 d6 t# R4 n3 o
( \0 G( t; D' q
" H$ Q( s+ L" @& M( G
之后再用 二数据 为输入,建立一个机器学习模型,用来计算企业是否违约的概率。 Case Close!
, T" U- K7 P! g) X5 B4 s: m7 u6 o
+ ?" \, _9 _' r) w: E+ n & v2 P8 L. d9 e8 z* x# E( Y
问题二 求解 / Y: X" k2 R/ R( v3 L! B2 x0 {
制定银行信贷策略是吧? 2 Z2 c4 c/ `& |5 A4 D
- L/ M- H; o. Z4 p6 }; G8 }
2 {6 V2 U9 P. u& `! I 怎么制定?无非是利率、期限、额度咯~ 1 L) D G. |. j( K9 `" z+ w* v
* q3 P' Y7 T6 c( D1 w
7 d0 Q/ V$ o7 @1 ~; |0 p 期限我们不管,因为没依据。利率和额度紧密相连,都是钱的问题嘛。 $ P# J; [$ f8 H6 V. S% C
0 l* l: N, A' a# O# Z" ^, E
$ {5 l* @6 R* O 让我们想象银行是为了干什么的。商业银行肯定是为了赚钱啊,哈哈哈哈。 ~& X @& y- D* D
3 H R3 K- A" d# k+ u+ _
' t* @ L5 y) X: C2 @2 r" [- z
于是,问题转换为,求解一个优化问题,即选择合适的利率、额度,使得银行的利润最高。
9 |" c, `' }4 } k/ Q: C
2 m$ ~9 Y- k/ m# e
: e5 b: U3 r( S so easy?ok?
! G$ x+ F- l5 Z1 s$ @2 Y
, V/ K% [- U/ n0 L9 O
) Y- J9 b; x- J7 { 于是,最根本的问题,就要对银行的利润建模咯~~
6 T3 u6 G1 K0 {- Z% @1 j+ B6 k+ y 2 }3 E: v# l# { j% ?
2 ?# u5 A. N( n) g
利润的期望 = (1+利率)^(时间) X(企业不违规的概率)X(企业愿意借钱的概率) 8 \5 e8 }+ Z! ]
' I% W! i E6 U2 ^
; J& @9 Y0 k8 B1 e$ C 用期望近似利润,case close,say goodbye。
6 H% U* g, G# H7 B2 N8 w 0 @: [ M; }# K5 [1 A* s
; D( j6 {7 Z! w: t- Q! U 至于优化问题,加上题目约束后,就是一个约束优化问题了,怎么求解?方法实在太多了。我们训练机器学习模型,不就是求解一个优化问题吗?作为弄机器学习的,你不会连求解一个优化问题都不会吧? 5 ?$ k7 @* Q1 q+ o5 b, f
' H/ j7 T: x( a+ \ ' E( X4 c1 [9 h" c% [: X
有的人会再次反驳:可我们这次求的是一个约束优化问题啊!
; C* I' m! \" U6 g
$ D1 x7 t3 j- ]* O $ X a. e' Q8 u+ ~- W
我会答:你用罚函数的方法,不就可以将约束优化问题,转化为无约束优化问题了吗? 7 p7 m: j. |4 I% f( [1 s1 J# }
6 p" ?. _6 l1 E6 s' W' Y/ q
\$ R$ ]( q( k4 g, E 问题三 % g. L2 t) z, \: F5 t
突发状况会影响企业的运营状况,所以我们只要将 一数据 的 R 方微调一下,不就得了吗????? 0 c# {3 b2 W7 M4 I @
0 |) |% q H8 _ n) y3 b; t1 s, A( l
有点简答吧?
' Q" G. P8 t' m m
. Y. x, ~! [- Q+ a
- X- m# M* R. x6 U( R( S$ ? 最终总结 2 h) ^* F6 u# Y z
C 题,似乎是最简单的。但处理数据,比较麻烦,可能很多人卡在这里的吧。最难的一个点就是:如何将一个时序表,对应到一个标签的问题了吧。
. V( P& ]2 l, \4 K
9 v) U; m- r& u0 V0 g : Z% p) r2 u. |$ e" D+ A
好了,最后一次数学建模比赛了,大家江湖再见吧。
4 K( @9 G; w' B* c ———————————————— 2 ?: |9 [3 {. R+ J# J' u% Y
版权声明:本文为CSDN博主「zhuo木鸟」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 ' P/ B' g; z. n9 n$ Q1 b: X
原文链接:https://blog.csdn.net/weixin_42141390/article/details/108580140
/ r4 a. ~ W9 v! n, ^3 I' Y8 V1 q9 E ( e2 a s! @- ? r1 c, d5 _2 P5 L. C
1 H) e7 D# J% |2 t1 t: C% h! Q5 C1 t
zan