数学建模社区-数学中国

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

作者: 杨利霞    时间: 2019-4-21 15:10
标题: 关于Logistics回归用于分类的解释
关于Logistics回归用于分类的解释' l, F. k) s2 R4 D( C: c" j. H
logistics回归让人最搞不懂的是,明明名字里面带了个回归两个字,为什么这是一种分类算法呢?+ v: L  R$ R! Q: p: L
/ L3 |$ _# G* @- E
说到回归大家想到的都是根据一些点得出一条直线或者曲线。的确logistics回归也是得出一条直线,然后如果这个点在这条线的一边比如说上面属于一个类别,另一个点处于这条线的另一边比如说下边则属于另一个类别。
3 B; h" q2 ^% e
$ k( i' l7 u) x- M) E这条直线是怎么得出的呢?1 O3 _: p0 C) |) K  D

# e! d# S9 @0 h) V2 x6 P$ T首先假设所有的输入为(x0,x1....xn),输入前面的系数为(w0,w1...wn),输出为y; h  J/ n% H4 Y, l6 I9 V

; r$ Z2 Y" y' V' t0 E我们可以得出y=w0*x0+w1*x1...wn*xn
" p1 Q% U$ o5 W- g2 R8 m- s# D" l
8 ?& U5 K8 r- j" l然后将系数(w0,w1..wn)取随机值。然后开始训练网络。训练的算法叫做梯度上升算法
: D# l, j& w, A" c% ?: W. j/ n. u1 k, j1 Q5 s9 k* o* V
根据y=w0*x0+w1*x1...wn*xn,我们可以对所有输入(x0,x1...xn)求导即是求梯度。
, ^0 t2 H' m/ Y# C  I9 F/ h' K4 ?( [. c( H4 h& j

9 I! q* H- j5 G% r. q/ W5 @$ H. ~/ h) w5 m2 D+ J( Y- L
0 K' ^+ t5 ^: h# f
这个公式什么意思呢?学过微积分的同学都知道,问题是像我这种没学好的就放放吧。大家只要知道能通过将矩阵转一下就能得到,转一下的意思在下面+ n. F: |+ x0 v: n
" E- d0 p( a7 p6 s# b2 U! c0 E/ n5 c
假设dataMatIn=array([[3,3],[4,4]])
0 B& Y& G' j5 o! x1 i% V4 J$ j5 h
5 O" J5 l/ o  t/ t& H0 [0 g- n那么dataMatIn的梯度就是dataMatIn.transpose()   => array([[3,4],[3,4]])
+ `- ^# ], ]  m* b6 x; P
& g& X5 o! Q. ?" A然后就完成了。$ l& P1 D) ]4 L  j6 O# @; C
4 k  M; y, a2 Q* z% {5 @0 ^
继续讲如何训练的,我们还需要计算期望结果和输出的差error以及假设一个步长a,步长a是根据经验来决定的,步长太短很可能训练了很久还没找到最适合的值,步长太长就能难准确地到达合适的值。
- [  ~  g4 s2 }: J( x$ B! f8 ~) a  A
然后我们的新的w=w+a*array(x0,x1...xn)*error& n. k1 `0 q2 ^2 z

1 W1 r' u5 O& v. a) D. `0 n一般设置循环多少次然后停止或者当error小于多少值得时候算法停止, M. \% N! a* N8 ?4 t
6 z- S! v9 l& _1 ]
最后我们还要将y输入进阶跃函数来完成分类。不过由于阶跃函数在零点没有值所以有各种各样的麻烦,所以换成sigmoid函数,当<0.5时等于0,当 >0.5时等于1
6 w. A' O: d+ V4 V( `( s  A+ Z  d) S! t* W: }6 U
# ?2 U- o( k' c2 t; Q
: v! f9 o9 V9 p/ d; v" B( b1 |! T

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

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






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