数学建模社区-数学中国
标题:
关于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* n
9 \' 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 d
4 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
2019-4-21 15:11 上传
点击文件名下载附件
下载积分: 体力 -2 点
117.69 KB, 下载次数: 3, 下载积分: 体力 -2 点
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/)
Powered by Discuz! X2.5