在线时间 1630 小时 最后登录 2024-1-29 注册时间 2017-5-16 听众数 82 收听数 1 能力 120 分 体力 565664 点 威望 12 点 阅读权限 255 积分 174922 相册 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题总结
5 O: ^5 B7 M# f7 t
( Y% K2 M7 e; \5 O 首先瞎逼逼一番,吐槽一下题目和比赛经历,对这部分不感兴趣的可以跳过:
( Y0 F3 m* b O 虽然我是周六下午才开始做的… 总的比赛时间不到两天,不过好在一个人,不怕拖队友。至于题目,我第一眼就喜欢上了 C 题。我想,恐怕很多人都喜欢 C 题吧,因为赛后做了一个总结,发现学校选择 C 题的,比选 B、A 题的加起来还要多。 # u( W! e6 V: A: D$ {! U
1 k# A' l7 Z4 l5 Z O& r3 ?: C9 N
: d# R* [; _7 S; e" _7 }
为什么选择 C 题呢?因为有数据处理… ( r2 Z1 Z6 Z4 I& C
" |% L* ~' h' T5 j) [
. I2 b( T ?. i, B: v 所以无论它多难,我都选它,哈哈哈。 / |0 S y; r- Y8 M
5 b( d6 g" R: C Y6 H* [/ Y
2 @4 l" x! O1 V1 k) D 仔细看这一题,它与机器学习好像有区别啊。说起机器学习,我会想到: - Y. D- t" s8 D/ M) k7 Y
* r0 g1 j0 h: S& H' A
9 X6 {% q" J1 a. C( O% m3 Y* a
分类 $ {9 f; K9 u1 t8 f q) l K
回归 5 Y1 T, \1 s G8 g6 m
拟合 3 {" I, x0 V4 @) _ L+ k2 Y
预测
5 D, H' C) b0 @- G" n- c% Y$ F 但是,这题… 好像不是一种,用数据拟合,然后再预测的问题啊(机器学习的通俗定义) 2 n8 H7 C' M6 X
. F7 X p% |* Q1 W% v
$ [8 Z5 k- ~5 R1 P9 W1 M' k
好吧,选都选了,只能硬着头皮上了。 + A+ H* D1 S' g' f+ n
7 L: V+ a) d! }; ^0 ?
0 J; W0 O2 Z' f 问题分析
8 q. q0 Z0 L- K! o5 J" m! @ 根据附件1,定制一个量化的信贷风险; - G6 g0 F$ m0 }- {0 P8 Y
为银行制定一个信贷策略
! L. f* w+ _# o% Q2 A 有突发状况是,上面两个问题应该怎么重新规划?
- k* D" T( B* Z6 y6 T 三个问题,我们分别称之为问题一、问题二、问题三。
4 H5 s8 e' o2 x) S: K7 g# n 2 R9 E8 P" q- d" ^) P
; t0 x7 n% \) {- o0 E3 f" P 数据说明
* Z$ g2 ?& b* v4 z8 @# Z 附件1:sheet1:给出了企业的代号,企业有无违约的情况,信用等级
. u2 z; r+ Z5 r* t' m6 y sheet2/3:给出了企业的大约 2 年的进/销 量的发票数据, ; R7 l+ X) q) u
附件2:给出了企业的大约 2 年的进/销 量的发票数据。没有给是否违约、没有给信用等级
' I$ F) [2 p F: r8 x7 p8 W' c+ f 附件3:给出了银行的利率,以及相应利率下,不同信用等级的企业,不愿意贷款的概率(原作是比率,我感觉能用比率近似概率)
" W) c7 z, v* x' \
' ?7 u* s6 I6 P$ [" N M " t; |1 r9 G! h2 I* b" d9 q
问题一求解 $ R! V# O: H* }! T. B
你们看,附件1 比 附件 2 多了什么?信用等级、以及有无违约记录。而问题二是要我们求附件二中的企业的信用风险的。所以,仔细一想,肯定是在暗示我们,1、用进/销 量数据,来评价企业的信贷风险。2、信贷风险的量化指标,需要建立在企业信用等级、是否违约两个变量上。3、设法建立进/销 量数据与信用等级、是否违约的关系。
7 F e) I+ v, r Y S& ]
' b0 D) [: z* ^/ Z* S! ^0 y8 @
9 Q9 l( G9 ?+ r& n 好了,第一步咱们清楚了,就是要建立信贷风险与信用等级、是否违约的联系咯~
5 v! p8 {9 B+ ^) t0 l
! t, V. u/ ~/ p7 O: K8 k ' K2 l. ~( N% Z2 ~' N# v
我查阅了一些文献,虽然说得都很复杂,但概括来说,就是一句话,我银行借钱给你,你还的起吗?这就是信贷风险了(说得比较通俗了,有点对不起学金融的同学们)
" s; `/ \! A: p4 p: p ( O0 v3 S3 |% ^& q+ J* G$ z( f
v) S: A. G* Y7 a/ l8 o4 i/ G4 t 于是,我将信贷风险定义为:企业违约(赖账不还)的概率。 # N+ H+ d" |# v" o
9 A) ^: D( x1 A; Z* k8 s% g" A ; k' o4 }4 S A4 I) [$ L
而机器学习的知识告诉我们,分类模型除了能够自动判断个体的类别之外,还能够计算出个体,属于该类别的概率。于是,这不就是一个机器学习问题了吗? 4 n8 X! @/ D _4 D2 }
9 e0 j9 k B2 h; M/ C
- @2 j4 ^: S* f 这个问题就是:根据进/销 量数据,训练一个分类模型,然后将模型的输出,确切的说,概率输出,作为信贷风险,Over。 " q7 s9 m$ N& o. t- R7 ]9 Z0 Y
0 [5 O( B& H( c$ ?8 Z
( X' b4 n9 _0 Z: m' `
但是,进/出 量数据是时序性的呀,如果按照上面的思路,那肯定是要一个企业作为一个样本个体。可是…,这个样本个体也太奇怪了吧,是一个时序数据,哇,都能构成一个表格了。。。 3 i& N: W+ d. e. s3 n: [0 p9 i
0 g6 A3 C* c0 s. y5 N' c
! I8 x+ y( C% q' k; ?( H
按照上面的说法,这有点接近自然语言处理了,也就是一片文章,对应一个类别。这里是一张时序数据表,对应一个类别。天!麻烦! ! {! v1 q4 D5 h$ N
( e- f7 v. c( c/ }) _1 k " E- Y1 _* ]' m3 n
有些大佬可能已经豁然开朗,用 NLP 来解决啊!!!
5 N" V2 P/ ]3 y. K/ v 0 t) ]: k) N# k, ~. S) G% }
0 W+ O( Q# M4 Q) b- Z( U$ K
否也,这种跨越对我来说,有如天堑(虽然我是搞 NLP 的) 3 t; L! f" X% i% D5 g
7 q6 ^3 m( o, O/ `3 t
+ U% q1 s1 y( v5 B% Q- m. D
因此,我决定,转换一下我们的数据集。 8 @3 F$ p8 C3 {; w8 _$ S3 d/ Y8 M
$ e* L/ I, ?2 h. }: ^+ P3 D
! T% G; W( O# s$ N, a0 f- X( b9 B 数据处理 3 R( [3 {0 C/ B5 t6 P7 s9 X" X
首先,如果按照上面的思路,用机器学习模型的输出,作为信贷风险。那么就要让数据变得简单一点。 ) k f, \$ I" t# M
, E3 y' d+ B9 P9 A+ t
+ z9 s# y3 z% G3 f/ ^ 原始数据是这样的:多个企业,一个企业包含了大约 2 年的进/销数据,一个企业对应一个标签(是否违约)。 * o; f$ a! o/ J/ m: Y+ i; H) w
5 X4 Y F8 s/ y 2 @7 ^+ C7 Z# c" w2 J
我们希望的数据是这样的:一个企业,对应一个向量(行列都行),并对应一个标签,这样才能用机器学习模型。
0 c: b9 Q# ]9 B0 T' l W' ]& D* c, E7 D; ?8 Q
/ M* _: K: K1 J# m$ h
因此,必须将时序数据弄掉!!!
+ h( m% e9 U! c7 W ) v, R5 O& A. M
$ v$ _( K; m' U: k+ I
由于数据是按天给出的,首先,为了简化,我们以 30 天为单位,将数据合并!
, V! _1 {0 x ]
, l4 W* `4 T$ |7 F
. }0 A, O: _% U 然后,用一条曲线(我用的是 9 次多项式),拟合时序数据。有了曲线之后,我们不就可以用函数的系数,来替换原始数据了么?
9 p/ h( m: F& k ! A! Z0 M/ ^$ x$ s( m
- j1 b" x" A: u1 L; V1 T ? 这样,一个企业的数据,就从对对应表格(时序数据表),转换为对应函数的系数(向量)了。 ; F" e/ K }" X8 G
8 A" B9 X: ]4 K3 B+ r3 }. t. D
, d9 H. {# v4 i6 W 等一等,误差怎么办?用曲线拟合数据,肯定有误差的嘛。
+ H% E! Y: u3 a1 U
* B. j8 t8 q9 Z$ Q! i5 k 5 X& L9 W% V* Y7 N% r' ~
好,误差我们是用什么来度量的? 常用的有 R 方对吧。那就计算出 R 方,然后把 R 方也作为企业的数据之一,不就得了。 ' u" B7 ~2 c" o* {7 O5 x, H& M
, \, L) R, k1 z3 m ~* `8 \
# G& B) |# q" W" D9 I' s 可能有人犹豫了,可以吗? 4 Y! [' B9 e& C' O6 e, j* p* i
: l& c# |6 l4 l4 Q: Z* l
" U" A* ]: f$ |' A. X) x 好,拟合的曲线可以一定程度代表企业进/销的基本规律,没问题吧? 0 ^# H; r# h! }0 y. e- `6 \* _
- N$ Q$ ^! V9 J6 t7 s. W; _& D , w$ e' y% H9 H8 ^' t
R 方计算了误差。换个角度想,可以代表企业的进/销,偏离拟合曲线的程度,对吧? ( J% C' }8 V# f
7 O2 {* Q$ }. B. |) k 6 ~/ |, L; l e+ Y' U/ H
这不就得了么? 2 w" o, Z- b7 x9 ?) Q* v/ t
( P+ ^1 J+ h8 K3 B& u& Q
9 o9 O- _- k( Z- x) J 当然,误差是肯定会有的。但至少经过这样的计算,解决了我们的燃眉之急吧。为了方便讲解,我们将这个数据成为 一数据 吧。
* s, J- H* B2 c2 f2 X6 K9 Y I" u: f% u7 m& v; e8 v0 S" l
1 w; ~0 k% F) Y( [$ n) e 有人还会问,信用等级呢?我们不能忽视这个数据吧?da si ka ni。
% m$ y$ x8 ]6 I! f: H! u6 ]( x * V4 A1 Y& J7 y! O
. F: r U4 ^1 e
且看我怎么处理,我们可以像 NLP 的 Word2Vec 那样。我们用一数据为输入、信用等级为输出,训练一个模型,然后用模型的参数,或者其他东西作为 二数据 不就得了么?
8 E& h9 G8 f; ?- ^5 ~ % e& E, D; e& V" ^ A: {
0 Y8 [! m# f+ e& d# ]) V 之后再用 二数据 为输入,建立一个机器学习模型,用来计算企业是否违约的概率。 Case Close! ; x2 l3 J5 e$ ^
* }' E. Y$ l) K, _. `- h
+ Y7 g) A3 b6 f
问题二 求解
% F9 X+ }' }# H O+ { T5 l 制定银行信贷策略是吧? 2 L1 o5 S+ H3 H" U% f1 s: @' j
7 @1 s9 P& N8 k5 j
; x* V: M* t9 X+ `! [' y6 |
怎么制定?无非是利率、期限、额度咯~ : z3 B1 d0 V9 d' b- ]
4 r" }1 l2 _% ]0 W; N# Q1 g% W # t* Y8 C3 x3 b, f: t% F3 X; Z
期限我们不管,因为没依据。利率和额度紧密相连,都是钱的问题嘛。 + d3 e' `5 E" _
3 q( @9 g. Z7 E7 w8 V
& w$ B/ H6 p5 y 让我们想象银行是为了干什么的。商业银行肯定是为了赚钱啊,哈哈哈哈。 k6 s6 V) J; g9 }6 N- f2 @+ P
! b) g6 c9 r$ W
+ [' Z. F9 ^% i+ s W' L
于是,问题转换为,求解一个优化问题,即选择合适的利率、额度,使得银行的利润最高。
- O7 J4 Y+ b! M* C& f+ t v" C7 D+ u6 [+ @1 O0 U
; I% u* }0 ?" C' s
so easy?ok? # |3 p G: j* y* D
4 h% f- f& z& n& F" t4 M& h: X$ p- _
% y2 {0 f) F; J& ~! T: N6 I: } 于是,最根本的问题,就要对银行的利润建模咯~~ 3 |0 l! O% M9 S/ Y0 m9 K$ M
4 `1 z! l: z7 ?
6 X; ^) r; m6 E3 j$ F: }
利润的期望 = (1+利率)^(时间) X(企业不违规的概率)X(企业愿意借钱的概率) 6 \% U& T. I) ^$ B: J; ]
" L: e0 [4 a" r4 d& N1 A
* j9 |4 l' [8 d5 o1 m0 F3 h" U
用期望近似利润,case close,say goodbye。
8 {7 x; h* w$ d" B5 y
6 R9 @/ t4 V6 O' G3 R! S/ p6 Y1 z / A* g0 Y3 ^1 k l. t) K; B
至于优化问题,加上题目约束后,就是一个约束优化问题了,怎么求解?方法实在太多了。我们训练机器学习模型,不就是求解一个优化问题吗?作为弄机器学习的,你不会连求解一个优化问题都不会吧?
; I5 \: |3 S @( t/ j6 ?2 m. b
" T6 n- l t/ W$ S # j- r: a, X' ]6 n' k) N" u( l4 t
有的人会再次反驳:可我们这次求的是一个约束优化问题啊! , Z: D" E4 q) M9 \
0 o; i u/ R0 o( D0 _2 E
' E( L6 }; k* _ 我会答:你用罚函数的方法,不就可以将约束优化问题,转化为无约束优化问题了吗? * D% ]& w: x" X, @
9 B# A4 P, v* ]! T: o& j E+ Y# v' T
& }0 X1 |7 e8 n 问题三 1 t9 R" r/ h" A' y" S: \
突发状况会影响企业的运营状况,所以我们只要将 一数据 的 R 方微调一下,不就得了吗?????
2 X: b; i' l& V' v ; B4 H. w2 ]. x9 d" Q3 `+ s
% g5 n) }9 j8 R; z8 O8 e
有点简答吧?
1 G/ J' V+ b( V$ m! h8 Y$ P * L! y# J# l) m/ L8 b {2 u, c% F
/ ?* x& W6 h& R/ s 最终总结 % B0 s1 Y& W' E5 M. f* G
C 题,似乎是最简单的。但处理数据,比较麻烦,可能很多人卡在这里的吧。最难的一个点就是:如何将一个时序表,对应到一个标签的问题了吧。 . n D1 D& s. e; k5 h; ~ e
6 R. ?' W+ \4 C& m8 b. V% @4 { ; L& D5 ?; y7 H1 p
好了,最后一次数学建模比赛了,大家江湖再见吧。
# A' H- w$ S' z& b ———————————————— a# w+ s0 l% z, w* c
版权声明:本文为CSDN博主「zhuo木鸟」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 , C7 N% F" s9 N) J
原文链接:https://blog.csdn.net/weixin_42141390/article/details/108580140
' Q9 @5 F- d, a2 N) a9 T6 p
. w* p0 E3 q' r0 p' F
6 K+ W2 s/ ]' z6 X
zan