数学建模社区-数学中国

标题: 关于Logistics回归用于分类的解释 [打印本页]

作者: 杨利霞    时间: 2019-4-21 15:10
标题: 关于Logistics回归用于分类的解释
关于Logistics回归用于分类的解释
8 U) y% N0 E- ]. t' t( slogistics回归让人最搞不懂的是,明明名字里面带了个回归两个字,为什么这是一种分类算法呢?
) _5 x$ J. g4 t& m" l6 p  T' i- \* M, p
说到回归大家想到的都是根据一些点得出一条直线或者曲线。的确logistics回归也是得出一条直线,然后如果这个点在这条线的一边比如说上面属于一个类别,另一个点处于这条线的另一边比如说下边则属于另一个类别。6 S3 a! L# s% l' U; [

2 [2 G8 l2 ^7 s* K: Q0 m这条直线是怎么得出的呢?
: h. g; j2 D/ G6 A, H  |
. e  e9 w8 P8 `首先假设所有的输入为(x0,x1....xn),输入前面的系数为(w0,w1...wn),输出为y
5 w, B- s' ?* ]- H: i% a8 R3 h8 z  @! W' d! k
我们可以得出y=w0*x0+w1*x1...wn*xn; l8 Y, w* q+ v

; J" x5 Z0 ]+ D9 w' |0 ?然后将系数(w0,w1..wn)取随机值。然后开始训练网络。训练的算法叫做梯度上升算法
2 I! S6 Z9 w- K- O# Y) o% N1 k* E. i, N8 }. n, |4 N
根据y=w0*x0+w1*x1...wn*xn,我们可以对所有输入(x0,x1...xn)求导即是求梯度。
2 L- f! p5 E& t7 \% R& x/ r1 z, r3 \2 J& L5 j2 m' h$ z  I

2 {: y1 e" X1 j. w
8 L" v4 Q4 D) M2 u) ?) G6 r  g$ e( `/ ~( R0 H
这个公式什么意思呢?学过微积分的同学都知道,问题是像我这种没学好的就放放吧。大家只要知道能通过将矩阵转一下就能得到,转一下的意思在下面
/ S- }% j1 ^( V' x3 c
- M$ z1 f7 `/ c+ b假设dataMatIn=array([[3,3],[4,4]])
8 ^; `# t- X9 ^, A' F2 {4 O, Y, Z7 m/ x0 I1 U( y
那么dataMatIn的梯度就是dataMatIn.transpose()   => array([[3,4],[3,4]])
3 y) p" a2 h* J' m) h' r" h1 o2 E0 ~  z
然后就完成了。& D) k) z) ^1 Y1 }
/ f6 s6 O6 ^* Q
继续讲如何训练的,我们还需要计算期望结果和输出的差error以及假设一个步长a,步长a是根据经验来决定的,步长太短很可能训练了很久还没找到最适合的值,步长太长就能难准确地到达合适的值。# Y6 }0 b" d: d0 f- A1 F

' \7 L# Z9 _& p  g然后我们的新的w=w+a*array(x0,x1...xn)*error/ M* R" R) r' ?2 J6 S( O; ^

  ?4 o# r$ S$ Q- U9 X一般设置循环多少次然后停止或者当error小于多少值得时候算法停止
5 i8 q, M# ?+ D% i7 M; b$ R% m8 U7 B7 P
最后我们还要将y输入进阶跃函数来完成分类。不过由于阶跃函数在零点没有值所以有各种各样的麻烦,所以换成sigmoid函数,当<0.5时等于0,当 >0.5时等于1# o/ @% i: c' W8 s1 q7 f
! g" W+ R! t  E5 A" r7 E( @' U
8 q( X# f( {9 y! i. R% X
2 k- v1 x4 {' ~4 A. J

数学建模解题思路与方法.pptx

117.69 KB, 下载次数: 3, 下载积分: 体力 -2 点






欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5