数学建模社区-数学中国

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

作者: 杨利霞    时间: 2019-4-21 15:10
标题: 关于Logistics回归用于分类的解释
关于Logistics回归用于分类的解释: e& Y1 g$ q; U0 T. e  P& [
logistics回归让人最搞不懂的是,明明名字里面带了个回归两个字,为什么这是一种分类算法呢?; D. p' {3 I. Z  n$ [8 l# z

5 n2 d; _/ X4 f$ E说到回归大家想到的都是根据一些点得出一条直线或者曲线。的确logistics回归也是得出一条直线,然后如果这个点在这条线的一边比如说上面属于一个类别,另一个点处于这条线的另一边比如说下边则属于另一个类别。! B+ F, i" Z" w# T; X! e7 p
7 S; K" D3 b* W# D( L
这条直线是怎么得出的呢?
0 w: J$ n4 Q5 v" O3 M# H) I( k  E4 d7 u
首先假设所有的输入为(x0,x1....xn),输入前面的系数为(w0,w1...wn),输出为y: }9 n( {' d" v3 c

6 m1 p/ g3 A, [" P: v# q我们可以得出y=w0*x0+w1*x1...wn*xn) N* [- [5 w# x
3 S7 N, k3 R' V% N, q+ q
然后将系数(w0,w1..wn)取随机值。然后开始训练网络。训练的算法叫做梯度上升算法/ _6 w& i5 z) U+ S+ T
2 q. W. v. i$ c& f& h
根据y=w0*x0+w1*x1...wn*xn,我们可以对所有输入(x0,x1...xn)求导即是求梯度。
+ p" X8 w% w1 H, ?. u7 t3 s- x; `: {: F% G3 K: y

8 s5 A# g6 E, g. y* y! I
6 }! S( g- Z9 p' `! E7 {+ r1 n9 M* e* ]; w9 L4 a& |5 R" B/ ]5 _4 n! s% c
这个公式什么意思呢?学过微积分的同学都知道,问题是像我这种没学好的就放放吧。大家只要知道能通过将矩阵转一下就能得到,转一下的意思在下面
) r/ _+ v: F- L' K) m6 B
! i) c7 x0 \' ~! T& Z假设dataMatIn=array([[3,3],[4,4]])
+ Y4 h9 t* Y& S- V$ _4 }! D! z% U( @1 A6 ?
那么dataMatIn的梯度就是dataMatIn.transpose()   => array([[3,4],[3,4]]). W% W# F2 s* p' [: D

9 B2 j% Q5 C, d) p: y然后就完成了。0 A$ {- G4 r6 D8 u; P  d

% }* c6 o& i* _9 z继续讲如何训练的,我们还需要计算期望结果和输出的差error以及假设一个步长a,步长a是根据经验来决定的,步长太短很可能训练了很久还没找到最适合的值,步长太长就能难准确地到达合适的值。
; L/ `5 D% q" ?4 Q& l! N8 b& }- x; g4 E. F# ]
然后我们的新的w=w+a*array(x0,x1...xn)*error; M! B3 {7 y7 e- `% K0 T

/ W1 \( U2 [( r一般设置循环多少次然后停止或者当error小于多少值得时候算法停止, e2 W4 P" d9 L% J& x: `* W1 C" V

& R$ l; I# E. |0 L  Q最后我们还要将y输入进阶跃函数来完成分类。不过由于阶跃函数在零点没有值所以有各种各样的麻烦,所以换成sigmoid函数,当<0.5时等于0,当 >0.5时等于1
! F8 b' }! C$ {6 u; F9 @  f+ @% I
$ @# E( b* j, b+ g& e% W2 |: g
0 ]- i# d/ O% O" q3 t9 L# {5 g9 ]3 T/ E& s3 @4 R3 Q/ j" b9 \- Q

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

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






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