在线时间 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题总结
/ q- [! g. P7 C. r 8 U6 K3 `" q8 w
首先瞎逼逼一番,吐槽一下题目和比赛经历,对这部分不感兴趣的可以跳过:
, t+ J8 R6 P: A! q! J0 p' |7 N; O 虽然我是周六下午才开始做的… 总的比赛时间不到两天,不过好在一个人,不怕拖队友。至于题目,我第一眼就喜欢上了 C 题。我想,恐怕很多人都喜欢 C 题吧,因为赛后做了一个总结,发现学校选择 C 题的,比选 B、A 题的加起来还要多。
8 M! ^6 M) p! k: V
/ K- ]) f% a7 j8 Y, K* O4 Q% k
; g4 I7 D$ x4 T. r$ Q, X$ g6 h 为什么选择 C 题呢?因为有数据处理… " ]( M* b. x* J% k ^0 \2 z4 _/ J
- {; v* N ~" O( ]6 j `8 y' W8 L$ U) y' m4 `
所以无论它多难,我都选它,哈哈哈。 % d, v7 K! A. s/ V- Q& Q
9 W0 M& q; K* r( W7 C, I $ ]2 S! A- W5 f6 r# L
仔细看这一题,它与机器学习好像有区别啊。说起机器学习,我会想到: 4 J# Q2 v' M$ u6 b }
9 y" ]7 I1 I% [# l9 \8 T
, k6 o: M2 q) |: U' a6 y3 m2 D 分类 * D+ I) h' z2 J( l6 c, x% Q0 r
回归
) s1 c. ~' e8 _1 N' u; ~# | 拟合 9 g9 U6 @; i! v$ g! ^6 @7 N
预测
$ N) ^! z% Q0 M& Y0 m/ e 但是,这题… 好像不是一种,用数据拟合,然后再预测的问题啊(机器学习的通俗定义)
7 G6 S; Y4 f, [+ y( u
8 H) c1 U& Q# a
6 T( h9 k" Z2 Y2 Z2 y 好吧,选都选了,只能硬着头皮上了。 $ s1 S& E; Z2 s! r
1 H) q0 {, r7 X
8 A. e- I2 a" `/ B& }; }
问题分析
3 f! j$ a4 ] i% y* h. {7 @ 根据附件1,定制一个量化的信贷风险; / K* `) \/ R. P* O: k& H6 l
为银行制定一个信贷策略 2 @" d& g5 `' ?4 d: @* Z2 h
有突发状况是,上面两个问题应该怎么重新规划? [3 y/ }3 n- Z, ]
三个问题,我们分别称之为问题一、问题二、问题三。 - I+ C& p x3 d! a
9 u, [" v0 ~1 Y0 H# a, X% o # Y1 K1 b. S- g- }+ B* i5 h) ~
数据说明
( u9 I4 w+ M; f: a9 M 附件1:sheet1:给出了企业的代号,企业有无违约的情况,信用等级
) {$ U$ c; a% s1 R sheet2/3:给出了企业的大约 2 年的进/销 量的发票数据, ! n$ c2 F, {9 G5 b& H: V
附件2:给出了企业的大约 2 年的进/销 量的发票数据。没有给是否违约、没有给信用等级 - H1 F( u8 K! M+ V: a% ^' C
附件3:给出了银行的利率,以及相应利率下,不同信用等级的企业,不愿意贷款的概率(原作是比率,我感觉能用比率近似概率)
9 g" ^: _' i2 e ! o( U! u7 ]& y" y- V
) o% E3 P# c! Z0 |4 R# V" Y
问题一求解
& k j- s( [1 C: L& N! r a 你们看,附件1 比 附件 2 多了什么?信用等级、以及有无违约记录。而问题二是要我们求附件二中的企业的信用风险的。所以,仔细一想,肯定是在暗示我们,1、用进/销 量数据,来评价企业的信贷风险。2、信贷风险的量化指标,需要建立在企业信用等级、是否违约两个变量上。3、设法建立进/销 量数据与信用等级、是否违约的关系。
. f6 ]2 Z: b0 N% [
# O+ r: M+ S8 G' n: ~1 a3 T$ x' Y O
7 _/ H- r' i- e) A4 U) N 好了,第一步咱们清楚了,就是要建立信贷风险与信用等级、是否违约的联系咯~ 3 K- D G! i! F. k' T) |& x
, @5 l! S( E2 ?" _" I5 `7 O* Z
% v: U7 v! R8 `8 T# T& ?
我查阅了一些文献,虽然说得都很复杂,但概括来说,就是一句话,我银行借钱给你,你还的起吗?这就是信贷风险了(说得比较通俗了,有点对不起学金融的同学们) + \ C# w2 s6 u! }1 O3 y/ N" J5 `+ k
a# u) v% @% }7 y% y* e
/ f) W+ }# X6 R6 C3 S0 k n/ w 于是,我将信贷风险定义为:企业违约(赖账不还)的概率。
3 Q! V& l& r- t' S4 y$ _
1 ?' \0 u9 ~3 m! k/ ]: R q, A) P! k( _# N
而机器学习的知识告诉我们,分类模型除了能够自动判断个体的类别之外,还能够计算出个体,属于该类别的概率。于是,这不就是一个机器学习问题了吗?
- \* M% L! w& V: i0 }7 ?
J. F$ H* ^, ^& { 8 ]' J3 T& ^$ \+ z
这个问题就是:根据进/销 量数据,训练一个分类模型,然后将模型的输出,确切的说,概率输出,作为信贷风险,Over。
b( D4 D; j& t* j
5 S. D; r; n# `( `7 u
8 \& w7 ~% v" P7 u/ _ 但是,进/出 量数据是时序性的呀,如果按照上面的思路,那肯定是要一个企业作为一个样本个体。可是…,这个样本个体也太奇怪了吧,是一个时序数据,哇,都能构成一个表格了。。。
& o$ f- R# n9 P8 K+ v# F ( r( g: f* g: c& C- Q: H/ G
9 N5 z; R, V, t; |' v4 A
按照上面的说法,这有点接近自然语言处理了,也就是一片文章,对应一个类别。这里是一张时序数据表,对应一个类别。天!麻烦! 7 h# ?9 H- V& \; g' v& M' b) e; G
. r& N/ q' f. R) l" c9 K0 K0 e
5 o- j" O" E; z. p 有些大佬可能已经豁然开朗,用 NLP 来解决啊!!! : d/ Q; F+ E" m( q& [3 v
5 w& a- I# K# |7 c
" E- v; w6 I: Y4 `; b
否也,这种跨越对我来说,有如天堑(虽然我是搞 NLP 的) ! D G- Z7 ^ {
7 _4 C X7 u" i# g# K8 z ' Y7 T! u& c5 y$ {
因此,我决定,转换一下我们的数据集。
5 o7 b0 W5 `. W& f 9 \9 u0 S# c$ G0 h1 `2 N7 L
* Q0 u$ ]; `5 ` 数据处理
- j( i! X+ o# Y$ x* k6 l# I3 u) k 首先,如果按照上面的思路,用机器学习模型的输出,作为信贷风险。那么就要让数据变得简单一点。 0 x) a' k. `: a8 O8 s7 n1 y/ p
7 Z& j' B/ e/ R3 h- Y
. z9 x) t, U8 ]( i& @& n I 原始数据是这样的:多个企业,一个企业包含了大约 2 年的进/销数据,一个企业对应一个标签(是否违约)。
6 w( \! } U: l. O3 k# X' } - \6 \8 G0 _+ ]
2 a- ^/ z2 H8 a1 l% o: x9 U0 v3 R6 f
我们希望的数据是这样的:一个企业,对应一个向量(行列都行),并对应一个标签,这样才能用机器学习模型。 ( b2 _9 {5 z4 l/ b* o: Y
( U9 s) {3 }0 f( G
; p) x+ v1 g& H& F
因此,必须将时序数据弄掉!!! % G" Y6 w, l# L9 v% [
& y( N) F Z9 ~) j
) D, i+ X( Q! t; O0 _5 ~7 V) K# ^ 由于数据是按天给出的,首先,为了简化,我们以 30 天为单位,将数据合并!
' q- v$ Q7 t5 R7 ~- ]& s+ y- d 7 O- l$ n8 q6 K& F6 H2 J4 U8 v% N: C
& @* l% `. ]2 Q: b- i 然后,用一条曲线(我用的是 9 次多项式),拟合时序数据。有了曲线之后,我们不就可以用函数的系数,来替换原始数据了么?
, \& e# q1 |# \6 k P7 V' H# } $ y- Q) U* x+ P$ R
; |+ k. I! v2 [/ D9 R 这样,一个企业的数据,就从对对应表格(时序数据表),转换为对应函数的系数(向量)了。 , Q+ i8 e0 c& u" Y
. M2 z4 _2 v8 A l v* d7 r
4 G; ^; G- h% [0 Y9 V$ h5 v 等一等,误差怎么办?用曲线拟合数据,肯定有误差的嘛。
1 A' Z( X' u6 M& s3 n 0 T2 K" W" n, @9 |+ O; _
6 o' p( i, \3 v( `. \
好,误差我们是用什么来度量的? 常用的有 R 方对吧。那就计算出 R 方,然后把 R 方也作为企业的数据之一,不就得了。 * b( j8 b! b d* P
" I) E% w- g6 ?! [7 G* b. n
W& S' b5 k4 n. l4 b4 u1 [$ O' M8 F 可能有人犹豫了,可以吗?
' a: A' }" o) k, N' ~: U+ r
2 p# r7 K; a! r4 N
; z; S! T i) E$ ^ 好,拟合的曲线可以一定程度代表企业进/销的基本规律,没问题吧? 8 T1 v2 {8 O/ n/ C! H! a
0 }; W( f# _2 Q! ~% Q
* D+ {- h! L$ b' [( v R 方计算了误差。换个角度想,可以代表企业的进/销,偏离拟合曲线的程度,对吧? ; F" z. J9 F% w# p7 W
9 C( l( _# k; o K% \7 k+ Q. f+ [6 P
" y% t+ g- V. K2 W: ^1 Q: F 这不就得了么? ! ^ X: ^( Q8 p4 ~5 C7 @
5 [5 ~+ I. t3 O& `
8 D( y5 d# k/ K8 w& V 当然,误差是肯定会有的。但至少经过这样的计算,解决了我们的燃眉之急吧。为了方便讲解,我们将这个数据成为 一数据 吧。
# X. q1 K7 k4 i) x1 G+ m' s
! N+ r, Z; S; O( W; i) B w/ @ : C3 |6 S& e4 b/ s
有人还会问,信用等级呢?我们不能忽视这个数据吧?da si ka ni。
( L i1 y& l3 ~: y
3 m( v% T ?7 V) j. G& r% n 2 T" h; v! I6 q! J, _4 S, x9 d' |' _
且看我怎么处理,我们可以像 NLP 的 Word2Vec 那样。我们用一数据为输入、信用等级为输出,训练一个模型,然后用模型的参数,或者其他东西作为 二数据 不就得了么?
' i, m( D. x/ z: p, } 4 P3 y1 l! R. R3 `7 A
* N+ l! X1 L3 V 之后再用 二数据 为输入,建立一个机器学习模型,用来计算企业是否违约的概率。 Case Close!
! Y- w# o% ~1 {2 i
) f* s. S) u6 v& V; ?. v " G7 ~- ]) ^" J. D2 N2 @ V9 K
问题二 求解 " [* r m; A" y
制定银行信贷策略是吧?
: r* a% Z l* u+ j
# V; a3 V I# Y! Q/ i# } @! z/ B3 J
8 f) {# {! F% S6 y 怎么制定?无非是利率、期限、额度咯~ : N; e4 @5 d, i* M! C' x
" e7 i. x, p/ w& d/ b+ \
4 P1 R. ^& G8 v, [
期限我们不管,因为没依据。利率和额度紧密相连,都是钱的问题嘛。
4 b+ C( k- a; c) b T 0 b4 r. j! R0 J; {8 {3 M+ i
* E. T) B* M) S% r7 E/ E2 I
让我们想象银行是为了干什么的。商业银行肯定是为了赚钱啊,哈哈哈哈。 ' B: ` |) g. K/ v3 q
* J- c/ H% G- s( j. i1 x) f1 M1 k
0 i0 Q) |. O2 {7 }# C 于是,问题转换为,求解一个优化问题,即选择合适的利率、额度,使得银行的利润最高。 7 |( X) F* ~5 u- T* e
: E( [+ [+ m7 Z; b, }7 b6 r* A1 E# }8 F
; p8 e& `# B. r. p" h so easy?ok?
. b2 G( h0 }6 z4 W. `- S1 E1 m
; R5 i5 S( n) h) p6 S0 ] ) o7 G1 `7 o% |0 R$ w9 f
于是,最根本的问题,就要对银行的利润建模咯~~
! |3 i3 S; x' E. a- l% O ; p% u9 |4 t; X* U% m
& k0 K3 { W d- k6 I
利润的期望 = (1+利率)^(时间) X(企业不违规的概率)X(企业愿意借钱的概率) 4 h: m8 \$ l1 u2 N# @
7 B0 ~# |1 _9 a
, V9 T6 V8 G$ A5 L3 V 用期望近似利润,case close,say goodbye。 3 s+ I9 s3 O# d8 j5 ]2 j" R+ A
4 K" _( A. M0 i0 {# v5 h
K- k. b4 [4 F
至于优化问题,加上题目约束后,就是一个约束优化问题了,怎么求解?方法实在太多了。我们训练机器学习模型,不就是求解一个优化问题吗?作为弄机器学习的,你不会连求解一个优化问题都不会吧?
% p6 |: f4 c _4 ` , } \; S/ W, Q3 E) \
7 _! a1 a+ d7 H. W, w! L
有的人会再次反驳:可我们这次求的是一个约束优化问题啊! & h' o! R% ~* e8 ^; U
( ?6 U3 E' K' c6 E; p% ?
+ p5 ]1 E# B: l1 _
我会答:你用罚函数的方法,不就可以将约束优化问题,转化为无约束优化问题了吗?
! P% _" ?; ^, Z- d$ m" U 4 B! d7 B3 y$ n
$ e S$ I) N& e
问题三 Q4 e& i: b9 D9 I- O9 g$ X
突发状况会影响企业的运营状况,所以我们只要将 一数据 的 R 方微调一下,不就得了吗?????
# G- Z- a: G# p. {
4 H% g6 f& D( k7 J. e, i4 J# V 7 A3 l% b' P% w9 R0 S/ a
有点简答吧?
! d6 P0 \4 v% B L! |/ a& n 7 b ^5 \% u4 @2 X# L/ Q" R
- Z2 ^! _5 @" f- \) I 最终总结
% {& X# c$ z2 x& _% D+ c! R' t: i C 题,似乎是最简单的。但处理数据,比较麻烦,可能很多人卡在这里的吧。最难的一个点就是:如何将一个时序表,对应到一个标签的问题了吧。
* X4 _! H3 V& j2 f2 _* O0 } ' f2 Y2 @6 w: L$ j0 h- n
9 X( ?8 V! j% Z6 z6 f7 V7 b
好了,最后一次数学建模比赛了,大家江湖再见吧。
! T& O r: k3 X5 z- S ————————————————
4 E7 \# q4 U) S* \ 版权声明:本文为CSDN博主「zhuo木鸟」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
7 C& r! u2 G- e4 F 原文链接:https://blog.csdn.net/weixin_42141390/article/details/108580140 4 i2 }* J! Y( k" F ]( u4 Z/ G
' }0 Q6 y' Y' O" f- P0 b0 @
i3 `5 v) m" F0 V- l5 G( }2 G
zan