在线时间 1630 小时 最后登录 2024-1-29 注册时间 2017-5-16 听众数 82 收听数 1 能力 120 分 体力 563324 点 威望 12 点 阅读权限 255 积分 174220 相册 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题总结 - Y# ^& `/ v$ I. H$ A
5 _& ~0 Y2 _1 [4 ^ 首先瞎逼逼一番,吐槽一下题目和比赛经历,对这部分不感兴趣的可以跳过:
: ^# }# U& ~; m+ R- g, y! g4 M 虽然我是周六下午才开始做的… 总的比赛时间不到两天,不过好在一个人,不怕拖队友。至于题目,我第一眼就喜欢上了 C 题。我想,恐怕很多人都喜欢 C 题吧,因为赛后做了一个总结,发现学校选择 C 题的,比选 B、A 题的加起来还要多。
" S$ t* G3 }; K/ }
" X! ~! K% Q# D p, y5 I ~
( _; N0 y7 U8 @% I) a 为什么选择 C 题呢?因为有数据处理… - P1 H& C, Z( e
+ x, v- j6 B+ A ( w I- R" ?% K/ n! j
所以无论它多难,我都选它,哈哈哈。 ) P+ ?9 Z$ j8 ?6 q( m. L& I
, ?. s+ Z6 I0 W; m5 e3 S
& U& L+ z1 y( ~) m 仔细看这一题,它与机器学习好像有区别啊。说起机器学习,我会想到:
" V& ]9 y6 }5 f- i- @. K( j6 ?$ J . t3 Z4 b7 I) R3 [; M
z6 \ i, V$ |5 M5 z5 c
分类
6 A0 U: V0 B0 y$ ]( n 回归 9 P0 X3 S" {' w) d6 d" g( e) l; C2 a4 N
拟合 1 b/ r9 O- t. x, G0 R
预测
h p! |5 c( m/ `; I" K6 t 但是,这题… 好像不是一种,用数据拟合,然后再预测的问题啊(机器学习的通俗定义)
5 M8 m/ S0 j4 O" i8 {1 C& c
6 B/ G2 G1 Y& f* T
7 Z8 O% `6 b6 J3 b6 ^9 V 好吧,选都选了,只能硬着头皮上了。
! Z- `0 v, c0 I* C) ] a0 G( e; t " ]& o$ u( _2 b6 O% B" i
0 H* O. E# o% Y/ b. A5 }$ x: Y
问题分析
- {% _+ |( U" G: i/ s 根据附件1,定制一个量化的信贷风险;
" `3 x) Q) `* i/ k9 ? 为银行制定一个信贷策略
% c3 P+ q& d" G 有突发状况是,上面两个问题应该怎么重新规划? . {' T9 K7 C; ]
三个问题,我们分别称之为问题一、问题二、问题三。 + E+ |6 z; n8 f; P4 t4 O* J
# Y/ }, Q. u; G" Y4 g" t
- w! ` t) y3 H4 j 数据说明 S p% H0 a/ N! g0 y
附件1:sheet1:给出了企业的代号,企业有无违约的情况,信用等级 0 E% `- |* ^) D' r0 Y8 r! {1 a$ u$ r
sheet2/3:给出了企业的大约 2 年的进/销 量的发票数据,
* E: Y1 W' b3 P M' K& _# V, C 附件2:给出了企业的大约 2 年的进/销 量的发票数据。没有给是否违约、没有给信用等级
7 c" _3 C, T. ~; B7 b# `: z 附件3:给出了银行的利率,以及相应利率下,不同信用等级的企业,不愿意贷款的概率(原作是比率,我感觉能用比率近似概率)
" {4 H0 t5 }# E( ~ . h, M7 `/ D3 n$ S1 ^& G
/ n3 S. J$ p% }/ _; e% V 问题一求解 ; m& L! \! X8 p3 A
你们看,附件1 比 附件 2 多了什么?信用等级、以及有无违约记录。而问题二是要我们求附件二中的企业的信用风险的。所以,仔细一想,肯定是在暗示我们,1、用进/销 量数据,来评价企业的信贷风险。2、信贷风险的量化指标,需要建立在企业信用等级、是否违约两个变量上。3、设法建立进/销 量数据与信用等级、是否违约的关系。
5 E Z! g* d+ |5 P9 [2 n3 L5 E! O : ?% @, z- e" e
! w2 B) l$ X' ? 好了,第一步咱们清楚了,就是要建立信贷风险与信用等级、是否违约的联系咯~ " }) I4 {) L# F( P$ V6 v4 i6 q
$ h3 z2 ]' [- b- a' x( ~1 W8 C& v* p ( p+ `3 k$ G y; Z- K7 Z6 M
我查阅了一些文献,虽然说得都很复杂,但概括来说,就是一句话,我银行借钱给你,你还的起吗?这就是信贷风险了(说得比较通俗了,有点对不起学金融的同学们)
0 Y8 U" t. N+ A- `) G' U; W7 u
% A2 x' }; n }! a9 g9 f
8 h# @1 |% s0 ?7 `: } 于是,我将信贷风险定义为:企业违约(赖账不还)的概率。 ; }( R. i* S) ]( Y( L
8 V8 I" Y% [; E' J* L' u3 L ! ^+ ]! K( `; D `; O0 ~
而机器学习的知识告诉我们,分类模型除了能够自动判断个体的类别之外,还能够计算出个体,属于该类别的概率。于是,这不就是一个机器学习问题了吗? " K* u( Z$ N3 ^; m# i9 g
" w p7 Q8 n( u# O# S$ u3 c, l + K5 l N% h, P4 G* @" t$ X0 L3 M
这个问题就是:根据进/销 量数据,训练一个分类模型,然后将模型的输出,确切的说,概率输出,作为信贷风险,Over。 1 O$ N$ z5 Y. x9 Y7 b9 F2 v6 `
4 ?/ B4 I- j4 p3 I( i
1 i4 V. `$ R( I. S, k2 Q1 U 但是,进/出 量数据是时序性的呀,如果按照上面的思路,那肯定是要一个企业作为一个样本个体。可是…,这个样本个体也太奇怪了吧,是一个时序数据,哇,都能构成一个表格了。。。
+ {0 j9 ^" r4 |+ e9 j6 _7 C + A, o& x7 s4 g! w# P9 B
9 v: | u1 n2 f$ N 按照上面的说法,这有点接近自然语言处理了,也就是一片文章,对应一个类别。这里是一张时序数据表,对应一个类别。天!麻烦!
- N+ _7 {6 x! R+ ~* \4 l - |! v! H# ~+ s, |1 Y
0 u0 j% o" f# N4 j2 e 有些大佬可能已经豁然开朗,用 NLP 来解决啊!!!
. |# p3 R. T" s % U- k' I M& w. \) R6 U/ J
$ r/ }4 L% [8 {! e 否也,这种跨越对我来说,有如天堑(虽然我是搞 NLP 的) 0 O$ A; o8 t. o# ?$ `
4 s6 d( |1 @% z) L: F. }1 ~
) z& \# v1 e* u3 x1 u- [2 K
因此,我决定,转换一下我们的数据集。 / P6 U" f$ n( h& M
) q; H# ~2 D6 K# y* X. U' J
9 [) ?) B7 o9 B7 Y6 N# w6 C- V 数据处理
; h2 Y0 _5 K7 D7 o' M 首先,如果按照上面的思路,用机器学习模型的输出,作为信贷风险。那么就要让数据变得简单一点。 6 N+ U5 _1 u& D# m
; G& D' G& @2 q0 @7 z$ M, d" W) F
s. |4 c( Q2 _( ?; b% ` q
原始数据是这样的:多个企业,一个企业包含了大约 2 年的进/销数据,一个企业对应一个标签(是否违约)。
5 F; M/ p. Y5 X4 w5 I$ r0 m
1 T! `1 [- l9 o- S" ]+ N Q
1 l( T7 r, B9 F3 O" R- v% ~; g* J 我们希望的数据是这样的:一个企业,对应一个向量(行列都行),并对应一个标签,这样才能用机器学习模型。 % u1 i% _: T6 y# Z# a$ Y" Z$ E$ x
- K( F$ u. H+ o* Z+ e. M
4 R* ?' H* J1 B$ h/ `% l: u 因此,必须将时序数据弄掉!!!
$ d' ]1 I8 W$ f1 D+ ], ?$ | 7 A0 s5 U; U I) C2 D
: |; y$ N8 ^6 z7 H) y0 g 由于数据是按天给出的,首先,为了简化,我们以 30 天为单位,将数据合并!
( |, X+ P6 {, M4 S* S8 i4 l. k
" L+ s1 h) A* g: l$ r" ^
& R' u+ @& f. t6 J0 t 然后,用一条曲线(我用的是 9 次多项式),拟合时序数据。有了曲线之后,我们不就可以用函数的系数,来替换原始数据了么? 2 ]3 y/ `( p. `# e* j4 H% @7 I
2 a) ~2 u/ j5 K( G D
. ?( Z% L0 P' I7 z f c- s
这样,一个企业的数据,就从对对应表格(时序数据表),转换为对应函数的系数(向量)了。 r# X- N$ U8 T5 |' Q+ F% ~
$ y; z' ]8 X! S6 @. I* I9 h) C 1 w+ y9 Q4 B2 b. ^! a3 N
等一等,误差怎么办?用曲线拟合数据,肯定有误差的嘛。
) p, O! l! l1 ?/ h0 t- Q / h. M, |$ `) h$ H% @. C
5 R. B* _( Y' n6 e4 }- H" W0 P 好,误差我们是用什么来度量的? 常用的有 R 方对吧。那就计算出 R 方,然后把 R 方也作为企业的数据之一,不就得了。 " s1 b& X8 F) t# l8 v( K. n& V
" M0 N1 O5 y5 N1 p( H$ [ t7 h+ [7 B% C, @
可能有人犹豫了,可以吗? ! W. O% \3 `3 q% C3 ~ A0 V# e
# j( X. H3 s& L0 l# b, J0 Z & l9 o, z# B* M' r v
好,拟合的曲线可以一定程度代表企业进/销的基本规律,没问题吧?
4 h. {( ]: R. d) N
8 Q" ]. g, l: I* P2 M; g. ?) o6 C/ h
/ E+ ]* ?" r# E' |4 W4 Y# ~, b, a R 方计算了误差。换个角度想,可以代表企业的进/销,偏离拟合曲线的程度,对吧?
H3 O$ k4 a+ M0 q# ` # L# R" z$ L, h
) h9 E9 x( s8 D. @0 v3 h
这不就得了么? ' b. s7 r9 W2 U
5 z" v7 N$ [. W1 I8 G( W
0 h4 }" \2 I3 {# z 当然,误差是肯定会有的。但至少经过这样的计算,解决了我们的燃眉之急吧。为了方便讲解,我们将这个数据成为 一数据 吧。
: W9 g: O9 I( k2 s) T. x, S, {7 W . {6 v1 |# b8 K7 `* _0 V- K
) W5 U! _4 S6 _$ J) ]7 r) e6 [* |: p+ U8 a
有人还会问,信用等级呢?我们不能忽视这个数据吧?da si ka ni。 / }; ~. k6 i- R! _$ m# ?
, v9 a+ p$ l% R+ N: a* E0 G2 F
[$ C8 v$ F6 R; }8 r 且看我怎么处理,我们可以像 NLP 的 Word2Vec 那样。我们用一数据为输入、信用等级为输出,训练一个模型,然后用模型的参数,或者其他东西作为 二数据 不就得了么?
, y6 [( w0 _4 e: ]: D6 [6 A* }
( r# \, A/ \( X6 c& P
$ d% N% @2 _: c4 D 之后再用 二数据 为输入,建立一个机器学习模型,用来计算企业是否违约的概率。 Case Close! % x1 A& M) _( c, m/ }
2 ~- y% _# Q: ?" G- x : j0 l% i9 F) J: D2 g/ ]/ G, L
问题二 求解 5 W5 l4 C, v$ q* J! v
制定银行信贷策略是吧? 6 t% `+ A5 ]0 e- P. Y
( ]; a, b, ?) T% J8 E . R9 x1 A! _ P' _0 P, W) t. G6 [
怎么制定?无非是利率、期限、额度咯~ : a% s3 W V+ b' u8 Z( Q* M4 }, m
( n% m( c3 R2 O; L9 ^3 g
9 }& t( k4 l y3 }, M 期限我们不管,因为没依据。利率和额度紧密相连,都是钱的问题嘛。 9 Q* T: d6 H- u8 T
2 y: i. B* Q2 S3 x( W : l4 ^, t6 Q- O; i$ ], L
让我们想象银行是为了干什么的。商业银行肯定是为了赚钱啊,哈哈哈哈。 ( F9 j: h( o) d+ q/ G0 V
+ r6 J8 S0 Q/ d0 u+ t c/ @: w& ~ + s0 \" U5 L! \) g, {- T% B( b' C
于是,问题转换为,求解一个优化问题,即选择合适的利率、额度,使得银行的利润最高。
7 u5 _# s2 @) L+ _8 t& \9 H8 A) ~
2 e3 J6 {" `/ z) H' u, U , M& H& c* k r& u( U3 ^ }" Z6 _
so easy?ok? ) z$ ~$ Y0 g; l8 p6 r! L
1 W6 p9 D* C4 ^. a x& r! U
, r$ ~' U5 W& e. N/ U. A 于是,最根本的问题,就要对银行的利润建模咯~~ 5 i( ~+ q5 N& W4 k
" F& l) S' Q5 s. K( ]! _, O
. R. R( d3 F4 w" k" f 利润的期望 = (1+利率)^(时间) X(企业不违规的概率)X(企业愿意借钱的概率)
, i& i. U2 T( P' d) _$ A* i * D0 m( k. J# T2 @) Y, P) C# T
4 x" V9 Q6 f: `1 h, @ 用期望近似利润,case close,say goodbye。 ( ^) N: `0 ]' z3 i+ ~
6 R: Y: \3 w6 I, l, _
+ O2 Z$ y' [" Z( j; U% \$ D2 z
至于优化问题,加上题目约束后,就是一个约束优化问题了,怎么求解?方法实在太多了。我们训练机器学习模型,不就是求解一个优化问题吗?作为弄机器学习的,你不会连求解一个优化问题都不会吧?
: B2 B ?& ~5 U4 Z0 Y7 M" r
. ~6 w* g/ I# r5 w! G7 M( n1 A4 \2 B
+ x5 T4 A7 q0 ^0 K1 X0 P 有的人会再次反驳:可我们这次求的是一个约束优化问题啊! @( K- b: ^" B/ ]5 N. ]9 n0 F. T+ S
+ o$ b5 y: S2 ^# @
; o1 b% j6 y H, _4 X- W
我会答:你用罚函数的方法,不就可以将约束优化问题,转化为无约束优化问题了吗?
8 q2 B* A3 w4 w7 `5 {8 n Y ( u* i, ^) x' H8 R% f& ]: {) v
- `. _' Y1 W0 C 问题三
O) E$ E) n% b6 V2 T# q 突发状况会影响企业的运营状况,所以我们只要将 一数据 的 R 方微调一下,不就得了吗????? 6 G9 g* _6 }5 K5 |
8 ~: m: A; E9 n ' W+ q* q; y# q# c* m- H
有点简答吧?
6 K2 C6 s4 J' p1 a2 I, J3 n1 [ / `; e, n$ y6 ?- Y4 |
* L& l% k% J2 X! R. e7 F
最终总结
9 l3 Z9 W+ @, ? C 题,似乎是最简单的。但处理数据,比较麻烦,可能很多人卡在这里的吧。最难的一个点就是:如何将一个时序表,对应到一个标签的问题了吧。
( F) E/ m3 Z1 l! s: j
8 c3 Z+ _1 _0 x; v1 q/ f 9 \; h( R8 x: ^' j9 a$ A4 E
好了,最后一次数学建模比赛了,大家江湖再见吧。
6 `' x) Q1 w( ^3 n- k' \ ———————————————— 6 I1 C7 o( u5 s4 N t( ]& C" R
版权声明:本文为CSDN博主「zhuo木鸟」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
8 b+ R3 ?$ `7 D* d/ K/ W 原文链接:https://blog.csdn.net/weixin_42141390/article/details/108580140 ! O. S8 W, x/ r6 B- N: }
. A: C4 d( m. c1 `! Z
& N- S5 d1 o) i) a+ ^8 H% C
zan