在线时间 1630 小时 最后登录 2024-1-29 注册时间 2017-5-16 听众数 82 收听数 1 能力 120 分 体力 565654 点 威望 12 点 阅读权限 255 积分 174919 相册 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题总结
, s! f8 O- f; F8 h 0 C3 C: h6 ~ f* L( o- {
首先瞎逼逼一番,吐槽一下题目和比赛经历,对这部分不感兴趣的可以跳过: * V, Z8 W# x6 H4 R" Y
虽然我是周六下午才开始做的… 总的比赛时间不到两天,不过好在一个人,不怕拖队友。至于题目,我第一眼就喜欢上了 C 题。我想,恐怕很多人都喜欢 C 题吧,因为赛后做了一个总结,发现学校选择 C 题的,比选 B、A 题的加起来还要多。 : R( x. K, d6 u, z1 u3 S7 I( N* O- B
}9 h6 z6 D" ?! R
_. @/ V4 e" b/ A
为什么选择 C 题呢?因为有数据处理… 6 \$ I" {0 d, V0 F" ^0 J% m# d; R
! M2 ~. C; N1 F2 X6 d' I5 o
5 [! ^; L* r9 q4 }/ Z, O0 R
所以无论它多难,我都选它,哈哈哈。 6 A# R8 _9 | L+ @0 G6 a. R7 q
9 ^9 q! e9 z) R' I
( f( D$ W0 b* o8 f* I) c 仔细看这一题,它与机器学习好像有区别啊。说起机器学习,我会想到:
; \0 J" d; Q+ F0 G% G / e" V8 i$ s% s1 I9 K& w
- D) F7 N1 h& M; B5 j% b 分类 6 m$ g% D& j) D: G
回归 " J* p* H" T7 N7 h4 s3 i! Z7 K
拟合
3 H* Q" q% p6 H; d 预测 & e6 ], r! ^; {
但是,这题… 好像不是一种,用数据拟合,然后再预测的问题啊(机器学习的通俗定义)
q, _% w9 C4 o+ r8 G: x+ L3 t ( ?# Z8 T. N2 K/ m; C4 O2 |
% \, H ~+ H5 u 好吧,选都选了,只能硬着头皮上了。
8 O4 v* n! V! ?0 D9 J' L0 Q2 d
+ V5 i( i, V0 o, J3 ~ . ~3 z6 R9 ~$ O7 K7 b
问题分析
1 t* e0 g* _" ~& I 根据附件1,定制一个量化的信贷风险; # I3 W; @# M) k6 L1 z
为银行制定一个信贷策略
@$ S. ~ g. Y7 \) P 有突发状况是,上面两个问题应该怎么重新规划? ; b# L( U- w" W( M- h3 b& B4 O
三个问题,我们分别称之为问题一、问题二、问题三。 * q. h7 K. J& O5 Q: e
$ H( J9 z; o9 e1 N9 o6 L
) N: Z" k2 J4 c2 k3 Z' \
数据说明 ! d, Q1 r0 _) {* ~
附件1:sheet1:给出了企业的代号,企业有无违约的情况,信用等级 ) M4 @/ F; U* q7 o/ q3 i
sheet2/3:给出了企业的大约 2 年的进/销 量的发票数据, " g+ j( `" K- a: z% @: ^+ R
附件2:给出了企业的大约 2 年的进/销 量的发票数据。没有给是否违约、没有给信用等级 - w# g, a6 e3 r" H* l
附件3:给出了银行的利率,以及相应利率下,不同信用等级的企业,不愿意贷款的概率(原作是比率,我感觉能用比率近似概率) 8 X5 p E2 |! V$ P4 W5 V0 u6 v2 g
* q* V9 K, n- }( J) J) q9 c) _ # Y& y4 M ^% H) e6 z4 v- m
问题一求解 : \. x! J% }3 {) k) e& o
你们看,附件1 比 附件 2 多了什么?信用等级、以及有无违约记录。而问题二是要我们求附件二中的企业的信用风险的。所以,仔细一想,肯定是在暗示我们,1、用进/销 量数据,来评价企业的信贷风险。2、信贷风险的量化指标,需要建立在企业信用等级、是否违约两个变量上。3、设法建立进/销 量数据与信用等级、是否违约的关系。
( |) t* c3 ]/ _. J. ?& S / k0 e3 X$ r! y2 Q1 J6 n2 p8 n4 t
. u: Z) R- Q$ o. c% E9 A+ i* X. T% q
好了,第一步咱们清楚了,就是要建立信贷风险与信用等级、是否违约的联系咯~
+ \, D$ g' `7 E% w) m8 m 4 @9 }+ v Z B
$ X8 |" I9 C; J* B& X1 f 我查阅了一些文献,虽然说得都很复杂,但概括来说,就是一句话,我银行借钱给你,你还的起吗?这就是信贷风险了(说得比较通俗了,有点对不起学金融的同学们)
1 a3 |+ H3 _) \' P/ f! S5 I O; P9 F6 j* j; r5 q( o
" L6 p5 @: k& E, j
于是,我将信贷风险定义为:企业违约(赖账不还)的概率。
/ W$ I' D4 b0 O8 F- Y 0 h t! C; Q0 ?# G) L" J$ l: ]
. ]" W1 D3 K) c* F# u
而机器学习的知识告诉我们,分类模型除了能够自动判断个体的类别之外,还能够计算出个体,属于该类别的概率。于是,这不就是一个机器学习问题了吗? / T& _+ s$ B7 c) n4 d
, ^* x. S% ~ x: T) f
8 K; f, P% k" U' @; y
这个问题就是:根据进/销 量数据,训练一个分类模型,然后将模型的输出,确切的说,概率输出,作为信贷风险,Over。 # y% ` E. C, z$ w2 w- o
+ S/ e2 k4 I/ c5 K% s: {- |
9 q- F9 S% N/ U7 b( K 但是,进/出 量数据是时序性的呀,如果按照上面的思路,那肯定是要一个企业作为一个样本个体。可是…,这个样本个体也太奇怪了吧,是一个时序数据,哇,都能构成一个表格了。。。
3 F5 J9 L9 T2 h8 ?$ w. E , }- b l! F% a1 J4 J7 |5 V; u- a
: ~8 o* G; i+ w% D- j( P 按照上面的说法,这有点接近自然语言处理了,也就是一片文章,对应一个类别。这里是一张时序数据表,对应一个类别。天!麻烦!
+ a" q$ _+ a! M5 H0 k
1 l4 Z$ j, l2 V% ] / \; L" y" p% F# O Z$ j/ A
有些大佬可能已经豁然开朗,用 NLP 来解决啊!!! 9 c, E* {. @. Q, v* k
3 u0 Z. p+ G- l& C, L c/ o
$ {$ m, O* {) T8 O9 ^ 否也,这种跨越对我来说,有如天堑(虽然我是搞 NLP 的) 2 r% @, F' y. g2 M. D9 A
' ~+ g4 ]: [& n2 |9 I- s) }1 N
. p- P. y! {3 g r: S 因此,我决定,转换一下我们的数据集。 & F, P! e) l8 @- `
) E0 r( F' ]9 `1 i, |5 X3 w# J$ B
& L, o( M% P& Q% t6 q$ U& Y; d
数据处理
' \ Q9 F/ U& C' ~6 ^ 首先,如果按照上面的思路,用机器学习模型的输出,作为信贷风险。那么就要让数据变得简单一点。 7 }& i2 S- M! X- x' f% p
4 X8 G f: s% M6 _* R/ b2 d0 P
' r7 x. w1 X# [. i$ t' W 原始数据是这样的:多个企业,一个企业包含了大约 2 年的进/销数据,一个企业对应一个标签(是否违约)。
* Q3 }0 H! F! [. K( n9 w
i! h8 t" S# H! E+ u4 V
. z8 K$ E6 M3 c# I5 t. n 我们希望的数据是这样的:一个企业,对应一个向量(行列都行),并对应一个标签,这样才能用机器学习模型。 + q+ S5 g# |: K4 x, d
. x1 P) ~& W, w0 t8 i & O& O; T4 i% Z' f% W* J
因此,必须将时序数据弄掉!!! 2 }5 T8 b9 x' i: \
* i. n" B1 C( M! V* v; C
i5 {; ?% x1 N$ V& E+ t- W 由于数据是按天给出的,首先,为了简化,我们以 30 天为单位,将数据合并!
; ?4 s$ a- X6 C0 [ 5 p& Y7 p% p1 h& I1 B6 c% J
8 L5 C: g7 m: J& X4 T* a7 s 然后,用一条曲线(我用的是 9 次多项式),拟合时序数据。有了曲线之后,我们不就可以用函数的系数,来替换原始数据了么? 4 C* E Q( g* P
. C$ Y0 q# Q+ X# W
2 T5 ?1 L$ m9 q
这样,一个企业的数据,就从对对应表格(时序数据表),转换为对应函数的系数(向量)了。
/ y# G( `7 w! R# K( W" d; t " J L1 w& W; @* e$ I0 u
$ B( |* _: ^- ]3 f8 ]: L
等一等,误差怎么办?用曲线拟合数据,肯定有误差的嘛。 * z# N: {" v. Q) a
/ N; H: T. W D$ @+ A8 w) A % X! X: x0 t3 h8 b+ M& \
好,误差我们是用什么来度量的? 常用的有 R 方对吧。那就计算出 R 方,然后把 R 方也作为企业的数据之一,不就得了。 7 P: l* U# E a y* l% T* _! [6 Z
9 D. G+ G# o$ V2 C, B9 {8 \+ @
0 G" u' A2 z% m! [5 s! f$ G6 N 可能有人犹豫了,可以吗?
5 |- M( X& C& G; v2 ~3 g+ k 8 t( I( U9 j0 b% H
+ g( J4 b$ z8 Y+ z( R 好,拟合的曲线可以一定程度代表企业进/销的基本规律,没问题吧? 1 s, q: q! |# {9 ^+ j+ M3 S
4 L: X; E* [! q) i0 p 5 }4 t9 G6 g7 _$ z$ X$ Y. w: A
R 方计算了误差。换个角度想,可以代表企业的进/销,偏离拟合曲线的程度,对吧? 6 L( Q7 j J% \9 X8 I8 W& _' z9 @
1 X9 z$ w4 K3 l$ w. j/ l
0 U' s+ K0 \+ k$ s/ \6 |
这不就得了么? V+ D1 t+ }- O" {! }8 T
& s' O: K, v! \/ d
x" ~, R6 {- u) ], p 当然,误差是肯定会有的。但至少经过这样的计算,解决了我们的燃眉之急吧。为了方便讲解,我们将这个数据成为 一数据 吧。 ' v, _, S. x3 m( [$ v
# B0 ^; b2 e* X9 ]. M% W2 W! F ! j7 r5 e. m& ]2 d; Q
有人还会问,信用等级呢?我们不能忽视这个数据吧?da si ka ni。 # {$ U/ }; Z, X A9 ?* i
+ t( K1 K" a6 v$ W w
5 D1 F' Y6 H9 y: | 且看我怎么处理,我们可以像 NLP 的 Word2Vec 那样。我们用一数据为输入、信用等级为输出,训练一个模型,然后用模型的参数,或者其他东西作为 二数据 不就得了么?
, {) [' P1 O5 m
& u" D6 l& Q3 H. W- R! o0 l, ~
' ?2 [ t% u% a Z7 O3 x; a! z+ S 之后再用 二数据 为输入,建立一个机器学习模型,用来计算企业是否违约的概率。 Case Close!
3 p8 p- O( [9 n' J" ^ / t$ r& a( g: B6 R
. O5 Z4 c; K v3 K
问题二 求解 ) E$ l! D( d d4 k& F
制定银行信贷策略是吧? 8 \$ b2 m: z8 b, e
( T' s5 I% j [9 \% a7 ~
. y! ^) j1 [ P 怎么制定?无非是利率、期限、额度咯~
/ X0 M! v! @' N. |! `) i
9 B8 H- Z% L, q5 W! ~ # m2 K+ L8 [. m, h8 ~, }* ~
期限我们不管,因为没依据。利率和额度紧密相连,都是钱的问题嘛。 $ H8 R& m4 _" F& r9 V' ]
& K& H" Z. V6 E& {( }$ ~! a4 M
: l# C- W/ {4 ?" z 让我们想象银行是为了干什么的。商业银行肯定是为了赚钱啊,哈哈哈哈。
m* F* Q( a- d [9 E ! W: p! s& W8 |. n9 }, j8 u" x/ `
4 ?6 M) T0 K9 I 于是,问题转换为,求解一个优化问题,即选择合适的利率、额度,使得银行的利润最高。 ) S l: x* l; V6 }) F+ w0 l
1 H* y# f- c. B! }, A/ T, x0 M! o
5 }$ n4 |6 j# Q+ n, q so easy?ok? 8 [+ X. g; C( ~7 y, [5 z' p
; m M3 W8 `. H, v; i 6 @8 _$ E' r# @$ Q3 [
于是,最根本的问题,就要对银行的利润建模咯~~
4 Z" L0 A F3 X. V- k : q4 Y& k4 e9 ~% t. I
- B5 Y) @9 d e. N( r# [
利润的期望 = (1+利率)^(时间) X(企业不违规的概率)X(企业愿意借钱的概率) ! _# _; ] N" z: Z, K) c+ p
% o$ x& @/ [& Z7 Z; S9 C/ E
0 N: F7 I& w# C 用期望近似利润,case close,say goodbye。 + \0 G% p- `' E6 o
( Y2 s) @ u/ s- M. {. X% ]- X 9 g3 P9 R0 w4 N6 }
至于优化问题,加上题目约束后,就是一个约束优化问题了,怎么求解?方法实在太多了。我们训练机器学习模型,不就是求解一个优化问题吗?作为弄机器学习的,你不会连求解一个优化问题都不会吧?
6 h9 V. X3 V A, }& c7 W% }& ^( w3 v
8 F, p: S; W h& n; z
! Y2 U5 O( Q( ~: p! f 有的人会再次反驳:可我们这次求的是一个约束优化问题啊!
0 K( [7 t& C( N* @& u 6 O* H8 z9 q/ _. \* z
" z4 P% o- I1 _# v- k' P 我会答:你用罚函数的方法,不就可以将约束优化问题,转化为无约束优化问题了吗?
2 r' H( G, f1 [* Y( t- K: R( V( ]. ] 3 t. q* {/ P5 W" i* n: }* M
- l1 E. e' z) _# r
问题三
$ O5 [( V, u+ s% j" l' v- V 突发状况会影响企业的运营状况,所以我们只要将 一数据 的 R 方微调一下,不就得了吗????? $ Q! Z: x% a, K% F- T
% `8 @$ r1 D1 N* G0 D) O3 B2 p - D" n6 C- u# `8 L# d
有点简答吧? 4 L4 ?3 f+ M2 J9 }$ T8 [) K. }
, F$ \+ o& N8 d+ V: e , ^" m! Z- ]' ^
最终总结
! j) N i$ n9 k C 题,似乎是最简单的。但处理数据,比较麻烦,可能很多人卡在这里的吧。最难的一个点就是:如何将一个时序表,对应到一个标签的问题了吧。 ( b- Q3 W5 f0 `; d. D" m6 k: L2 w, E
( G7 F. ^+ h( m
' W! O m3 G( M8 U% T
好了,最后一次数学建模比赛了,大家江湖再见吧。
' H' H: N4 I1 [9 A- X, E9 A; D ———————————————— 7 I! X: s5 K1 Z! v
版权声明:本文为CSDN博主「zhuo木鸟」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
" M1 n4 E/ W/ v 原文链接:https://blog.csdn.net/weixin_42141390/article/details/108580140
( |. P! Y% }8 m( w3 O* \ 7 s+ D+ i( Y9 N* ]8 B( m, c$ E5 n
# e" d: {% s' x* i) D
zan