在线时间 1630 小时 最后登录 2024-1-29 注册时间 2017-5-16 听众数 82 收听数 1 能力 120 分 体力 563278 点 威望 12 点 阅读权限 255 积分 174206 相册 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 P* v. B( T' e2 G . z: d( n; s' G" F
首先瞎逼逼一番,吐槽一下题目和比赛经历,对这部分不感兴趣的可以跳过:
) [7 Z$ V$ B* ]" k5 Y 虽然我是周六下午才开始做的… 总的比赛时间不到两天,不过好在一个人,不怕拖队友。至于题目,我第一眼就喜欢上了 C 题。我想,恐怕很多人都喜欢 C 题吧,因为赛后做了一个总结,发现学校选择 C 题的,比选 B、A 题的加起来还要多。 , k0 s" s! Y8 d7 Q( j
K+ \+ A$ B9 O: S1 B
, W$ w( {7 u2 ^* k2 o# m4 c3 S+ \ 为什么选择 C 题呢?因为有数据处理…
* N) E/ [4 C; I! Q! [ 7 c" ^( Y* @! g/ D
+ Z' s5 |# \* T6 j+ ~+ X d7 N
所以无论它多难,我都选它,哈哈哈。 7 a ~$ P% k7 C, F! e
+ M0 Z; C* y* G7 B! N$ t1 h6 v
+ Y4 o$ p: Q. S/ a
仔细看这一题,它与机器学习好像有区别啊。说起机器学习,我会想到: $ W# G) X2 e x* S8 m5 Y, ^
- J3 y8 z- a; l) n- O# @
# K' }7 ~& a% \1 Q1 W
分类 ; i; s n: H, p" L6 o) s! x
回归 7 v. c- v5 V+ E& B# H9 j: m
拟合 : ]% B9 u! x7 ~* {# G) V
预测 . r& ~" ^* z6 C9 S% S! g
但是,这题… 好像不是一种,用数据拟合,然后再预测的问题啊(机器学习的通俗定义)
# }) a, s. T* x( e% J# |
* }! J9 P0 ? O) d
3 j0 P( `+ Z: `3 V& q/ {! W 好吧,选都选了,只能硬着头皮上了。
4 \2 r8 E# Y0 g4 v) O/ v
, P; O4 \1 e4 F5 J; ~- U( M0 b Q * G& ^0 y6 o3 d. N- y
问题分析
1 S- b: z! X+ I2 O 根据附件1,定制一个量化的信贷风险; ' ?+ I4 d. t+ v7 f
为银行制定一个信贷策略
4 m8 F7 D+ G7 E2 Q/ ^1 ] 有突发状况是,上面两个问题应该怎么重新规划?
" R; [. a# c8 n2 E3 V 三个问题,我们分别称之为问题一、问题二、问题三。
0 ~. w, Y2 z& ]& j, ` # T0 v+ z4 a4 j' ~
/ h8 X5 f- g# A' H5 F; H" y" J
数据说明 8 Y" F% y0 C) F2 n/ }; f+ H
附件1:sheet1:给出了企业的代号,企业有无违约的情况,信用等级
3 C3 B2 R8 J3 c& s+ m* j sheet2/3:给出了企业的大约 2 年的进/销 量的发票数据, + U; W& Q* j1 E$ o2 f
附件2:给出了企业的大约 2 年的进/销 量的发票数据。没有给是否违约、没有给信用等级 # \( |9 j8 q2 x+ F7 @" Y4 L
附件3:给出了银行的利率,以及相应利率下,不同信用等级的企业,不愿意贷款的概率(原作是比率,我感觉能用比率近似概率) i0 t9 V) [- X: I" K* @# Z' i
' E) i( X" L; H$ e ; _- w" s& _% [) i
问题一求解 ( g2 g$ t( ^0 {! Q
你们看,附件1 比 附件 2 多了什么?信用等级、以及有无违约记录。而问题二是要我们求附件二中的企业的信用风险的。所以,仔细一想,肯定是在暗示我们,1、用进/销 量数据,来评价企业的信贷风险。2、信贷风险的量化指标,需要建立在企业信用等级、是否违约两个变量上。3、设法建立进/销 量数据与信用等级、是否违约的关系。
* _ U$ O" W8 @
8 |$ p0 w, T' h, a6 B" M
) L2 l1 s' o, v- V, O+ Q8 Y7 A 好了,第一步咱们清楚了,就是要建立信贷风险与信用等级、是否违约的联系咯~
+ R" z. o( A8 ?( e 9 W' M. K& G$ l, @# w% D
; `) V' S) ?* S+ _$ K
我查阅了一些文献,虽然说得都很复杂,但概括来说,就是一句话,我银行借钱给你,你还的起吗?这就是信贷风险了(说得比较通俗了,有点对不起学金融的同学们)
3 n0 r. \2 m( l2 j
% @& D5 f" E/ F- W
! o) ? n; W9 N, N1 k 于是,我将信贷风险定义为:企业违约(赖账不还)的概率。
2 `2 d/ w \3 |1 Y& `3 o ; g, ?* ?1 w' \5 a/ J2 @% @
. T+ O+ F/ V% w4 l 而机器学习的知识告诉我们,分类模型除了能够自动判断个体的类别之外,还能够计算出个体,属于该类别的概率。于是,这不就是一个机器学习问题了吗?
4 x, ^; |) j8 E/ T8 G - _" I6 T. ^: y p y) K/ j
! N1 v: P ]. i
这个问题就是:根据进/销 量数据,训练一个分类模型,然后将模型的输出,确切的说,概率输出,作为信贷风险,Over。 G# B/ [ \; |3 T. A4 Z9 [
) `* }. f2 A* K. I( H
; T y# N: [9 c5 }) @/ [* ] j 但是,进/出 量数据是时序性的呀,如果按照上面的思路,那肯定是要一个企业作为一个样本个体。可是…,这个样本个体也太奇怪了吧,是一个时序数据,哇,都能构成一个表格了。。。 ; X, e3 m1 O: w. j* h! |" W
3 ]( |+ `) `% r% D' d8 L4 L$ U ; \3 X- ^: F1 ~0 I6 L n
按照上面的说法,这有点接近自然语言处理了,也就是一片文章,对应一个类别。这里是一张时序数据表,对应一个类别。天!麻烦!
) A9 q; Q$ A" {8 B/ `" Y ! g7 g, j4 k7 x' N$ Y7 D
+ U) V7 a$ C9 n) V9 r 有些大佬可能已经豁然开朗,用 NLP 来解决啊!!! 6 S/ w! {5 ?/ q8 t+ V8 |/ I o! Z1 y
" Z4 V! x7 }8 b+ W" Y* y8 A% l
1 j M! `8 j) o! G 否也,这种跨越对我来说,有如天堑(虽然我是搞 NLP 的)
+ V Q" _* w) |9 f/ x 4 g( A( f* {* q1 G
$ p o D. p4 e; u& | 因此,我决定,转换一下我们的数据集。 8 F+ V! F$ E* ]; h) v- b
7 L2 o' \0 E+ t$ R0 }3 a/ q: _8 d
1 Y) ?8 c# M1 ~! ?5 M& ~ 数据处理 * H8 @# F: O. w- H, ]! w
首先,如果按照上面的思路,用机器学习模型的输出,作为信贷风险。那么就要让数据变得简单一点。
1 ]+ ^/ @: R/ ?0 Q- g
; n! [- T( I# {
+ i% V) ^: }! ]9 M 原始数据是这样的:多个企业,一个企业包含了大约 2 年的进/销数据,一个企业对应一个标签(是否违约)。
! Z; q% S4 H* t( Q8 e4 e! f
! G! {9 g) ?* s0 M
: x0 d$ k7 w7 c! m6 _ 我们希望的数据是这样的:一个企业,对应一个向量(行列都行),并对应一个标签,这样才能用机器学习模型。 " D `8 f) B6 j$ X' f
' Y5 m$ O) C/ J+ G2 e0 d/ [& ]
% a5 s+ ?7 M7 | 因此,必须将时序数据弄掉!!! $ \0 H* k3 A+ F+ J" b: U3 P9 z
6 |2 g. L8 k7 t2 l+ S" _7 X3 O * E1 R! _6 x$ x/ o6 R: i
由于数据是按天给出的,首先,为了简化,我们以 30 天为单位,将数据合并!
) D; W0 N' X# F) e/ k; \ $ t+ H* q3 [+ Y' X4 K' P
( K0 X% L7 l7 W# A9 N 然后,用一条曲线(我用的是 9 次多项式),拟合时序数据。有了曲线之后,我们不就可以用函数的系数,来替换原始数据了么?
6 a0 E g d/ ~# T9 } $ L5 j' m( o! `# Z2 ~( f
3 l& R0 o# J% ` T9 P" K
这样,一个企业的数据,就从对对应表格(时序数据表),转换为对应函数的系数(向量)了。 W+ l& W; C# T0 A, M
s8 ^, C: B: v1 ]6 a) s0 y
# m4 q3 m6 M! \2 f u3 k
等一等,误差怎么办?用曲线拟合数据,肯定有误差的嘛。 5 g t- k; c7 A u, V" w) R
) U2 @* ^2 O; J / z1 y0 |, ?5 L# F3 S6 E% R
好,误差我们是用什么来度量的? 常用的有 R 方对吧。那就计算出 R 方,然后把 R 方也作为企业的数据之一,不就得了。 ) j: y/ E! [; P# U
/ u5 V$ R7 X7 ]% d& A
$ D7 G6 V x' ^+ J 可能有人犹豫了,可以吗?
7 s2 _1 h6 _+ k' ]5 G0 E5 [
& z% `# x7 m: | r$ c0 v& S0 ^
$ ^! S8 e, E/ Z4 e# Y 好,拟合的曲线可以一定程度代表企业进/销的基本规律,没问题吧?
9 M s- ^$ p* O: o" O1 w
/ s& s0 r4 \& S; Y; ~ / d( ?5 O' O F- h& A4 |
R 方计算了误差。换个角度想,可以代表企业的进/销,偏离拟合曲线的程度,对吧? 8 k- o' ^% b t9 j$ t3 h/ T0 Y2 }
& u! R% Y1 y. r* d
/ K- [, `6 P! {3 f6 Q3 H 这不就得了么?
. J3 C2 U0 L* X# o& w + x% t4 e, E2 i% `3 c: E
4 C# q* ~1 t$ Q& i: M, U$ |3 E
当然,误差是肯定会有的。但至少经过这样的计算,解决了我们的燃眉之急吧。为了方便讲解,我们将这个数据成为 一数据 吧。
( j7 d1 C& _9 R- l: W `9 ^6 y+ J
1 Z* v F: |/ N* M $ X: v& B8 E9 O1 G1 Y+ X+ e
有人还会问,信用等级呢?我们不能忽视这个数据吧?da si ka ni。 : z4 e+ L4 e$ A" x, |7 g" A ]
0 u) ]+ L9 N; v) l" H& F Q
: x8 W2 w- T: W% U1 b: N
且看我怎么处理,我们可以像 NLP 的 Word2Vec 那样。我们用一数据为输入、信用等级为输出,训练一个模型,然后用模型的参数,或者其他东西作为 二数据 不就得了么? 6 T+ f3 j6 j6 Y, e, D
9 C, g7 a5 C# `- D7 i4 r! h
& C- R3 l( F9 c- I ]: M 之后再用 二数据 为输入,建立一个机器学习模型,用来计算企业是否违约的概率。 Case Close!
% F! {9 p2 n, ~% C ' _8 K: m1 n5 Q4 C+ K. x
$ S0 t$ }! m1 F# S 问题二 求解 1 M; N2 g& E+ ^9 _* X
制定银行信贷策略是吧? 7 e. C0 ? V1 k m
( _* i% Q3 p% J4 ~ , {2 L8 [ y, ~* A& d
怎么制定?无非是利率、期限、额度咯~ 0 c% A. `. A0 }6 [
! v/ a* h5 ]" n: ?$ G& f : a% ~2 I, E3 l$ h" |! ? E! F3 A+ S
期限我们不管,因为没依据。利率和额度紧密相连,都是钱的问题嘛。
! S$ H4 s) N6 |9 I* u & M, @7 @8 z! P% _ [* H
" v# E, S" G' O9 i& u K! Y
让我们想象银行是为了干什么的。商业银行肯定是为了赚钱啊,哈哈哈哈。 3 X0 u% Z" E, N2 n6 W# d4 O! `
) }3 j0 x, r# y9 i% Z' n) a
" X+ s' Z* s |/ l2 @) L0 |6 k 于是,问题转换为,求解一个优化问题,即选择合适的利率、额度,使得银行的利润最高。
7 M" X& S: x3 J2 h 0 t( [$ E3 d2 c# {1 i
) \+ r4 x) x8 l# k: k8 X3 V) r5 t
so easy?ok? 7 k' r) Y" Q2 [9 v7 v
5 X; S/ Q" T8 A
6 y# D ^* C/ S' u1 K* I 于是,最根本的问题,就要对银行的利润建模咯~~ % ?% P- y- j; a$ X9 h
/ R0 L, } J' y& s5 m2 L
" f. O1 I9 O3 N: Q 利润的期望 = (1+利率)^(时间) X(企业不违规的概率)X(企业愿意借钱的概率)
) i& A. O! T7 N) l8 q) A 8 @+ d; _# ~1 F7 l. F
$ L0 z: j3 A% x! C# L 用期望近似利润,case close,say goodbye。
0 Z* B- `; E/ A- f6 ]! j ' N4 p: k3 {7 q( c1 R
7 h# g2 y: @' `; M 至于优化问题,加上题目约束后,就是一个约束优化问题了,怎么求解?方法实在太多了。我们训练机器学习模型,不就是求解一个优化问题吗?作为弄机器学习的,你不会连求解一个优化问题都不会吧? # D i# N+ A$ B9 t! z
2 }5 c" E7 @" h: J+ b! N
! G; {0 d) [4 k# } 有的人会再次反驳:可我们这次求的是一个约束优化问题啊!
$ i4 _$ h5 q" G; ^' [
0 l1 Y" D. \, e
5 t6 X5 c8 Q% `4 _4 i; v 我会答:你用罚函数的方法,不就可以将约束优化问题,转化为无约束优化问题了吗? . n. Z2 b& T5 U! J/ D. }
2 g# l7 @, M( p \
: }3 U. M \5 F 问题三
# R( ` z: y. B! q7 O; y 突发状况会影响企业的运营状况,所以我们只要将 一数据 的 R 方微调一下,不就得了吗?????
1 X8 p% D. I3 Q 7 H. F2 K7 I2 |5 N( P
! w# }, B) Y# V
有点简答吧? & T7 k! U# d2 i3 b# `* H
. \) b$ ]. H) h- O0 n
" c. G# }: m% M t6 ~( E# w
最终总结 8 @6 F; `! A/ M) V. Y5 y
C 题,似乎是最简单的。但处理数据,比较麻烦,可能很多人卡在这里的吧。最难的一个点就是:如何将一个时序表,对应到一个标签的问题了吧。 & D' i: ?) J f; P
& d/ I2 G. R/ b! |: j
& ^& u3 v+ l& |+ N" A 好了,最后一次数学建模比赛了,大家江湖再见吧。 2 f+ }) w4 [4 H: e, I# J
———————————————— % U" \) B! ]/ x. ~& I( D
版权声明:本文为CSDN博主「zhuo木鸟」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 : I" ]; x* `/ C; `4 C
原文链接:https://blog.csdn.net/weixin_42141390/article/details/108580140 / k) D; h1 {1 @ g L& g: s
7 k# N; q2 l9 ^1 |
1 q% g. H$ K$ o; G# q$ \- I
zan