在线时间 1630 小时 最后登录 2024-1-29 注册时间 2017-5-16 听众数 82 收听数 1 能力 120 分 体力 563312 点 威望 12 点 阅读权限 255 积分 174216 相册 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题总结
4 W0 j+ D. X+ C" u$ u" \! F. Q1 @5 b
: f0 ^, ]% v* ?& u 首先瞎逼逼一番,吐槽一下题目和比赛经历,对这部分不感兴趣的可以跳过: 2 Z' Q* u, s5 D% {) O! J" h
虽然我是周六下午才开始做的… 总的比赛时间不到两天,不过好在一个人,不怕拖队友。至于题目,我第一眼就喜欢上了 C 题。我想,恐怕很多人都喜欢 C 题吧,因为赛后做了一个总结,发现学校选择 C 题的,比选 B、A 题的加起来还要多。 4 ^) c/ N$ ^8 L7 v* f
) T( U+ e, O/ g5 B7 E" z
- g$ A2 p, r# D$ \9 W# m 为什么选择 C 题呢?因为有数据处理… 1 J5 p1 j% n0 P8 q, M$ W& A
8 X! ^- ^# b. w7 D( N # V. v& D, \/ @
所以无论它多难,我都选它,哈哈哈。
; {# z* _# a+ ]2 I$ \ / S- C4 x& Z. N) o4 [8 O5 W
d9 C- n& Q. Z/ `: Y. K4 E
仔细看这一题,它与机器学习好像有区别啊。说起机器学习,我会想到: ( f% M# g6 k# q; U) S
9 \( [* `& j, _7 E- J2 }- n
7 C! Y& N5 ~6 s4 V1 u" o
分类
4 m9 o2 e) v% I0 B 回归 $ M+ Q) W) F0 x6 I, V2 E, I4 c( }% S5 ^
拟合 6 {7 N' n5 O' ^; @! M
预测 . k5 _% V+ p0 E0 N; M8 h
但是,这题… 好像不是一种,用数据拟合,然后再预测的问题啊(机器学习的通俗定义)
- B: W( X1 S$ A( {# L. `! _% u
: |& B; F* \( s$ a _$ r x* [5 k 0 o( b( C, Q* E$ |
好吧,选都选了,只能硬着头皮上了。 ' d# D) X0 H; c1 q- A' Q; k
: w) p, c( `8 r9 ?4 R6 t
4 f7 P1 y. O! [/ q 问题分析
; p C( _' m; Y8 m 根据附件1,定制一个量化的信贷风险;
3 R; a5 l; i( u& @* B6 G 为银行制定一个信贷策略 . b% `5 K3 M& c3 r
有突发状况是,上面两个问题应该怎么重新规划? % ] y7 d R" t/ P* G2 f
三个问题,我们分别称之为问题一、问题二、问题三。 + T3 T3 w5 C6 t V: E/ f
. C/ ^! v+ F) B# v5 z
3 [( S% ~4 |, i- s$ E2 [: Q/ l7 X3 u 数据说明
9 L7 c0 G7 V: }0 Y) Q. i4 P 附件1:sheet1:给出了企业的代号,企业有无违约的情况,信用等级
n8 ~5 C* \7 q6 z7 j2 n! { W. A sheet2/3:给出了企业的大约 2 年的进/销 量的发票数据,
m4 c4 e* c; g0 d: z0 n! l n 附件2:给出了企业的大约 2 年的进/销 量的发票数据。没有给是否违约、没有给信用等级 + e, }! j$ W1 p2 O# g
附件3:给出了银行的利率,以及相应利率下,不同信用等级的企业,不愿意贷款的概率(原作是比率,我感觉能用比率近似概率)
# L* a4 q; L7 ^/ ~' v9 t& }* O; H
1 `: V' L% U( v1 i% X & x: `# O8 d5 C5 R: P1 b* x
问题一求解 % f4 s& G: O0 i* T+ y, N
你们看,附件1 比 附件 2 多了什么?信用等级、以及有无违约记录。而问题二是要我们求附件二中的企业的信用风险的。所以,仔细一想,肯定是在暗示我们,1、用进/销 量数据,来评价企业的信贷风险。2、信贷风险的量化指标,需要建立在企业信用等级、是否违约两个变量上。3、设法建立进/销 量数据与信用等级、是否违约的关系。
) Q0 M8 r+ ]3 R7 C% O7 R+ v' Y" D . k s+ u" ~' Z) |
" Y/ W2 V0 }( m y1 Q; e9 s- G
好了,第一步咱们清楚了,就是要建立信贷风险与信用等级、是否违约的联系咯~ : w# ?& N6 \( Y" R
/ w! |& l, z8 J3 s. Z5 `' d
: Z% W" Y: L. `! w 我查阅了一些文献,虽然说得都很复杂,但概括来说,就是一句话,我银行借钱给你,你还的起吗?这就是信贷风险了(说得比较通俗了,有点对不起学金融的同学们)
( W8 |& v9 j' U) g' b, ^7 ~ }6 ]& ~& a, @8 x
- y+ {5 n% R- L
于是,我将信贷风险定义为:企业违约(赖账不还)的概率。
7 M+ `9 _# ^8 `. }5 H
7 Z! R9 h1 N, T6 A0 l$ X9 H& {
* q$ {6 a+ Q- b5 w4 v$ H 而机器学习的知识告诉我们,分类模型除了能够自动判断个体的类别之外,还能够计算出个体,属于该类别的概率。于是,这不就是一个机器学习问题了吗?
& f" K# z2 ^1 ?& t' T( E+ H: M : S. [$ F4 b2 S7 G/ R& d: c* W
4 v' V/ d) [5 h7 S/ @
这个问题就是:根据进/销 量数据,训练一个分类模型,然后将模型的输出,确切的说,概率输出,作为信贷风险,Over。
2 A. I5 h1 `0 o4 ?: y' A2 v0 U 0 |+ f9 K) @# J- ]
3 A' _) n$ x/ k' b5 G# o 但是,进/出 量数据是时序性的呀,如果按照上面的思路,那肯定是要一个企业作为一个样本个体。可是…,这个样本个体也太奇怪了吧,是一个时序数据,哇,都能构成一个表格了。。。
* b5 n+ W/ _! U$ o; _) m4 U8 D6 b# q& f
! W; @) z! F a6 H( o: b$ a u& q# d$ U) [9 k1 I; a" [$ Q
按照上面的说法,这有点接近自然语言处理了,也就是一片文章,对应一个类别。这里是一张时序数据表,对应一个类别。天!麻烦! . C5 S; G$ r+ e* {2 f
3 v6 C% ?, {, s" u2 Q
/ H* R/ I& ?9 c9 P 有些大佬可能已经豁然开朗,用 NLP 来解决啊!!!
/ K* T% Z: K$ `$ Y7 v9 |! Z : d& W2 G5 p3 V5 o
$ f2 [! k6 E' Y3 M) c/ h 否也,这种跨越对我来说,有如天堑(虽然我是搞 NLP 的) 7 r- T/ b1 [2 v Y: L
* Q. ]" Y; A W( E2 O/ j8 v
4 x3 A; N, _% |) P6 Z
因此,我决定,转换一下我们的数据集。
a0 q- _4 P( o5 o) H* X$ j 9 Y- o' I$ [- o' s$ W5 f
0 V% Q1 E8 m" T* c& W
数据处理
( n8 C3 f6 B6 W 首先,如果按照上面的思路,用机器学习模型的输出,作为信贷风险。那么就要让数据变得简单一点。 * O) i, c' O( S% N X
* J: ?/ R6 D- @1 T* a$ A& Z3 |' c7 t
. x) e. E$ v" p# m
原始数据是这样的:多个企业,一个企业包含了大约 2 年的进/销数据,一个企业对应一个标签(是否违约)。
: X' F3 b1 A' a" d ' P9 [/ z' m! V3 V. o/ `; W
& T; u, h/ C) O3 T8 ^/ F 我们希望的数据是这样的:一个企业,对应一个向量(行列都行),并对应一个标签,这样才能用机器学习模型。 , } V) q+ @1 ]
1 X6 d. i6 f/ t8 M% R
: l4 `% }. S q9 F 因此,必须将时序数据弄掉!!!
2 d7 U, W W! }: q: p. X
6 i: |' N' z. z 1 ?9 e2 c7 b, K- c5 A% u5 m- g
由于数据是按天给出的,首先,为了简化,我们以 30 天为单位,将数据合并!
0 \5 X9 S% U( f( P3 z
E4 z8 P) Q7 s% [$ a 0 V r' v/ T5 n- U6 L5 S
然后,用一条曲线(我用的是 9 次多项式),拟合时序数据。有了曲线之后,我们不就可以用函数的系数,来替换原始数据了么?
, _2 ~% t* i r+ M. e1 {# N# c
- v: x% ]9 D0 |* G4 [ & ]9 ?7 o& W2 ?4 h2 p3 F
这样,一个企业的数据,就从对对应表格(时序数据表),转换为对应函数的系数(向量)了。 , e% u, k2 [8 u4 Y$ b3 I
1 b- I7 L0 [5 ], F' _" x, f3 ?0 d% i
3 D! S; ^: t8 n0 X0 |. @ 等一等,误差怎么办?用曲线拟合数据,肯定有误差的嘛。
$ C) \7 k( r9 D# C . g4 J m4 b& o1 I# U
5 T6 e" X9 ]+ ^/ a9 F5 m1 {0 g/ p
好,误差我们是用什么来度量的? 常用的有 R 方对吧。那就计算出 R 方,然后把 R 方也作为企业的数据之一,不就得了。
* A- _/ N# B2 O# h- v$ X
; p l6 q" v Z8 e 6 z2 s7 p# G& W4 `) M
可能有人犹豫了,可以吗? 2 v9 c6 A! G% K- V0 }" n+ `7 E( ]
6 C. j7 r1 _7 a 0 E: _- ?6 Z* m( @5 D. J( H
好,拟合的曲线可以一定程度代表企业进/销的基本规律,没问题吧? 9 j# D; i1 R4 [) b! v$ X" z5 p: |
) Q! J; O2 ^7 w! B. k( P& l+ K
3 ]) }" B& ]; p' I1 P( t% o% l R 方计算了误差。换个角度想,可以代表企业的进/销,偏离拟合曲线的程度,对吧? / n6 Y0 n" Q+ M* m
6 q; E: R; W( a+ | 0 w- e: m4 I& U5 J
这不就得了么? 5 e1 J3 [1 m7 [
k# I* V( T _/ q4 R
4 z @1 x' t# X: h 当然,误差是肯定会有的。但至少经过这样的计算,解决了我们的燃眉之急吧。为了方便讲解,我们将这个数据成为 一数据 吧。
7 S7 R& I' H3 V: j3 F l8 y 3 y# r4 W% B7 k0 M G
5 X: d/ w, d# q! u
有人还会问,信用等级呢?我们不能忽视这个数据吧?da si ka ni。
& K/ N, I" l7 W2 ~$ y ' x+ v) Q( s) [+ [) a w
# h, W$ l9 _2 a6 B5 A1 ~
且看我怎么处理,我们可以像 NLP 的 Word2Vec 那样。我们用一数据为输入、信用等级为输出,训练一个模型,然后用模型的参数,或者其他东西作为 二数据 不就得了么? 3 [3 r1 b; y6 t
0 K- `8 o5 n9 Y M. l / R$ q: ^/ i) `6 i2 G2 l
之后再用 二数据 为输入,建立一个机器学习模型,用来计算企业是否违约的概率。 Case Close!
B, n8 J+ Y. }. ]7 s. H' \3 P
! Q# @' X8 r$ S
0 R5 \/ H; D C6 R6 g 问题二 求解
; [5 b- J7 h2 A! D 制定银行信贷策略是吧? , {9 _1 J0 g! ^6 ~$ f1 R
$ ~( E5 [, I8 m# Y) V
8 p. F) ^9 s( w: B/ V! {8 { 怎么制定?无非是利率、期限、额度咯~
K1 A# f) F4 K9 g 9 b, w0 o/ I3 d
{" k- o# h3 A6 Q" n
期限我们不管,因为没依据。利率和额度紧密相连,都是钱的问题嘛。
7 s3 u' q2 C- m" ]+ n$ c
2 X4 q5 s! A: v1 O7 V/ E- `
/ f1 M6 ]5 r* J! ]. r( i 让我们想象银行是为了干什么的。商业银行肯定是为了赚钱啊,哈哈哈哈。 : Z% D# t7 U% F
1 ]$ j/ A9 F: q; E
( L! H. V5 B$ \- V+ t 于是,问题转换为,求解一个优化问题,即选择合适的利率、额度,使得银行的利润最高。 & ?$ J0 r* _* a" @) f
# W7 c' b2 u0 y. ~) F; G! a 4 f. z. M: S/ z+ D4 U& X3 i u6 n
so easy?ok?
' C2 }6 A% q; G$ H' ` 8 s" E. W- O5 |! _; n" f- Q! g) m/ g4 b V
* T7 b1 P' r2 F) E( }
于是,最根本的问题,就要对银行的利润建模咯~~ & z: g& L5 h$ J2 ^2 ?7 H+ B
+ M/ G. v* y2 T! P4 b+ U9 A
" ~6 g& E( T) C. v' C 利润的期望 = (1+利率)^(时间) X(企业不违规的概率)X(企业愿意借钱的概率) ( L; u8 x* K7 M0 D
+ b" @ ?, d2 O- N# }
, C# D) s' F9 Y E
用期望近似利润,case close,say goodbye。
8 N9 [0 w5 ~8 Y4 r# f# `, k
' m7 ?- t f! o- g& {7 V" w _( u# O ) e% Y1 `7 c4 i/ c# o: p+ E6 \
至于优化问题,加上题目约束后,就是一个约束优化问题了,怎么求解?方法实在太多了。我们训练机器学习模型,不就是求解一个优化问题吗?作为弄机器学习的,你不会连求解一个优化问题都不会吧?
5 J$ r: ^' K$ e6 t( r5 n5 \- s
" b! k( p5 J+ t: d' Q9 u # l/ H T: X6 _8 q6 f, |# C- C
有的人会再次反驳:可我们这次求的是一个约束优化问题啊! v6 e9 M+ F& G6 z
/ B8 K `# y; F5 h$ L( K5 n
0 ~4 H. O# c X6 I( [9 @ 我会答:你用罚函数的方法,不就可以将约束优化问题,转化为无约束优化问题了吗? ; o% D4 e8 O3 y" _0 Q- b6 N
1 T% m. J3 g3 f6 @, w! F& C, {8 C( l , H9 }* ^0 r# m+ e) V3 D
问题三
M8 B! P- v, T' L% [8 v 突发状况会影响企业的运营状况,所以我们只要将 一数据 的 R 方微调一下,不就得了吗?????
, Z$ { `: H9 G8 ^7 h& ^
$ U# f0 q/ w/ V- p4 s ) l& d) L" Z' Z2 V0 X
有点简答吧?
+ B/ T7 Z9 @+ E9 a % k3 r; ` ]8 a/ K( L
+ |# [5 i, k9 S 最终总结
- M' s- }- g4 x S f+ s2 G C 题,似乎是最简单的。但处理数据,比较麻烦,可能很多人卡在这里的吧。最难的一个点就是:如何将一个时序表,对应到一个标签的问题了吧。 6 x& J- T6 O* X# }2 O/ {) s% ]* l
7 G# V: i% }! q& C/ ~5 i
" B: \% H4 `$ _: _- s# [ 好了,最后一次数学建模比赛了,大家江湖再见吧。
( D! [3 @! j7 } ————————————————
4 w: n: \% M9 @' z' I 版权声明:本文为CSDN博主「zhuo木鸟」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
, l& l, {9 b G o' Y* p3 e 原文链接:https://blog.csdn.net/weixin_42141390/article/details/108580140 3 R( T6 L N$ e& o
% T; i# Y4 P( l" r5 W( A
, u. C) a! j- P) O
zan