在线时间 1630 小时 最后登录 2024-1-29 注册时间 2017-5-16 听众数 82 收听数 1 能力 120 分 体力 565707 点 威望 12 点 阅读权限 255 积分 174935 相册 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题总结
2 J& s* \8 B) S9 b+ ~5 g
2 s$ c1 c, h$ C8 F I: l* D. T* b' J/ e 首先瞎逼逼一番,吐槽一下题目和比赛经历,对这部分不感兴趣的可以跳过: ) @# ~" u9 k8 L
虽然我是周六下午才开始做的… 总的比赛时间不到两天,不过好在一个人,不怕拖队友。至于题目,我第一眼就喜欢上了 C 题。我想,恐怕很多人都喜欢 C 题吧,因为赛后做了一个总结,发现学校选择 C 题的,比选 B、A 题的加起来还要多。 1 g8 `) g Y6 l2 i0 E, x6 g' t
. c& ^) S+ J# i; T
( r5 {* }5 \) K5 S2 `7 i 为什么选择 C 题呢?因为有数据处理…
Z8 R; w2 q* k0 c2 i3 S* O
, ?4 O- a' |; [% g I
0 w( D( f+ I, X# h7 S0 ^, } 所以无论它多难,我都选它,哈哈哈。
; ?3 V9 x9 S8 g2 |# u) f
4 D; S8 _* |4 O/ ^8 s
! G9 _* \4 N. `, Y' `0 P: W c4 k8 F 仔细看这一题,它与机器学习好像有区别啊。说起机器学习,我会想到: 5 k# U$ J0 e9 w
3 N' W! \; q! d5 C! R& Q! y ( Q3 e1 Y$ Q8 K! n
分类
' ~+ I0 ?( Y5 i+ x 回归
$ X2 [8 X8 ^# a. g( z0 z 拟合
" @; z: |. X1 q% U: j: i3 |' P 预测
! C. v& f( i- {$ r7 s 但是,这题… 好像不是一种,用数据拟合,然后再预测的问题啊(机器学习的通俗定义) 1 p s7 R% }, [- m8 K
5 D, f8 i! {# J
- t) V' b0 }5 I% Q% c$ w 好吧,选都选了,只能硬着头皮上了。
6 g& w+ L# d% J . O4 k" C* ]& M( R$ R
% y E/ s, X! Q# U, S+ D9 J: v 问题分析
( X6 D7 e/ r1 X# H4 B/ x8 A- I 根据附件1,定制一个量化的信贷风险; . o2 S9 G1 ^) P& q3 n+ M R
为银行制定一个信贷策略
+ |: U' v# v+ B: }( G% V 有突发状况是,上面两个问题应该怎么重新规划?
0 q$ y9 h& a( V* l. \4 x! h9 c 三个问题,我们分别称之为问题一、问题二、问题三。 . x0 k+ }: [3 I4 L
3 j$ P9 u3 m- h' J& Q 9 R$ @# u" C: R
数据说明 1 d, ?) ]8 y) \* |5 r, Y
附件1:sheet1:给出了企业的代号,企业有无违约的情况,信用等级 & |2 b% D, W3 `6 |/ |3 [
sheet2/3:给出了企业的大约 2 年的进/销 量的发票数据,
' o/ n4 L3 S) u8 u! N! w: g4 h 附件2:给出了企业的大约 2 年的进/销 量的发票数据。没有给是否违约、没有给信用等级 $ u. q0 y9 t6 @7 B: t- G7 y
附件3:给出了银行的利率,以及相应利率下,不同信用等级的企业,不愿意贷款的概率(原作是比率,我感觉能用比率近似概率) 6 O3 c' r% B* x/ K
+ A2 b7 {0 s0 k+ E& y/ \/ C2 [
2 d5 Q; A' Z; r0 C% { U 问题一求解 9 Q0 |# ~/ Z! |6 K* L
你们看,附件1 比 附件 2 多了什么?信用等级、以及有无违约记录。而问题二是要我们求附件二中的企业的信用风险的。所以,仔细一想,肯定是在暗示我们,1、用进/销 量数据,来评价企业的信贷风险。2、信贷风险的量化指标,需要建立在企业信用等级、是否违约两个变量上。3、设法建立进/销 量数据与信用等级、是否违约的关系。
- R7 n" m! K) w* C q# n 8 U `) m3 Q1 S
% u& N- m/ o/ |+ R0 } 好了,第一步咱们清楚了,就是要建立信贷风险与信用等级、是否违约的联系咯~
! F' K) {2 a: L' D7 v, \& L % s2 |/ l' H; [( z0 v7 X
& N& H% C, N% [
我查阅了一些文献,虽然说得都很复杂,但概括来说,就是一句话,我银行借钱给你,你还的起吗?这就是信贷风险了(说得比较通俗了,有点对不起学金融的同学们) , X0 x+ c k4 i& ?
, ^! i" U* W' D+ F
1 d& A- d' E, w9 s3 | 于是,我将信贷风险定义为:企业违约(赖账不还)的概率。
A, E: ~1 T' Y3 r8 ?% ~5 r. w4 H% _8 Y+ ? 1 i5 b( @" I% [" i9 x( m/ W
7 g ~7 C0 H" g1 e; m# d C 而机器学习的知识告诉我们,分类模型除了能够自动判断个体的类别之外,还能够计算出个体,属于该类别的概率。于是,这不就是一个机器学习问题了吗?
3 l( n- Z+ X, ~! m) d J+ l9 D, Z% m. i
2 j9 ] ~+ s; O7 s+ ~% ?- W/ }: A
+ u3 T. d( u& k- q/ R T 这个问题就是:根据进/销 量数据,训练一个分类模型,然后将模型的输出,确切的说,概率输出,作为信贷风险,Over。 : ~9 h6 Z$ Y y \3 [2 V, W) a
2 A- f# `$ t9 D0 [
3 Z6 }0 \2 \/ B% a9 B 但是,进/出 量数据是时序性的呀,如果按照上面的思路,那肯定是要一个企业作为一个样本个体。可是…,这个样本个体也太奇怪了吧,是一个时序数据,哇,都能构成一个表格了。。。 5 J7 B' B7 u: \0 V
( i/ D/ {' q2 }6 b! G3 q/ I+ d
; _: D4 w+ G- {5 M1 ]- M7 y
按照上面的说法,这有点接近自然语言处理了,也就是一片文章,对应一个类别。这里是一张时序数据表,对应一个类别。天!麻烦! , U+ ]; P! p/ o. J# _& \
# I+ r4 H" w6 p" z
3 }+ m0 e4 B' [4 a. X 有些大佬可能已经豁然开朗,用 NLP 来解决啊!!!
( l* b# O- P4 T! {9 v$ Z
. V! N5 Y6 M- K6 \5 d
T' ?$ C3 Y% N2 O 否也,这种跨越对我来说,有如天堑(虽然我是搞 NLP 的) ' O, Q2 ^) R' A/ |' G+ t% D* J
$ q" w& h# a0 J0 S* R3 x8 i9 L
4 r2 [6 z: U4 ^. E
因此,我决定,转换一下我们的数据集。 / l3 w& j7 [& W6 V9 G% `. q7 y
/ S+ z6 T, p7 G @& c1 E' j% i' S
4 P" T( C' h; ]7 t. i0 t$ n9 l+ o 数据处理
5 H* T& X r# G) e. P3 E 首先,如果按照上面的思路,用机器学习模型的输出,作为信贷风险。那么就要让数据变得简单一点。
: G: F6 {! u. g+ q& t+ h } 1 Q: `& s) d# v8 J
' k' X, a2 l+ F% R; Y* K4 w
原始数据是这样的:多个企业,一个企业包含了大约 2 年的进/销数据,一个企业对应一个标签(是否违约)。
4 i' q$ `# C3 X' m
- H' g! K& E6 s% h+ k* s
) X0 ~# L; P. n$ p) j5 c# Y: ?( z 我们希望的数据是这样的:一个企业,对应一个向量(行列都行),并对应一个标签,这样才能用机器学习模型。 , K0 B7 h7 T' u6 r/ N
+ W* X7 D4 h8 I- o
* k S# V0 Y0 `6 C% Q6 {& T0 J
因此,必须将时序数据弄掉!!! * F2 `- o4 `8 ^' G
: B8 y! ]* k$ I+ X6 _1 i 7 U5 z2 z' Y# |5 A$ |
由于数据是按天给出的,首先,为了简化,我们以 30 天为单位,将数据合并!
/ N# W: W% s: k: H+ |1 P% m ; _; B; ~! c# }5 p4 j6 J6 O9 S$ S# T
5 V+ Y/ I' }9 M5 c4 G) S1 M
然后,用一条曲线(我用的是 9 次多项式),拟合时序数据。有了曲线之后,我们不就可以用函数的系数,来替换原始数据了么? ' i, J) ]7 Z# s$ M4 t( Q
2 R& G' v0 R$ ^' K& ^
# K; g2 j7 g/ h3 _( i 这样,一个企业的数据,就从对对应表格(时序数据表),转换为对应函数的系数(向量)了。 9 d7 X' B7 T( q% y0 T; r$ x
8 u( q3 D J* Q0 c/ `2 b, |, c
2 ^; R) i* f1 y 等一等,误差怎么办?用曲线拟合数据,肯定有误差的嘛。
. ~2 e7 H3 K) a+ S/ g/ z
2 T" f8 V/ |* c& h) Z ; W: Q& {% t( @
好,误差我们是用什么来度量的? 常用的有 R 方对吧。那就计算出 R 方,然后把 R 方也作为企业的数据之一,不就得了。
# }8 T/ m. I: p' `; W
. g% g; l i, |( P6 k, v/ b0 g 9 p" d/ l4 q K) J* j$ s. `6 G' J3 n
可能有人犹豫了,可以吗? ( m# K: V# g4 r8 R, X/ d8 Y
# n: H* P7 S1 n* o1 t2 d
: q1 R1 Z% F4 b. I' ] 好,拟合的曲线可以一定程度代表企业进/销的基本规律,没问题吧?
1 F |1 M$ X. T; Q( q( _
7 _% S5 U' g# }9 ^, @1 n, C1 { , ~5 G/ v3 z: u# Q: t
R 方计算了误差。换个角度想,可以代表企业的进/销,偏离拟合曲线的程度,对吧?
1 e4 v! T1 R8 F
' k( o9 F. A* x4 G3 U1 ?" m
' V$ m: v" n! F1 \ 这不就得了么? 2 u0 ? K' `) D$ ^5 j
5 n1 r. K, M. r, A8 H; A9 x
; s. c+ f4 _" o 当然,误差是肯定会有的。但至少经过这样的计算,解决了我们的燃眉之急吧。为了方便讲解,我们将这个数据成为 一数据 吧。
* K" Q2 x4 V7 W0 h( n
) |( Q& Z+ m) B, m: r; Q1 g
5 B0 r+ k) C4 `' c3 X) g; K 有人还会问,信用等级呢?我们不能忽视这个数据吧?da si ka ni。
: I, G. N! @- Y 8 i. [! g; u4 {) b
8 P$ Y0 E% r5 Z$ [* ?( k" u3 ]
且看我怎么处理,我们可以像 NLP 的 Word2Vec 那样。我们用一数据为输入、信用等级为输出,训练一个模型,然后用模型的参数,或者其他东西作为 二数据 不就得了么? 7 I- \% b8 i) T8 v
u- o! A5 D' G: {4 @7 S) A
2 Y8 T% V( W8 O, A# u+ s% K 之后再用 二数据 为输入,建立一个机器学习模型,用来计算企业是否违约的概率。 Case Close! ; t+ F) a4 l( O
0 w) o! t9 T. b3 W
: w: x& I: q4 l5 G. O8 y& J
问题二 求解 * Q2 C' P1 u0 l- s( [' ^; r! v1 V2 ]
制定银行信贷策略是吧?
4 [: }7 k+ I& Q- D" b . n) u; U/ Y- q9 n1 h E
, M" i5 a5 ~- [6 E1 s 怎么制定?无非是利率、期限、额度咯~
- D8 |5 b" k) C9 H' s' Q' Z
" F' b" d' k0 |; k& @* ~0 {# Z# { 7 b% Q& D1 W Y/ d- i. X: c
期限我们不管,因为没依据。利率和额度紧密相连,都是钱的问题嘛。 6 p! |& F, E$ s( i0 u
% e$ g2 R1 J% I+ S, f* o% F( i0 Y4 k/ p
5 J; }1 \ x& x0 l/ F! @) I 让我们想象银行是为了干什么的。商业银行肯定是为了赚钱啊,哈哈哈哈。
, w2 O* h2 a" A( J. [- E8 x 8 Y9 c4 }; V- s- [
2 y I/ e0 Q& q1 L$ H7 z* p" ] 于是,问题转换为,求解一个优化问题,即选择合适的利率、额度,使得银行的利润最高。
+ j# H/ D" G: x
; F: t& n5 ?4 y! R7 u0 c
; J/ \- N# [1 [2 s/ F3 J, f so easy?ok? 9 e) N; o2 [4 e7 C2 A( I0 s* y
; e: Q3 Y/ j0 M* U) U1 f# j
8 v% h7 ~: _* i- H
于是,最根本的问题,就要对银行的利润建模咯~~
: ^4 s; c5 J3 Y9 C3 E1 R6 V! [
t2 ^6 i, _8 h - O7 m: T6 l* Z4 W$ F" j
利润的期望 = (1+利率)^(时间) X(企业不违规的概率)X(企业愿意借钱的概率)
& L& I$ @' y H/ h: n
/ f$ g3 D0 K. {! M( F * y0 O; B9 h# x- b3 B1 ^+ u8 ]! o
用期望近似利润,case close,say goodbye。 % J0 a0 a1 [5 e! M2 m
0 x" L* J' a4 A$ o" W' R8 L
( M. ~& ~7 y* Y( G& E: I7 T# h 至于优化问题,加上题目约束后,就是一个约束优化问题了,怎么求解?方法实在太多了。我们训练机器学习模型,不就是求解一个优化问题吗?作为弄机器学习的,你不会连求解一个优化问题都不会吧? 7 c" {' B$ \* [: @) M, A& a
) {" T) B- {9 ^
! z) }" N) Y* Q% o1 g 有的人会再次反驳:可我们这次求的是一个约束优化问题啊! $ j0 n, e7 _) D0 a) b0 @
! ] n# E' T- P$ ^& j2 j$ B( R
# S) c1 U/ G0 {3 M; [0 z/ u 我会答:你用罚函数的方法,不就可以将约束优化问题,转化为无约束优化问题了吗?
! v7 c. x( v1 |$ ]- A# ?
! a" I6 o4 z- l
& O1 G! s3 w5 X 问题三
8 V; i& S% [- e! ]6 s1 ^ 突发状况会影响企业的运营状况,所以我们只要将 一数据 的 R 方微调一下,不就得了吗?????
4 v8 `& K& i* B( x2 h
" `: o: J( n3 ^1 K6 A 7 p2 {) j7 B" d/ y8 o$ J$ L p
有点简答吧? 0 v$ [/ y. Y' Z' C/ f/ P6 F/ ]: l
4 U+ l0 Y/ e e) j; w
8 L5 ?4 {* g; K" ^& b+ u0 ~
最终总结 ! c ]! |! k: ?6 e$ a7 q. s
C 题,似乎是最简单的。但处理数据,比较麻烦,可能很多人卡在这里的吧。最难的一个点就是:如何将一个时序表,对应到一个标签的问题了吧。
8 T; a5 B) m2 B: w% B- _ ; ]1 \( t: U* I" X
4 }8 K. m* |7 C; R. K 好了,最后一次数学建模比赛了,大家江湖再见吧。
5 p) s8 \) s( f0 G$ T$ S5 H8 k ———————————————— 3 S/ |8 ]0 ^. c/ w+ D6 U" x/ A; R
版权声明:本文为CSDN博主「zhuo木鸟」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
7 c2 ]! c; X+ I# i7 c 原文链接:https://blog.csdn.net/weixin_42141390/article/details/108580140
i4 h0 v% j5 I! b2 l 1 V+ E, L$ j+ h$ p3 v# x
% Z% w- U# P, M p" [7 X W" M
zan