数学建模社区-数学中国

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

作者: 杨利霞    时间: 2019-4-21 15:10
标题: 关于Logistics回归用于分类的解释
关于Logistics回归用于分类的解释  N& K5 m0 |, {% @( U* i0 h; L
logistics回归让人最搞不懂的是,明明名字里面带了个回归两个字,为什么这是一种分类算法呢?0 \$ f1 Y# I, k& }3 m; Y

6 T: h) P1 ^# G9 d说到回归大家想到的都是根据一些点得出一条直线或者曲线。的确logistics回归也是得出一条直线,然后如果这个点在这条线的一边比如说上面属于一个类别,另一个点处于这条线的另一边比如说下边则属于另一个类别。2 _9 R  }4 l7 t; C# k. V% y
$ u0 r0 }+ L5 B7 b& c. V1 _% H, g9 l
这条直线是怎么得出的呢?
( |5 K. e! a* q% [( f" v
* E8 m8 ^1 H% }" `+ f首先假设所有的输入为(x0,x1....xn),输入前面的系数为(w0,w1...wn),输出为y
$ g+ c6 k, e2 L% N' U
  X& @+ R3 I+ y" U我们可以得出y=w0*x0+w1*x1...wn*xn% b) l) P" W* H* I1 L( ?3 w3 B; s
# n) X$ Q6 d; d& e
然后将系数(w0,w1..wn)取随机值。然后开始训练网络。训练的算法叫做梯度上升算法
6 S8 n6 ~* U0 t# z5 j! a* n9 \' S7 R0 K# W2 w
根据y=w0*x0+w1*x1...wn*xn,我们可以对所有输入(x0,x1...xn)求导即是求梯度。
: y) t0 ~1 \7 T' W
  P. ]% b4 R  K# m  _
& p& D7 e& }2 u/ n+ D' b) d) d2 b
0 ?1 r+ C+ @0 F$ o6 B- W/ L
) l/ Z3 Y+ m' o$ {" @% L+ P这个公式什么意思呢?学过微积分的同学都知道,问题是像我这种没学好的就放放吧。大家只要知道能通过将矩阵转一下就能得到,转一下的意思在下面- ~8 J! U  l1 v

# E1 B# b$ B4 ^) S- N7 r假设dataMatIn=array([[3,3],[4,4]])
# g. Q4 Y& S$ A# b' S+ m& n
/ y6 C+ N0 f* B/ ?6 f5 B那么dataMatIn的梯度就是dataMatIn.transpose()   => array([[3,4],[3,4]])
% Q- u" [( r/ Y8 j3 Q  d4 Q' R" G( Y1 q" D$ G7 @" w# S
然后就完成了。
+ H% G1 m# g, ^- A! t9 O. l& v$ g- g
继续讲如何训练的,我们还需要计算期望结果和输出的差error以及假设一个步长a,步长a是根据经验来决定的,步长太短很可能训练了很久还没找到最适合的值,步长太长就能难准确地到达合适的值。( m: n5 C! z% K* D4 V
( j8 w4 f& R* }8 ]* E9 s
然后我们的新的w=w+a*array(x0,x1...xn)*error
3 t) d$ {7 l* h( k( y  U2 z. [# X1 h2 b6 @& a
一般设置循环多少次然后停止或者当error小于多少值得时候算法停止* w8 ~) m( Q- v7 |! ~
3 _& R3 a" R. K; T, y
最后我们还要将y输入进阶跃函数来完成分类。不过由于阶跃函数在零点没有值所以有各种各样的麻烦,所以换成sigmoid函数,当<0.5时等于0,当 >0.5时等于1! |5 H2 l: Q6 P& ]

4 y  Q* J! e# H. d: {; D/ p
3 J0 _' K1 _; T, a5 }
5 i/ }" \6 a0 Z# U

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

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






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